The course will be organized around a semester-long project, divided into
roughly-weekly assignments. At the end of the course students will have
built a complete compiler generating real assembly language. The implementation language (not to be confused
with the language being compiled) will be Standard ML, as this is well-suited
for compiler development. However, the content of this course should transfer
directly to compilers written in other languages (e.g., C or C++ or Java).
You are encouraged to work on the assignments with a partner, but you are free to work alone if you would prefer.
Your final grade will be determined by the assignments (70%), written responses to assigned readings (20%), and in-class work
(10%).
The textbook will be
Compilers: Principles, Techniques, and Tools (2nd Ed.), Alfred V. Aho et al., Pearson, 2007.
The programming assignments will require use of the Standard ML language.
See the course web pages for pointers to reference implementation for Standard
ML.
The cs-132-l mailing list will be used for announcements
relevant to the entire class, some of which may be important that you receive.
If you did not already receive a test message, inform the instructor.
With regard to both pencil-and-paper and computer-based assignments you are expect to hold to the following standard in your work: you are free to discuss a problem with other students, and hash out the general framework of the solution, but the actual work handed in must be your own. You should not share code or any other work in written form. (Of course if you are working with a partner then these restrictions only apply to students other than your partner!)