Understand the design and construction of compilers. Concepts include syntax analysis, semantics, code generation, optimization, and run-time systems. Problems in processing imperative languages, such as C and Pascal, as well as functional languages such as ML, will be examined. A complete compiler for a small language will be implemented in ML.
Prerequisites: 217 and 226.