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.
This section details the goals of the stage as a teaching exercise. Be sure that examiners will make sure you understood these points. They also have instructions to ask questions about previous stages.
Actual examples generated from the reference compilers are exhibited to present and “specify” the stage.
This subsection points to the on line 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.
But of course, this code is not complete; this subsection provides hints on what is expected, and where.
During some stages, those who find the main task too easy can implement more features. These sections suggest possible additional features.
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. These sections answer this few questions. And since they are already answered, you should not ask them...
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. These sections provide hints on what could have been done to improve the stage. You can think of these sections as material you ought to read once the project is over and you are a grown-up C++ programmer.