How to Read this Document
If you are a newcomer, you might be afraid by its sheer size. Don’t worry, but in any case, do not give up: as stated in the very beginning of this document,
Nul n’est censé ignorer la loi
That is to say everything exposed in this document is considered to be known. If it is written but you didn’t know, you are wrong. If it is not written and was not clearly reported in the news, we are wrong.
Warning
Tiger is an old project. Some information you’ve seen online or heard from previous promotions may be outdated. Always refer to assignments, news, the maintainers and Etienne over everything else.
Basically this document contains three kinds of information:
- Initial and Permanent
What you must read and know since the very beginning of the project. This includes most the following chapters: Introduction (except the History section), Instructions, Evaluation and the basis of Tiger Language Reference Manual.
- Incremental
You should read these parts as and when needed. This includes mostly Compiler Stages and Tiger Language Reference Manual.
- Auxiliary
This information is provided to help you: just go there when you feel the need, Tools, and Source Code. If you want to have a better understanding of the project, if you are about to criticize something, be sure to read History beforehand.
- There is additional material:
A few copies of Modern Compiler Implement in ML, the book on which is based the project, can be found in the assistants’ lab.
|lre-tiger| holds some interesting materials for Tiger (e.g., links and lecture notes).
The public git repositories for Tiger, including assignments itself, tc-base and frameworks can be found on the gitlab.
You should use your THL lecture notes and ressources to make a good start into the project. Public ressource are also available online, like Akim’s series of videos here. THL 8 & 9 are very relevant for Tiger.
For good c++ documentation and guidelines, take a look at cppreference and cppcoreguidelines.