10/22/14:
Midterm 1 solutions are available.
9/24/14: The final exam has been scheduled. It will be Thursday, December 18th from 7pm–9pm in EE 170.
9/22/14: Project step 3 is now due 10/6.
9/4/14: The URLs for the course calendar have changed. Please update your bookmarks/subscriptions.
8/25/14: The midterms have been rescheduled (the times in the printed syllabus are outdated): Midterm 1 will now be Wednesday, October 1st from 6:30–7:30 in SMTH 108. Midterm 2 will now be Wednesday, November 5th from 6:30–7:30 in LILY G126. The course calendar has been updated to reflect the changes.
8/24/14: Webpage live!
This course focuses on the tools and techniques needed to build an optimizing compiler. Topics include:
- Scanning and parsing: determining the syntactic structure of a program
- Semantic routines: determining the semantics of a program and building an intermediate representation
- Code generation: emitting assembly code that is equivalent to the program
- Program optimizations: improving the performance of a program
- Program analysis: determining interesting information about a program's behavior
- Why we shouldn't be like Mel.
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 discussion forum for the class is on Piazza.
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.
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!)