HOT Compilation

Course ID 15417

Description 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 type inference, elaboration, CPS conversion, closure conversion, garbage collection, phase splitting, and typed assembly language.

Key Topics
Topics include type checking, type directed compilation, elaboration, phase splitting, CPS conversion, closure conversion, allocation, and garbage collection.

Required Background Knowledge
15-312 Principles of Programming Languages (or equivalent)

Course Relevance
CS juniors, seniors, and graduate students

Course Goals
Students will implement an ML compiler and runtime system as a term project. Students will complete several projects through which they will implement an ML compiler and runtime system.

Learning Resources
There is no textbook for the course. Attendance in lectures is essential.

Assessment Structure
Grades are based on the number of successfully implemented projects.

Course Link
https://www.cs.cmu.edu/~crary/hotc/