Srikant
Data-flow Analysis
Data-flow analysis
These are techniques that derive information about the
flow of data along program execution paths
An execution path (or path) from point p1 to point pn is a
sequence of points p1 , p2 , ..., pn such that for each
i = 1, 2, ..., n − 1, either
1
2
pi is the point immediately preceding a statement and pi+1
is the point immediately following that same statement, or
pi is the end of some block and pi+1 is the beginning of a
successor block
In general, there is an infinite number of paths through a
program and there is no bound on the length of a path
Program analyses summarize all possible program states
that can occur at a point in the program with a finite set of
facts
No analysis is necessarily a perfect representation of the
state
Y.N.