15-417 HOT Compilation
|Jan 26||Typechecking for F-omega|
|Feb 7||Singleton kinds|
|Feb 14||Typechecking for singleton kinds|
|Feb 16||Type-directed translation|
|Feb 21||CPS conversion|
|Feb 28||Closure conversion|
|Mar 9||Module type theory|
|Mar 23||Phase splitting|
|Apr 4||Garbage collection|
Students will complete several projects through which they will implement an ML compiler and runtime system.
For each project, students will be given a Standard ML signature to implement. The intended meaning of that signature will be made clear in class. Attendance in lectures is essential.
This signature to implement will be included in a collection of resource code that we will supply. Students should not modify any resource code. (Since projects will be graded using the original resource code, any modifications will likely result in project failure.)
On some occasions, we may supply some resource code in executable form, without supplying source code. We will do so by supplying an SML of New Jersey image extended with the relevant code.
Students should hand in their projects by concatenating their source code into a single file and submitting it to Autolab.
This file should not include the resource code that we supply. Also, this file should not contain diagnostic code; submissions should not print anything to console.
Grading is based on the number of successfully completed projects. For each project, students will submit their solution by the project's due date. On the due date, the projects will be graded automatically using a variety of test cases. If a student's solution passes all tests, the project will be marked as completed. If not, no score will be recorded and the student will have the opportunity to correct his/her solution. Students will be given a second-pass due date, by which they must submit their revised solution, which will be tested in a similar fashion to his/her original submission. This process continues until the project has been completed, or the course has ended.
The final due date for all projects and project revisions is May 15.
Students are urged not to try to exploit the system by turning in "token" submissions to procrastinate a project. This places students in the unfortunate position of having to complete several earlier projects during the busiest part of their semester. Therefore, token submission will not be accepted. If, in the judgement of the instructor, any submission does not represent a credible effort, the project will be marked as failed, and no further submissions for that project will be accepted.
It is expected that most students will successfully complete all the projects and earn an A for the course.