Covers optimizing compilers and the implementation of advanced programming
language features. While both theoretical and practical aspects are discussed,
the course has an applied focus and the term work involves several major implementation-oriented
assignments as well as an independent project.
Advanced Compiler Design and Implementation, by Steven S. Muchnick, Morgan
3 hours of lecture per week.
Review of compiler technology, intermediate representations, basic blocks, control-flow graphs.
Data-flow analysis, dependence analysis, static single assignment form, optimizing transforms, alias analysis, register allocation, instruction scheduling, partial evaluation, abstract interpretation, continuation-passing style.
Memory management, garbage collection, threads and concurrency.
Single and multiple inheritance, generics, templates and type inference.
Recent developments and trends.