Data dependences, which relate statements that compute data values to statements that use those values, are useful for automating a variety of program-comprehension-related activities, such as reverse engineering, impact analysis, and debugging. Unfortunat
12
def={x} use={}def={y} use={}def={} use={x,y}
7
def={} use={y}
1 begin M2 read x3 read y
4 if x > y then5 read x6 print x else
8 print y endif9 end M
34
def={x} use={}def={} use={x}
56
8
Figure1:Sampleprogramtoillustratede nitions,uses,anddatadependences(above);control- owgraphfortheprogramannotatedwithdefandusesets(below).
CFGcanalsobebuiltatthebasic-blocklevel;insuchaCFG,eachnoderepresentsasequenceofsingle-entry,single-exit
statements.
1A