Turtle Compiler
Ok, so I need to finish the Dragon book before I get too far into this.
Micro Pass Compiler
I need several syntaxes that are related. A compiler node operates on one syntax and outputs one syntax (often the same).
This makes it easy to test compiler nodes - run the compiler without the node and run the tests against the output, then re-run the compiler with the node and make sure all the tests still pass. Also it makes it easy to benchmark, same operation.