Honors Compilers
G22.3130.01
Tuesday 3:30 - 4:45 pm, CIWW 101
Thursday 3:30 - 4:45 pm, CIWW 101
Professor Amir Pnueli
Instructor: Amir Pnueli
(amir@cs.nyu.edu)
Office hours: WWH505, Tuesday and Thursday 2-3 pm, or 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:
http://www.cs.nyu.edu/mailman/listinfo/g22_3130_001_fa07
where you will find full directions.
Please send all your questions to this list (not only to the instructor) so
that everyone can participate.
Textbooks
required:
Aho, Lam, Sethi, and Ullman: Compilers, principles, Techniques and
tools
(Addison Wesley)
Recommended:
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
Written Assignments
Assignment 1: lexical analysis , due
October 15, 2007
Assignment 2: Algorithms on grammars (postscript),
  PDF, due November 13, 2007
Project
The course involves the construction of a compiler for a simple imperative
language.
-
Lexer Assignment, due October, 15, 2007.
- Parser Assignment, due October 30, 2007.
-
Semantic Analysis Assignment (postscript),
  PDF, due November 22, 2007.
-
Intermediate Code Generation (postscript),
  PDF, due December 4, 2007.
-
Assembly Code Generation, due December 23, 2007.
Test Programs for Compiler Project
Sample Solutions
Reference Materials