8/16/14: Course webpage is live!
Course Description

This course focuses on the tools and techniques needed to build an optimizing compiler. Topics include:

  1. Scanning and parsing: determining the syntactic structure of a program
  2. Semantic routines: determining the semantics of a program and building an intermediate representation
  3. Code generation: emitting assembly code that is equivalent to the program
  4. Program optimizations: improving the performance of a program
  5. Program analysis: determining interesting information about a program's behavior
Course Details
Instructor:Milind Kulkarni
milind 'at' purdue 'dot' edu
Office hours: Mondays 2:30pm–4pm and Thursdays 10am–11:30am
EE 324A
orangzeb 'at' purdue 'dot' edu
Office hours: Wednesdays 5:30pm–7pm and Fridays 2:30pm–4pm
EE 206
Course Information

The course syllabus discusses most of the details of the course, including a tentative schedule of topics, a brief description of the project and other administrative information.


The project page is available here. Keep a close eye on the project page for project-related announcements. Any changes to project requirements will be posted there.

The discussion forum for the class is on Piazza.

Lecture Notes
Problem Sets