Static Analysis of Programs: A Heap Centric View

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

[1]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[2]  Amey Karkare,et al.  Heap reference analysis using access graphs , 2006, ACM Trans. Program. Lang. Syst..

[3]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[4]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[5]  Uday P. Khedker Data Flow Analysis , 2002, The Compiler Design Handbook.

[6]  Neil D. Jones,et al.  Program Flow Analysis: Theory and Application , 1981 .

[7]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[8]  Neil D. Jones,et al.  Program flow analysis - theory and applications , 1981, Prentice Hall software series.