CS 352: Compilers: Principles and Practice
List of Topics (By Week):
-
Introduction: modules and interfaces, tools and software
-
Programming data structures for tree languages
-
Lexical analysis: lexical tokens, regular expressions, finite automata, lexical analyser generators
-
Parsing I: context-free grammars, predictive parsing
-
Parsing II: LR parsing, parser generators
-
Abstract syntax: semantic actions, abstract parse trees
-
Semantic analysis: symbol tables, type-checking expressions, type-checking declarations
-
Activation records: stack frames, allocation
-
Translation to intermediate code: intermediate representation trees, translation into trees
-
Basic blocks and traces: canonical trees, conditional branches
-
Instruction selection: algorithms for instruction selection, CISC and RISC machines
-
Liveness analysis: solution of basic dataflow equations
-
Register allocation: graph coloring, coloring by simplification, coalescing, register allocation for trees
-
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
-
Summary
1998.08