MonoBURG

MonoBURG is a code generator generator, a tool that produces a function from a tree-pattern description of an instruction set. If you think of Bison being a program generating an AST generator from concrete syntax, you can see MonoBURG as a program generating an Assem generator from LIR trees.

MonoBURG is named after BURG, a program that generates a fast tree parser using BURS (Bottom-Up Rewrite System). MonoBURG is part of the Mono Project and has been extended by Michaël Cadilhac for the needs of the Tiger Project.

Resources:

Some papers on code generator generators are available in the bibliography. BURG - Fast Optimal Instruction Selection and Tree Parsing, and Engineering a simple efficient code generator generator.