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.