12/7/13>: The solutions to problem set 5 have been posted. Note that if you are looking at past problem sets, the Fall 2011 solutions for PS 5, question 2 are incorrect (available expressions is not computed correctly).

12/6/13: A few past finals are available here. You may also find the solution for the 2009 573 final useful.

12/5/13: I will have extra office hours from 2:30–4:30 on Friday, and 9:00–10:00 on Monday..

12/3/13: The key for midterm 2 is available here.

12/2/13: The ECE 573 Final Exam is scheduled for Tuesday, December 10th, from 8am 10am in EE 115.

11/26/13: So that you guys have a chance to talk to the TA about your projects after Thanksgiving, I am giving a free extension of the Step 7 deadline to Wednesday, Dec. 4th. Note that this is not the same as postponing the due date. The step is still officially due on Monday, and the 5-day window for turning the project in late still expires on Saturday. But submissions received on Tuesday and Wednesday will not have points deducted.

11/6/13: Reminder: lecture is cancelled on Friday (11/8). Office hours on Thursday (11/7) are also cancelled. To ensure that students have one more chance to come for office hours, Project step 6 is now due on Wednesday, November 13.

10/4/13: The solutions to midterm 1 are available here. If you would like a regrade, please email me your regrade request, specifying which problem you would like regraded, and the exact issue. Regrade requests are due by Wednesday, Oct. 9th.

9/8/13: Reminder: lecture cancelled tomorrow (9/9). Wednesday will be a "lab day"; the TA will be in EE 207 to answer questions.

9/4/13: Project step 2 now due September 20. Problem set 1 posted.

8/30/13: Project step 1's due date has been extended to Monday, September 2nd.

8/21/13: The TA's office hours have been scheduled. See below or on the project page.

8/19/13: Evening exams have been scheduled. The two midterms will be on 9/25 and 10/31. Both will be from 6:30–7:30 in LYNN 1136.

8/11/13: 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: Wednesdays, 10:00–11:20, Thursdays, 1:30–2:50, and by appointment.
EE 324A
orangzeb 'at' purdue 'dot' edu
Office hours: Tuesdays 6pm–7pm, and Wednesdays 12:30pm–1:30pm
EE 207
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