CS 516 Compiler Design and Implementation
In the modern software industry, there is a proliferation of programming languages, especially domain-specific languages, such as Facebook Hack, Google Go, and Mozilla Rust. Therefore, the robustness and security of the software of the future depends on these languages (i) being built from classical compilers foundations and (ii) increasingly incorporating better analysis techniques. This course introduces students to the structure and design of compilers (lexical and syntax analysis, symbol table construction, code generation, etc.) as well as semantic analyses for correctness and security. The emphasis in this course is on the integration of the various parts of a compiler. Students will build a compiler for a small language. Pre-requisite: Graduate students - Required: Undergraduate Automata and Undergraduate Algorithms. Highly recommended: Undergraduate course in Principles of Programming Languages
OR CS 510. Undergraduate students - Required:
CS 334 and CS385. Highly recommended: CS496.
Distribution
Computer Science Program