HOT Compilation Course ID 15617 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. Core topics include type checking and inference, elaboration, closure conversion, garbage collection, and translation to a low-level imperative language. Other topics may vary from year to year and include phase splitting, CPS conversion, typed assembly language, substructural and adjoint type systems, intersection types, and variable lifetimes. Key Topics Core topics include type checking and inference, elaboration, closure conversion, garbage collection, and translation to a low-level imperative language. Required Background Knowledge 15-312 Principles of Programming Languages (or equivalent) Course Relevance CS juniors, seniors, and graduate students Course Goals Students will implement a compiler and runtime system for a functional language as a term project, split into multiple stages. Learning Resources There is no textbook for the course, but some notes will be prepared. Attendance in lectures is essential. Assessment Structure Grades are based on the number of successfully implemented projects. Extra Time Commitment No, although projects throughout the semester may require variable time commitments. Course Link https://www.cs.cmu.edu/~crary/hotc/