Honors Compiler

Monday 2:00 - 3:15 pm, room 1013
Wednesday 2:00 - 3:15 pm, room 1302
Professor Amir Pnueli

Instructor: Amir Pnueli (amir@cs.nyu.edu) Office hours: WWH505, Monday and Wednesday 4-5 pm, and by appointment.

Class list

All students should register themselves with the class list, which is used for all technical discussions concerning the course and the course project. To subscribe to this list visit the web page:


where you will find full directions.

Please send all your questions to this list (not only to the instructor) so that everyone can participate.



Aho, Lam, Sethi, and Ullman: Compilers, principles, Techniques and tools (Addison Wesley)


Scott: Programming Language Pragmatics.
A nice balance of language issues and implementation issues, with substantial elementary information about compiler structures and organization.

Additional recommended readings:

Fraser and Hanson: a retargetable C compiler (Benjamin Cummings, 1996)
Good treatment of the machine-description techniques used among others by the GCC family of compilers.

Muchnick: advanced compiler design and implementation (Morgan Kaufman, 1997)
Excellent treatment of code generation and optimization issues for a variety of processors.

Appel : modern compiler implementation in C : basic techniques
Also available in ML and Java versions.

Dewar & Smosna : Microprocessors, a programmer's perspective (Mc-Graw Hill)
An excellent survey of what a software engineer needs to know about hardware.

Course outline and Class Presentations

sample questions for final examination

Written Assignments

Assignment 1: lexical analysis , due February 20, 2007
Assignment 2: Algorithms on grammars (postscript),   PDF, due March 21, 2007

Take-Home Final Exam

Take-home exam (postscript),   PDF, due May 8, 2007


The course involves the construction of a compiler for a simple imperative language.

  • Test Programs for Compiler Project

    Sample Solutions

  • Reference Materials