CS 744 Advanced Compiler Design


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 Kaufmann, 1997.


3 hours of lecture per week.


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.

Campaign Waterloo

David R. Cheriton School of Computer Science
University of Waterloo
Waterloo, Ontario, Canada N2L 3G1

Tel: 519-888-4567 x33293
Fax: 519-885-1208

Contact | Feedback: cs-webmaster@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics

Valid HTML 4.01!Valid CSS! Last modified: Friday, 01-Jun-2012 11:00:32 EDT