This is a Compiler Engineering Course Project.
The part I have finished:
Part 1. Lexer and Parser.
Designed and implemented a front-end (a lexer and a parser) for Tiger.
Part 2. Abstract Syntax Trees and Elaborator.
Designed and implemented an abstract syntax tree and build an elaborator.
Part 3. Code Generator.
Designed and implemented a C code generator.
Part 4. Garbage Collector.
Build a garbage collector and link it into Tiger.
The part I have not finished:
Part 5. Optimizations.
Add optimizations to Tiger to enable it generator more efficient target code.
Part 6. Register allocator.
Write a register allocator for Tiger so that Tiger compiler will generate efficient production-quality native code.