Computer Language Engineering
MIT's course on building compilers for higher-level programming languages. Covers the fundamental concepts, functions, and structures that make up a compiler, including lexical analysis, parsing, semantic analysis, code generation, and optimization, along with the theoretical foundations behind each stage. The course emphasizes the interaction between theory and practice, teaching students to use existing tools and libraries while building their own. A central component is a multi-person team project in which students design and implement a working compiler over the course of the term. Materials available through MIT OpenCourseWare include lecture notes, project assignments, and reference materials, offered under a Creative Commons license at no cost, with no certificate attached.