POPL



Home

Details

Schedule

References


Principle of Programming Languages


Overview

This course teaches the principle of design and implementation of programming languages. This year, we will concentrate on language implementation, that is, compiler theory and engineering. You will study, in detail, core components of modern compilers, including: lexical analysis, parsing, abstract syntax trees, type checking, memory management, intermediate representation, code generation, optimization, and garbage collection, etc. Most importantly, you will study the interactions between theory and practice by implementing a nontrivial compiler for a subset of the Java programing language. You will gain a deep understanding of how to manage the complexity introduced by the interactions in a complex software system like compiler.