|
15-417/617/817 HOT Compilation
This 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. This instance of the course will focus on substructural (for example, linear or affine) and adjoint type systems, and how to take advantage of such types in a compiler and runtime system. Another topic will be data layout from a type system perspective. Students will implement a succession of end-to-end compilers for increasingly expressive languages, with the last project providing some leeway. They will have the option to work solo or with a partner, and some options regarding the implementation language will also be available. The course is cross-listed at the undergraduate and graduate levels and intended to be interesting and challenging at all levels. For undergraduates, 15-312 is recommended as a prerequisite, for graduate students 15-814. Here are two AI-generated podcasts regarding the research underlying the specific topics of emphasis in this course this year that you might find interesting. Each of them was given two papers as the only input. Prior Versions of This Course
Class Material
Course Information
Learning objectives: After taking this course, students will be able to
Topics: Many of these topics are tentative, depending on the pace of the course and participant interests.
[ Home | Schedule | Assignments | Resources ]
fp@cs |