12/7/11: The ECE 468 final exam will be from 8–10 AM, Wednesday, 12/14, in ME 1061.

12/7/11: Project step 8 description posted. Note that there are no new requirements for step 8. 12/2/11: Please fill out the online course evaluations for this course. As an incentive to doing so, if the overall response rate for the evaluations is 75%, everyone in the class will receive 1 bonus point on their final grade; if the response rate is 85%, everyone will receive 2 bonus points. If the response rate is 100%, everyone will receive 3 bonus points. Remember that the class is not curved.

11/21/11: Problem set 5 posted. It is due next Monday (11/28).

11/13/11: Project step 7 posted.

11/11/11: Midterm 2 grades have been released to Blackboard (you'll note that there are two columns: one for your grade without any bonus points, and one for your grade with bonus points). The class average (without bonus points) was a 78.6. The max score was a 100. 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/25/11: Problem Set 4 posted. Due next Monday.

10/21/11: Some scheduling announcements for next week. I will be out of town Monday (10/24) and Wednesday (10/26). Professor Rudi Eigenmann will be giving a guest lecture on Monday (10/24). Problem Set 3 is still due, and a new problem set will be posted. Wednesday's lecture will be replaced with lab time -- the TA will be in EE 206 to answer questions regarding Project Step 5.

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 a 79.

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) and LR(0) parsing, semantic actions for declarations, expressions and control structures).

9/19/11: Solutions to PS 1 have been posted.

9/12/11: This Friday's class will be cancelled (9/16). It is being replaced with extended lab hours for the TA on Tuesday evening. In addition to his normal times in the lab, he will be in EE 306 from 5:30–6:30 PM.

8/29/11: Problem set 1 has been posted.

8/30/11: The TA is unfortunately out of town this week, so will not be in lab to answer questions. He is available to answer questions via email, however. If you need to discuss something urgently in person, please come to my office hours or shoot me an email to set up an appointment.

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: 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: Mondays and Wednesdays, 2:30–3:30, and by appointment.
EE 324A
TA:Eric Villasenor
evillase 'at' purdue 'dot' edu
Office Hours: Tuesday, 1:30–2:30
EE 306
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.

Project information

The project page is available here

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