Every software developer uses compilation technology when they develop software.
In this course, you'll study issues of language design and implementation in depth, and understand specific issues in compilation and of general issues in language design. This course introduces the student to the basics of building a compiler using a multi-phase translation process. It covers lexical analysis, parsing, and translation to abstract syntax using modern parser generator technology. It discusses binding of identifiers and symbol table organization, and a variety of intermediate representations that are suitable for back end analysis. It investigates back end transformations and optimizations for a number of languages.