6.883 | Fall 2005 | Graduate

Program Analysis


Lec # topics key dates
1 Introduction

Static and Dynamic Analysis

Assignment 1 out
Abstract Interpretation
2 A Semantics-based Tool for Program Analysis Assignment 1 due
3 A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints

Dynamic Analysis
4 Chaining Approach for Software Test Data Generation

5 Efficient Path Profiling

6 Simplifying and Isolating Failure-inducing Input

7 Dynamically Discovering Likely Program Invariants to Support Program Evolution

8 Principal Type-schemes for Functional Programs

Proofs about a Folklore Let-polymorphic Type Inference Algorithm

9 Introduction to Part II, Polymorphic Lambda Calculus

10 Lackwit: A Program Understanding Tool based on Type Inference

Finding User/Kernel Pointer Bugs with Type Inference

11 Points-to Analysis

In Almost Linear Time

By Type Inference of Programs with Structures and Unions

Model Checking
12 The Spin Model Checker

13 Optimizing Symbolic Model Checking for Statecharts

14 Constructing Compact Models of Concurrent Java® Programs

Using Predicate Abstraction to Reduce Object-oriented Programs for Model Checking

15-17 Student Project Presentations

Course Info

As Taught In
Fall 2005