CS 744 Advanced Compiler Design



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.