4/26/11: There will be a penalty-free extension of Project Step 7 until 11:59 on April 30th: you can submit up until then with no late penalty. However, the due date of the final submission is unchanged (also April 30th). The testcases for the final submission are now available on the project webpage.

4/19/11: The key to midterm 2 is here. You have until this Friday to request a regrade.

4/19/11: The final exam will be Wednesday, 5/4 from 1pm–3pm in CIVL 2108.

4/19/11: Step 7 of the project posted. Its due date is 4/27.

4/4/11: The due date of project step 6 has been extended to 4/15.

3/28/11: The second midterm has been postponed to 4/5.

3/10/11: The solutions to midterm 1 are available here.

3/9/11: Project Step 5 is posted. Note that the due date is now March 25th.

2/27/11: Project Step 4 is posted. Note that the due date is now March 11th.

2/20/11: You might find it helpful to look at sample exams from previous years' editions of this class. Last year's ECE 573 exam is here, and the solutions are here.

2/14/11: Problem Set 4 is posted.

2/10/11: Because we lost a day to the snow, the first midterm is being moved from 2/17 to 2/22.

2/7/11: Problem set 3 posted. Also, there was a small bug in PS2, problem 3. I asked you to derive a string using a given grammar when the string wasn't in the language. It has been fixed.

2/1/11: A snow-day treat for you: Problem Set 2 has been posted!

1/31/11: Class is cancelled tomorrow (2/1) because I am stuck out of town. Because we will have less time to discuss parsing concepts, I am also moving the deadline for Project Step 2 from Friday (2/4) to Monday (2/7).

1/28/11: The solutions to problem set 1 have been posted.

1/26/11: Project step 2 has been posted on the project page. Please also note the announcement there about the build environment.

1/14/11: The project page is up! See below.

1/3/11: Problem Set 0 is posted. It is a short questionnaire, so I can get to know the students in the class better. While filling it out is not required, turning it in is worth 5 bonus points on the first midterm.
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 and Thursdays, 10:30–11:30, and by appointment
EE 324A
Time:Tuesdays and Thursdays, 9:00–10:15
Location:EE 224
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 course calendar shows the various important dates for the course, including lecture hours, office hours (keep an eye out for any changes!), project due dates and exam dates.


The project page is available here.

Lecture Notes
Problem Sets