Available courses

This course covers the design and implementation of compiler and runtime systems for high-level languages, and examines the interaction between language design, compiler design, and runtime organization. Topics covered include lexical and syntactic analysis, semantic analysis, type-checking, program analysis, code generation and optimization, memory management, and runtime organization.

Compilers and principles of compiling are one fundamental core aspect of computer science. Compilers and several other parts of compiler technology (especially parsing, transformation, analysis, and optimization) play important roles in many systems built every day. The knowledge gained in this course should be broad enough that if you are confronted with the task of contributing to the implementation of a real compiler in the field or similar technology, you should be able to do so confidently and quickly.