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.

Course Material