Table of Contents
Static Program Analysis viaDependence Graphs
Outline
Outline
Program Slicing
Backward Slice
Backward Slice
Forward Slice
Forward Slice
Chop
Empty Chop
What Are Slices Useful For?
Examples of Specialization
Line-Character-Count Program
Character-Count Program
Line-Character-Count Program
Line-Count Program
Outline
Intraprocedural Slicing
Control Flow Graph
Control Flow Graph Vertices
Control Dependence Graph
Flow Dependence Graph
Program Dependence Graph (PDG)
Program Dependence Graph (PDG)
Backward Slice
Backward Slice (2)
Backward Slice (3)
Backward Slice (4)
Slice Extraction
Outline
Interprocedural Slicing
Interprocedural Slice
Interprocedural Slice
Interprocedural Slice
System Dependence Graph (SDG)
SDG for the Sum Program
Interprocedural Backward Slice
Interprocedural Backward Slice (2)
Interprocedural Backward Slice (3)
Interprocedural Backward Slice (4)
Interprocedural Backward Slice (5)
Interprocedural Backward Slice (6)
Matched-Parenthesis Path
Interprocedural Backward Slice (6)
Interprocedural Backward Slice (7)
Slice Extraction
Slice of the Sum Program
Outline
Non-Local Variables
Non-Local Variables
Backward Slice
Backward Slice
Non-Locals Translated to Parameters
Backward Slice
Data Predecessors
Data Predecessors
Parameters for Non-Locals Filtered Out
Filtered Data Predecessors
Outline
Pointer Analysis
Need for Pointer Analysis
Backwards Slice
Flow-Insensitive Points-To Analysis[Andersen 94, Shapiro & Horwitz 97]
Outline
DARPA SBIR Project
Outline
CodeSurfer Demo
|