12/6/12: The deadline for the final project turn in has been postponed to Sunday, Dec. 9th at 11:59pm. There will be NO further extensions granted.

12/5/12: The final exam will be from 10:30AM–12:30PM in CIVL 2108 (our regular classroom). It will be cumulative, though it will focus more on material covered since midterm 2 (dependence analysis and dataflow analysis). It is open book and open notes. There will be a review session for the final during the normal lecture time on Friday. Past final exams are available here

12/2/12: Office hours for tomorrow (12/3) have been rescheduled for 1–2 PM.

11/28/12: Grades for Midterm 2 have been released to blackboard. The class average was 88.5. I will be handing the midterms back today in class. The key and rubric are available here. Regrade requests must be via email, and detail what the concern is. Requests are due by Friday at 5pm.

11/18/12: Details of Project step 7 (register allocation) posted.

11/8/12: Project step 6 due date postponed to Saturday, Nov. 10th. Also, see announcement on project page regarding tiny output.

10/30/12: Project step 6 posted.

10/29/12: Office hours for 10/30 moved to 11/2 from 10–11.

10/26/12: Most outputs for project step 5 (except test_573.micro) posted.

10/26/12: Problem Set 5 has been posted. Midterm 2 has been rescheduled to Nov. 5th.

10/19/12: Schedule changes this week: (1) Lecture on Monday is replaced with Lab time in EE 206/207. (2) Office hours this week are moved to 9–11 on Friday. (3) There will be a guest lecture on instruction scheduling on Wednesday. Also, The TA's office hours on Thursday have been permanently moved to Tuesday.

10/15/12: Project step 4 is now due Tuesday, Oct. 16th at 11:59pm.

10/14/12: Project step 5 has been posted.

10/10/12: Jonathan's office hours on Thursday have been rescheduled (just for this week) to Friday from 1–2.

10/10/12: Midterm 1 will be handed back in class today. The class average was an 83. The exam key and rubric are here. Regrade requests must be via email, and detail what the concern is. Requests are due by Friday at 5pm.

9/26/12: Project step 4 has been posted. Note that the due date has changed from the syllabus. Step 4 is now due Monday, 10/15 at 11:59pm.

9/26/12: Reminder: Midterm 1 is this Friday. We will be having a review session in class today. The midterm will cover lectures 1, 2 and 3, and is open-book and open-notes. In addition to the problem sets from this semester, it may be useful to look at problem sets and past midterms from previous editions of 468 and 573, which can be accessed from the Courses section of my homepage.

9/21/12: Project step 3 has been posted.

9/16/12: Project step 1 grades have been posted to Blackboard. If you have any questions about your grade, please send both myself and the TA an email.

9/14/12: There are several schedule changes for next week. The due date for project step 2 (your parser) has been moved to 9/17. Lecture on Monday has been replaced by lab time in EE 207, where the TA can answer any last-minute questions regarding project step 2. Lecture is cancelled on Wednesday.

9/10/12: There has been a slight change to the grammar of the first problem in Problem Set 2, that should hopefully reduce confusion.

9/1/12: Project step 2 posted.

8/25/12: Project step 1 posted.

8/12/12: 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 and Tuesdays, 11:00–12:00, and by appointment.
EE 324A
TA:Jonathan Too
Office hours: Wednesdays and Thursdays, 6:00–7:00
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.

Lecture Notes
Problem Sets