[Please remove <h1>]
Objectives
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.
Reference
Advanced Compiler Design and Implementation, by Steven S. Muchnick, Morgan
Kaufmann, 1997.
Schedule
3 hours of lecture per week.
Outline
Introduction (3 hrs)
Review of compiler technology, intermediate representations, basic blocks, control-flow graphs.
Optimization (15 hrs)
Data-flow analysis, dependence analysis, static single assignment form, optimizing transforms, alias analysis, register allocation, instruction scheduling, partial evaluation, abstract interpretation, continuation-passing style.
Run-Time Organization (6 hrs)
Memory management, garbage collection, threads and concurrency.
Polymorphism (9 hrs)
Single and multiple inheritance, generics, templates and type inference.
Current Topics (3 hrs)
Recent developments and trends.