Department of Computer Science @ Purdue University
Search | General Information | Academics | Research | People | External Relations

CS 352: Compilers: Principles and Practice

List of Topics (By Week):

1. Introduction: modules and interfaces, tools and software

2. Programming data structures for tree languages

3. Lexical analysis: lexical tokens, regular expressions, finite automata, lexical analyser generators

4. Parsing I: context-free grammars, predictive parsing

5. Parsing II: LR parsing, parser generators

6. Abstract syntax: semantic actions, abstract parse trees

7. Semantic analysis: symbol tables, type-checking expressions, type-checking declarations

8. Activation records: stack frames, allocation

9. Translation to intermediate code: intermediate representation trees, translation into trees

10. Basic blocks and traces: canonical trees, conditional branches

11. Instruction selection: algorithms for instruction selection, CISC and RISC machines

12. Liveness analysis: solution of basic dataflow equations

13. Register allocation: graph coloring, coloring by simplification, coalescing, register allocation for trees

14. Supplemental material: a selection drawn from garbage collection, object-oriented languages, functional languages, dataflow analysis, optimization, polymorphism, static single-assignment form, scheduling and pipelining, memory hierarchies

15. Summary

1998.08