The class this year is going to concentrate both on compilers per se and on program analysis. We will look at compilers from the inside out, starting with intermediate representations and what you can do with them. This will lead naturally to a variety of program analysis, semantic processing, and compiler optimizations. As the course progresses we will look at translating between intermediate representations (including machine code) and generating intermediate representations (i.e. parsing).
Meets in CIT room 506. T/Th 9-10:20am.
The syllabus is available on-line here.
DECAF syntax and semantics documents.
The course will be project-based with the students working individually or in small teams on either a compiler or a particular program analysis of interest to them. The project ideas will be developed over the first few weeks of the course.
At this point no text is recommended, although students might want to have one of the "standard" compiler texts available for reference. These would include Appel, Cooper & Torczon, Aho, Sethi & Ullman, or Grune, et. al. There will probably be readings from other texts as the course progresses.
Prof. Steve Reiss (office hours by appt.)