: The slides from today's class (lecture 12) have been updated
: Here is a short document on iteration space graphs and dependence analysis
which will hopefully clear up some of the confusion I introduced in class today!
: The exam key
is now available. You have until the beginning of class next Tuesday (11/16) to request a regrade.
: The slides which listed the exam topics are here
. Also, see below for solutions to all the problem sets.
: The second exam will be next Tuesday, November 3rd. We will have a short review session towards the end of class on Thursday. I have also posted two problem sets, on instruction scheduling and loop optimizations, below. The solutions to these will be posted over the weekend.
: The exam key
is now available. Reminder: you must inform me of any regrade requests by the end of office hours (11:30) on Thursday.
: The topics for midterm one can be found here
: I wrote up a brief document
on L-values, R-values, the * operator and how it all works.
: There was a mistake in the solution to problem 3 of problem set 3. The parse table entry for B should predict production 7 when it sees an a
, too. The corrected solution is posted.
: There was a small bug in the notes for lecture 6, on how to deal with field accesses of structures. The correct procedure is here
: I sent out an email about refactoring the grammar to eliminate left recursion
. If you do refactor the grammar, please include a file detailing the new grammar that you used.
Old announcements are archived here
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
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.