10/22/14: Midterm 1 solutions are available.

10/9/14: The 573 lecture for 10/10 (Friday) has been cancelled. See you next Wednesday!

9/24/14: The final exam has been scheduled. It will be Tuesday, December 16th from 10:30am–12:30pm in EE 115.

9/22/14: Project step 3 is now due 10/6.

9/4/14: The URLs for the course calendar have changed. Please update your bookmarks/subscriptions.

8/25/14: The midterms have been rescheduled (the times in the printed syllabus are outdated): Midterm 1 will now be Wednesday, October 1st from 6:30–7:30 in SMTH 108. Midterm 2 will now be Wednesday, November 5th from 6:30–7:30 in LILY G126. The course calendar has been updated to reflect the changes.

8/24/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: Tuesdays 1:30pm–3pm and Wednesdays 10am–11:20am
EE 324A
TA:Shih Yu Lee
lee1549 'at' purdue 'dot' edu
Office hours: Tuesdays 7pm–8pm and Thursdays 1:30pm–2:30pm
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