Introduction to the Course Project

This class includes a substantial implementation project. You will modify and extend an existing compiler, written in C++, for a toy language called PL/0. PL/0 is like a severely stripped-down version of Pascal. Initially, PL/0 is barely usable as a programing language. As part of the project, you will add several language features, including arrays, for loops, and arguments and results of procedures, making the language much more usable. The project will be broken up into several stages, each stage lasting two weeks, paralleling the sequence of study of compilers in the text and lectures. Some lectures will explore how the PL/0 compiler is organized and how textbook techniques are realized in the PL/0 compiler.

You may optionally form two-person teams to do the project, and you are strongly encouraged to do so. Grading on the project will be joint. You may dissolve your group at any time during the quarter, after which you can do the project independently with independent grading. The TAs will provide a matchmaking service for interested students.