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

9/24/14: The final exam has been scheduled. It will be Thursday, December 18th from 7pm–9pm in EE 170.

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: 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: 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 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!)