CMPU 331: Syllabus

CS331: Syllabus Spring 2008

Required Texts

Compilers: Principles, Techniques, and Tools (Second Edition), by Aho, Lam, Sethi, and Ullman.

Course Description

This course familiarizes students with theoretical constructs underlying the design of compilers and means for the effective and efficient implementation.

Course requirements

Requirements for the course consist of one exam and completion of a large programming project. Note that we may not cover all the reading in class, but you are responsible for all assigned readings (see Schedule) and all material covered in class.

The project consists of implementing a compiler front-end, in 4 parts: lexical analysis routines, table management routines, a parser, and semantic routines. Each piece (in the order specified) will be assigned over the course of the semester, and should be integrated with what has been completed previously. Due dates are given on the course home page. The final project (completion and integration of semantic routines) is due on Friday, May 16.

Your compiler front-end will parse and generate intermediate code for a subset of the Pascal language. The code you will generate is interpreted and executed by The Vassar Interpreter. Detailed specifications for each phase of the compiler project will be provided as each is assigned.

This is a large project and you should regard it as on-going over the semester. It is not a trivial exercise and cannot be put off for a week's intensive effort at the end of the semester. Therefore, the following rules will apply: Project pieces must be handed in on the due date or be subject to the following penalty: if handed in up to 3 days late, a penalty of 5 points; 4-7 days late, 10 point penalty. After 7 days an automatic grade of 0 is given. There will be no exceptions.