Course description

Compilers are often known as translators and for good reason: their job is to take programs written in one language and translate them to another language (usually assembly or machine language) that a computer can execute. It is perhaps the ideal meeting between the theoretical and practical sides of computer science. Modern compiler implementation offers a synthesis of the following:

During the semester, we will write a program implementing a nontrivial compiler. Conference work will allow students to pursue different aspects of compilers such as compilation of object-oriented languages, automatic garbage collection, compiler optimizations, and applications of compiler technology to natural-language translation.

Breaking news

(11/13)The complete please-parse-tree-unparser is due Sunday afternoon (11/16). The relevant files are in: ~msiff/compilers/stub-please/

(11/13) Mark your calendars: Programming Fest, Monday 11/24 at 8pm in Science 109.

(10/29) An initial version of the please reference manual is now available.

(10/15) The latest assignment is on-line and due Wednesday, 10/22.

(10/14) Don't forget - a CFG for our programming language is due tomorrow (10/15).

(09/25) Files for latest project are available