Prerequisites: CSE201, CSE207
Compilation is the process of transforming high-level programs and abstractions into the binary machine code used in computer processors.  This course introduces the principles and techniques of compilation, with parsers, interpreters, and translators, as well as topics in code optimization and semantic analysis.  Students will build a compiler for a simple programming language.