Compiler Construction
CSCI-GA.2130-001, Spring 2013

This area will be used for urgent messages

TA's office hour changed to Wed 3-4.

General Information

Tues 7:10PM - 9:00PM CIWW Rm 102
Instructor: Hubertus Franke,
TAs/Graders:Ravi Chotrani
Office Hours:
Franke: Tues 6:00 - 7:00 CIWW Rm 328 or after class or via email
Chotrani: Wed 3:00 - 4:00 CIWW Floor 13
Prerequisites: General Understanding of Datastructures
Text book: Title: Compilers: Principles, Techniques, and Tools (2nd edition)
Author: Aho, Lam, Sethi, and Ullman
ISBN-10: 0321486811
Errata: Errata

Course Description

This course is an introductory course to the exciting field of compiler construction. You will learn the fundamentals underlyging a modern compiler. At the end of the class you should be able to utilize the knowledge and used tools to build parsers and compilers for everyday needs. The following topics will be covered in this course:


Grades will be based on projects and a final exam. The weighting will be as follows:
This is a graduate level class, so I am looking for lively interactions during the class and not just presence.


The project consists of building a simple compiler with its phases from the lexical analysis through syntax analysis and semanctic analysis to code generation. The project will be submitted in different segments (lexical segment, parsing segment, semantic, .). Each segment will have its own deadline and grading.

Class Materials, Handouts, Lectures and Assignments

WeekDateTopicHandouts ReadingsAssignments
1 01/29 Introduction
Lecture 1
Chapter 1

2 02/05 Syntax Directed Translation
Lecture 2
Chapter 2

3 02/12 Lexical Analysis
Lecture 3
Lecture 4
Chapter 3 (till 3.5)
Lab1 Due 2/26
Homework-1 Due 2/19
4 02/19 Lexical Analysis
Lecture 5 Chapter 3 (rest)

5 02/26 Syntax Analysis
Lecture 6 Chapter 4 (see slides)
Homework-2 Due 3/12
Pascal-Grammar for you to peek
6 03/5 Syntax Analysis (LR Parsing)
Lecture 7 Chapter 4 Lab2 Parser (due 3/26)
7 03/12 Syntax Directed Translation
Lecture 8 Chapter 5


8 03/26 Semantics
Lecture 9 Chapter 6
Homework-3 Due 4/2
Lab3 Analysis (due 4/16)
9 04/02 Semantics/Code Generation and Type Checking
Lecture 10 Chapter 6

9 04/09 Runtime Systems
Lecture 11 Chapter 7

11 04/16 Runtime and Code Gen
Lecture 12 Chapter 8
Lab Codegen (due 5/7)
12 04/23 Code Gen and Register Allocation
Lecture 13 Chapter 8

13 04/30 Register Allocation through GraphColoring

14 05/07

05/14 Reading Day (no class, TA will be available for Q/A)

16 05/21 Final Exam

Computer Accounts and Mailman Mailing List

Doing Labs on non-NYU Systems

You may solve lab assignments on any system you wish, but ...

Obtaining Help with the Labs

Good methods for obtaining help include

  1. Asking me during office hours (see web page for my hours).
  2. Asking the mailing list.
  3. Asking another student, but ...
    Your lab must be your own.
    That is, each student must submit a unique lab. Naturally, simply changing comments, variable names, etc. does not produce a unique lab.

See also

Graduate courses:
Graduate schedule:
Academic integrity policy: