Tiger Compiler Reference Manual
The Tiger Project
More information is available on the EPITA Tiger Compiler Project Home Page.
Tiger is derived from a language introduced by Andrew Appel in his book Modern Compiler Implementation. This document is by no means sufficient to produce an actual Tiger compiler, nor to understand compilation. You are strongly encouraged to buy and read Appel’s book: it is an excellent book.
There are several differences with the original book, the most important being that EPITA students have to implement this compiler in C++ and using modern object oriented programming techniques. You ought to buy the original book, nevertheless, pay extreme attention to implementing the version of the language specified below, not that of the book.
- Tiger Language Reference Manual
- Language Extensions
- Predefined Entities
- Intermediate representation TREE
- Implementation
- Invoking TC
- Synopsis
- Global options
- Options relating to the file library (TC-1)
- Options relating to scanning and parsing (TC-1)
- Options relating to the AST (TC-2)
- Options relating to escapes computation (TC-3)
- Options relating to identifiers renaming (TC-R)
- Options relating to escapes computation (TC-E)
- Options relating to type checking (TC-4)
- Options relating to desugaring (TC-D)
- Options relating to the inlining optimization (TC-I)
- Options relating to the bounds checking instrumentation (TC-B)
- Options relating to the callgraph (TC-A)
- Options relating to overloading support (TC-A)
- Options relating to the desugaring of object constructs (TC-O)
- Options relating to the combination of extensions (TC-C)
- Options relating to the high level intermediate representation (TC-5)
- Options relating to the LLVM IR translation (TC-L)
- Options relating to the low level intermediate representation (TC-6)
- Options relating to the instruction selection (TC-7)
- Options relating to the target (TC-7)
- Options relating to the liveness analysis (TC-8)
- Options relating to register allocation (TC-9)
- Errors
- Extensions
- Invoking TC
- The Reference Implementation