The course will be organized around a semester-long project, divided into 12 weekly assignments. At the end of the course students will have built a complete compiler targeted to the Sparc architecture (creating binaries that run on Turing). 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 will transfer directly to compilers written in other languages (e.g., C or C++ or Java).
The following two books, available at the bookstore, are required for the course:
Modern Compiler Implementation in ML, Andrew W. Appel, Cambridge University Press, 1998.
SPARC Architecuture, Assembly Language Programming, and C, Richard P. Paul, Prentice-Hall, 2000.The programming assignments will require use of the Standard ML language. The following optional book is also at the bookstore, should you require a language reference:
Introduction to Programming using SML, Michael R. Hansen and Hans Rischel, Addison-Wesley, 1999.
Copies of these books will be on reserve at the desk of Sprague Library.
A course mailing list will be used for announcements relevant to the entire class, some of which may be important that you receive. It is your responsibility to be sure you are on this list! (Non-HMC students are not on this list by default.) Be sure to supply your email address so that you can be added.
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.