Stage Presentation

The following sections adhere to a standard layout in order to present each stage n:


The first few lines specify the last time the section was updated, the class for which it is written, and the submission dates. It also briefly describes the stage.

T n Goals, What this stage teaches

This section details the goals of the stage as a teaching exercise. Be sure that examiners will check that you understood these points. They also have instructions to ask questions about previous stages.

T n Samples, See T n work

This section exhibits examples generated from the reference compiler to present and “specify” the stage.

T n Given Code, Explanation on the provided code

This section points to the material we provide, introduces its components, quickly presents their designs and so forth. Check out the developer documentation of the Tiger Compiler for more information, as the code is (hopefully) properly documented.

T n Code to Write, Explanation on what you have to write

But of course, this code is not complete; this section provides hints on what is expected, and where.

T n Options, Want some more?

During some stages, those who find the main task too easy can implement more features. This section suggests possible additional features.

T n FAQ, Questions not to ask

Each stage sees a blossom of new questions, some of which being extremely pertinent. We selected the most important ones, those that you should be aware of, contrary to many more questions that you ought to find and ask yourselves. This section answers this few questions. And since they are already answered, you should not ask them…

T n Recurring bugs, The same bugs through the ages

During debugs, there is always some few bugs that repeats everytime. To save everybody’s time, go and check this section when you encounter a bug before asking for a debug.

T n Improvements, Other Designs

The Tiger Compiler is an instructional project the audience of which is learning C++. Therefore, although by the end of the development, in the latter stages, we can expect able C++ programmers, most of the time we have to refrain from using advanced designs, or intricate C++ techniques. This section provides hints on what could have been done to improve the stage. You can think of this section as material you ought to read once the project is over and you are a grown-up C++ programmer.