Course Description
This course is an overview of the internal structure of modern
compilers, with an emphasis on implementation techniques. Topics
covered include lexical scanning, parsing techniques, static type
checking, code generation, dataflow analysis and other optimization
techniques, storage management, and execution environments. As
part of the course, you will build a working compiler.
Web Page
The course web page is located at http://www.cs.caltech.edu/cources/cs134/cs134b.
All course materials will be available at this site.
Course Meetings
Lectures are currently being held in 74 Jorgensen, MWF 2-3pm.
Attendance at lecture is expected. The lectures will complement
rather than replicate material in the textbook.
Teaching Staff
The best way to reach the course staff is by sending mail to cs134-admin@metaprl.org. Please
include cs134 in the Subject line.
| Name | Title | Office | Office Hours | |
| Jason Hickey | Asst Professor | jyh@cs.caltech.edu | 260 Jorgenson | MW 3-4pm |
| Justin Smith | TA | justins@cs.caltech.edu | 160D Jorgensen | Thu 8-9pm |
| Suleyman Gokygit | TA | sg@cs.caltech.edu | 66 Jorgensen | Thu 3-4pm |
| Adam Granicz | TA | granicz@cs.caltech.edu | 158 Jorgensen | Tue 2-3pm |
Required Reading
Modern Compiler Implementation in ML. Andrew Appel. Cambridge
University Press, 1998. ISBN 0-521-58274-1.
Other Reading
Compilers -- Principles, Techniques and Tools. Aho, Sethi
and Ullman. Addison-Wesley, 1988. ISBN 0-201-10088-6. (The Dragon
Book)
Advanced Compiler Design and Implementation. Steve Muchnick. Morgan Kaufmann Publishers. ISBN 1-558-60320-4.
There are several mail lists you can use to discuss the course material.
Assignments and Grading
The compiler project is divided up into five programming assignments
that are due at various points throughout the term. Compiler projects
will be performed by groups of two or three students. The same
groups will be maintained throughout the semester.
Programming assignments are due online.
The breakdown of points per assignment is as follows:
| Programming Assignment 1 |
10 |
| Programming Assignment 2 |
20 |
| Programming Assignment 3 |
20 |
| Programming Assignment 4 |
20 |
| Programming Assignment 5 |
30 |