Incremental Compiler Course: From Tiger to x86-64 Assembly in OCaml

2025-04-05

This is a highly practical compiler course aiming to build a compiler that translates the high-level Tiger language into x86-64 machine code. The course uses OCaml and emphasizes test-driven development, version control, and code reuse. It employs an iterative, incremental development approach, gradually extending language and compiler features, leveraging the tagless-final style for enhanced extensibility. The course covers standard compiler topics like parsing, type checking, optimization, and assembly generation, but in a non-traditional way.