12/7/11: The ECE 573 final exam will be from 8–10 AM, Monday, 12/12, in EE 115.

12/7/11: Project step 8 description posted. Note that there are no new requirements for step 8.

11/13/11: Project step 7 posted.

11/11/11: Midterm 2 grades have been released to Blackboard. The class average was 84.5. The max score was 96.7. The exam key and rubric are here. You have until next Friday (11/18) at noon to ask for a regrade by email, with a description of what you want regraded. Non-email regrade requests will be ignored.

10/31/11: Midterm 2 is this Friday (11/4). It will be open book/open notes, and will cover optimizations, register allocation, instruction scheduling and loop optimizations. There will be a review session in class on Wednesday (11/2).

10/21/11: Class will be canceled on Monday (10/24) and Wednesday (10/26).

10/16/11: Midterm 1 will be handed back in class tomorrow. The key is available here. The rubric is given in red. If you want a regrade, you must email me by Friday, 10/21 at noon, with a description of what you want regraded. The class average was an 80. 10/3/11: Project step 4 posted.

9/27/11: Reminder: Midterm 1 is this Friday, in class. It will be open-book, open-notes. It will cover material from lectures 1 through 5 (Basic compiler info, scanning, LL(1), LR(0) and LR(1) parsing, semantic actions for declarations, expressions and control structures).

9/12/11: This Friday's class will be cancelled (9/16).

8/22/11: Note that you must complete Problem Set 0. A failure to complete the problem set will result in your being recorded as not taking this class, and could jeopardize any financial aid. (Sorry for the extreme measures; this is the result of a new policy that has been in force since last January)

8/8/11: 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 Wednesdays, 2:30–3:30, and by appointment.
EE 324A
TA:Eric Villasenor
evillase 'at' purdue 'dot' edu
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

Lecture Notes
Problem Sets