15-501/15-819 HOT Compilation, Fall 2006
The course covers the implementation of compilers for higher-order, typed languages such as ML and Haskell, and gives an introduction to type-preserving compilation. Topics covered include elaboration, CPS conversion, closure conversion, garbage collection, phase splitting, and typed assembly language.
Students will complete 6 projects by the end of the semester. The precise project schedule will be determined as the semester progresses. The projects currently planned are as follows (subject to change):
Students enrolled in the graduate version of the course, 15-819, will do one extra project of their choice at some point during the semester. Some suggestions include writing a TAL code generator, adding some type-directed optimization phases, ...
Submit your projects via AFS by copying the relevant files to
where <your Andrew id> is replaced with your Andrew id and <assn> is replaced with the project name. (You must be authenticated to your Andrew id in order to access this directory. If you primarily use machines in the cs.cmu.edu realm, you can try authenticating by executing the command
If that doesn't work, just log into an Andrew machine to submit your code.)
For each project, students will submit a solution on that project's due date, and this solution will be automatically checked against several test cases. If the solution is satisfactory, the student receives an A for that project. Otherwise, the student will receive feedback explaining how their solution failed and be given an opportunity to produce another solution. Students have until the end of the semester to produce adequate solutions to all the projects.
Everyone who completes all the projects successfully by the end of the semester receives an A. The grading policy is left unspecified for students who do not complete all the projects successfully by the end of the semester. Please don't force us to find out what happens.