a modular and extensible macroprogramming compiler
Translation of a macroprogram to node-level microprograms is a complex and challenging task for a compiler. Developing of a robust macroprogramming compiler framework poses a unique challenge because users need to create optimized function decompositions, in a modular way, such that they can be composed with other compiler functionality such as optimization and debugging. This differs from most compilers because they typically employ a fixed set of code optimizations for a particular target platform. We present a macroprogramming compiler for MacroLab which has a modular architecture that provides users with a two layer interface: one to tackle user created optimized function decompositions and another to handle low-level compiler modifications. Our results show that the introduction of new decompositions and compiler optimizations can be accomplished with a small number of lines of code and typically written in a matter of hours.
macroprogramming compiler function library wireless embedded networks