Data flow analysis is a technique for deriving information from a program. The applications of this technique range from compiler optimization to software engineering to software verification. Modern compilers use this technique to produce code that maximize performance. In software engineering, the technique is used to re-engineer or reverse engineer programs. Finally, this technique is used in software verification to prove soundness of programs. The traditional literature on data flow analysis seems to begin and end with very simple applications of data flow analysis which creates a very narrow view of the possibilities of this technique. In particular, a lot of work has been done since the older books on data flow analyses were published
['Uday P. Khedker']
Static Analysis of Programs: A Heap Centric View