Course Outcomes
This course presents a survey of topics in compiler construction most relevant to students studying computer science. At the end of the semester, all students will be able to do the following:
1. Define the phases of a typical compiler, including the front- and backend.
2. Identify tokens of a typical high-level programming language; define regular expressions for tokens and design; implement a lexical analyzer using a typical scanner generator.
3. Explain the role of a parser in a compiler and relate the yield of a parse tree to a grammar derivation; design and implement a parser using a typical parser generator.
4. Apply an algorithm for a top-down or a bottom-up parser construction; construct a parser for a small context-free grammar.
5. Explain the role of a semantic analyzer and type checking; create a syntax-directed definition and an annotated parse tree; describe the purpose of a syntax tree.
6. Explain the role of different types of runtime environments and memory organization for the implementation of typical programming languages.