Website/src/ideas/2014-10-23-ProcCogs.md

1.3 KiB

title
Procedure Cogs

Just in time datastructures are built of cogs.  Each cog describes one composable "chunk" of the structure.  The cog provides both structural constraints on the chunk (e.g., it consists of 2 pointers), as well as semantic constraints (e.g., records referenced by the left pointer have a key lower than a separator value).  Can we add a third type of cog, where the cog actually specifies computation to perform over the children.  In other words, can we further blur the line between JITDs and compiled code?

What does it take to efficiently support "procedure" cogs in a JITD?

The first step to this project would be to actually define procedure cogs.  This will require at a minimum, designing and implementing a trivial data manipulation language first.  Followup work would include starting to design transformations specialized for procedure cogs.

Scope: The initial development of procedure cogs is suitable for an MS project.  Followup work to adapt procedure cogswould be suitable for an MS thesis.  Further followups could potentially create sufficient work for a PhD thesis.