Pointer Analysis:
introduction, applications, as a DFA problem, design decisions for precision vs. efficiency trade-off, heap modeling, analysis dimensions, set implementation, Andersens's and Steensgaard's analyses, common model.
as a graph problem, reachability, online cycle detection, dominators, propagation orders, optimal ordering, heuristics, applications to optimizations such as dead-code elimination, reaching definitions, parallelization, escape analysis, parallelization of PTR, constraint-based formulation,
parallelization using replication, graph rewrite-rules.
Shape Analysis:
limitations of pointer analysis, identification of simple structures like lists,
identifying trees, DAGs and cyclic graphs,
identifying rotations, limitations, reversal and other transformations, limitations.
Dynamic Analysis:
limitations of static analysis, trade-offs, applications, introduction,
profiling techniques, intrusive and non-intrusive methods, limitations, applications,
finding invariants, equality invariants,
finding affine invariants and other applications
dynamic type inferencing, limitations.