CS6470: Advanced Compilers (Spring 2008)



General Information


Course Description

This course is primarily about static analysis: a collection of techniques for determining properties of programs, without running the programs. Optimizing compilers, parallelizing compilers, static bug-finding tools, and program verifiers all rely heavily on static analysis.

The first part of the course will cover core material such as dataflow frameworks, abstract interpretation, program representations, and pointer analysis. The second part of the course will focus on modern applications of static analysis.

Programming assignments will involve extending an existing static analyzer for C code.

The textbook is Principles of Program Analysis by Nielson, Nielson, and Hankin.


Class Schedule


date topic reading slides other
1/8 course intro
1up, 6up homework 1 assigned
1/10 dataflow intro
1up, 6up
1/15 dataflow frameworks
1up, 6up homework 1 due
homework 2 assigned
1/17 more dataflow
1up, 6up homework 2 due
1/22 C semantics read chapters 1 and 2 of Norrish's thesis 1up, 6up
1/24 more C semantics
1up, 6up homework 3 assigned
1/29 transfer function code review

homework 3 due
1/31 abstract interpretation 1
1up, 6up homework 4 assigned
2/5 abstract interpretation 2
1up, 6up
2/7 abstract interpretation 3
1up, 6up homework 4 due
homework 5 assigned
2/12 deriving transfer functions
1up, 6up
2/14 abstract interpretation for safety critical systems read Astree paper

2/19 two interesting abstract domains
1up, 6up homework 5 due
2/21 no class-- John out of town


2/26 combining transformations
1up, 6up
2/28 representations
1up, 6up
3/4 more representations
1up, 6up
3/6 interprocedural analysis
1up, 6up
3/11 more interprocedural
1up, 6up
3/13 deriving transfer functions


3/18 Spring Break


3/20 Spring Break


3/25 LLVM


3/27 more LLVM


4/1 pointer analysis
1up, 6up
4/3 volatiles in C


4/8 offline RAM compression: guest lecture by Nathan Cooprider


4/10 no class-- John out of town


4/15 impact of economics on compiler optimization read Robison paper

4/17 project presentations


4/22 project presentations

project report due



This page is maintained by John Regehr, mail me if you find a mistake or if any content is unclear.