Date |
Topic |
Slides/Notes |
Reading |
Participation |
Assignment Due |
Jan 11 |
Introduction to Program Analysis |
01-introduction.pdf |
Lect01.doc |
||
Jan 13 |
Dataflow Analysis and Abstract
Interpretation Frameworks |
02-dataflow-analysis.pdf; CrystalTutorial.pdf |
PPA ch. 1 |
Lect02.doc |
|
Jan 15 |
Crystal demo in office hours |
sample-analysis.zip |
|||
Jan 18 |
No
class - MLK day |
||||
Jan 20 |
Dataflow Analysis Examples |
PPA 2.1-2.3 |
Analysis
warm-up (and Countdown.java) |
||
Jan 25 |
Program Semantics and Abstract
Interpretation Correctness |
lec3-notes.txt | PPA ch. 4 |
||
Jan 27 | No
class - instructor out of town |
||||
Feb 1 |
Abstract Interpretation - Examples | Dataflow
analysis (and TestSign.java) |
|||
Feb 3 |
Interprocedural Analysis |
07-interprocedural.pdf; lec7-inter-alg.txt |
Shivers |
||
Feb 8 |
snow
day - no class |
Abstract interpretation correctness | |||
Feb 10 |
snow
day - no class |
||||
Feb 15 |
Alias Analysis | lec8-pointer.txt |
Steensgaard, Andersen | ||
Feb 17 |
Shape Analysis |
lec9-shape.txt |
Sagiv et al. |
||
Feb 22 |
Shape Analysis (continued) |
|
|||
Feb 24 |
Hoare Logic | 09-hoare.pdf |
An Axiomatic Basis
for Computer Programming; 3-hoare-notes.pdf |
||
Mar 1 |
Extended Static Checking | notes |
Weakest-Precondition
of Unstructured Programs; Boogie |
Alias or Interprocedural Analysis | |
Mar 3 |
The Boogie Modular Verification
Methodology |
notes |
Verification
of Object-Oriented Programs with Invariants |
||
Mar 8, 10 |
Spring
break - no class |
||||
Mar 15 |
Boogie, continued; comparison to
Typestate verification in Plural |
Modular Typestate Checking of Aliased Objects | Project proposal | ||
Mar 17 |
Analysing higher-order and OO
programs |
lec-CFA.txt | |||
Mar 22 |
Constraint-Based Analysis |
Introduction to Set Constraint-Based Program Analysis. | |||
Mar 24 |
Constraints continued; Type- and Effect Analysis |
Andersen's algorthm from Kodumal
& Aiken's Banshee
paper; PPA ch. 5 |
|||
Mar 29 |
Type- and Effect Analysis
continued |
|
|||
Mar 31 |
Symbolic Execution | PLDI '10 paper (preprint on Blackboard) | |||
Apr 5 |
Concolic Execution | Koushik Sen's lecture notes |
DART |
Project milestone | |
Apr 7 |
Counterexample Guided Abstraction Refinement in Yogi | DASH |
|
||
Apr 12 |
Advanced Program Representations | Global Value
Numbers and Redundant Computations (the first to use SSA
form); The
Program Dependence Graph and Its Use in Optimization |
|||
Apr 14 |
Daikon: Dynamic Analysis; Test
Prioritization |
daikon.pdf;
test-prioritization.pdf |
Dynamically
discovering likely program invariants to support program evolution;
Effectively
Prioritizing Tests in Development Environment |
||
Apr 19 |
Concurrency Analysis;
Engineering and
Adoptability |
concurrency.pdf |
Assuring
and Evolving Concurrent Programs: Annotations and Policy |
Project milestone | |
Apr 21 |
Analysis in Practice - Microsoft and EBay case studies | static-analysis-at-microsoft.pdf |
Understanding
the value of program analysis tools |
||
Apr 26 |
Declarative Program Analysis |
Strictly
Declarative Specification of Sophisticated Points-to Analyses |
|||
Apr 28 |
Final exam |
||||
May 4 |
8:30am Project Presentations |
Final project |