8/16/15: Webpage 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
  6. Why we shouldn't be like Mel.
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 discussion forum for the class is on Piazza.

Project 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.

Lecture Notes
Problem Sets

Problem sets are due on the date shown. You may submit them by email before class, or turn in a hard copy at the beginning of class. (Not the end!)