DFA Beginner's Kit
Diving into the theory of data flow analysis is a tough task for newbies,
primarily because it is not clear where to begin (the area is huge).
This page lists the main resources in the field that should be
consulted, in the order I would recommend reading them.
-
www.program-analysis.com
Very useful web site introducing to the concepts of data flow analysis.
Contains an online tool (PAG: Program Analysis Generator) that can create analyses for a simple programming
language. Also recommended: The related PhD thesis by Florian Martin.
-
Compilers: Principles, Techniques, and Tools (Aho et al.)
The classical book on compiler construction: Very well written and still useful in spite of its age.
It also contains a chapter about data flow analysis.
-
A Unified Approach to Global Program Optimization (Kildall)
This paper introduced the concept of data flow analysis frameworks. You should already know what
this is by now. Search for an online version with Google Scholar
-
Principles of Program Analysis (Nielson et al.)
Once you've understood the basics, you should check out their formal foundations in this rather tough book.
Until now, this is the only comprehensive treatment of static program analysis. It also has its own
web site.
-
Two approaches to interprocedural data flow analysis (Sharir, Pnueli)
So far, you have learned a little about interprocedural analysis in Nielson's book and in
Florian Martin's PhD thesis. However, the standard work for this topic is this paper, which will confront you with two
problems. First, there seems to be no online version, so you will have to check your library for it.
Second, it is quite hard to understand when you initially read it, so you will have to do multiple
passes over it. However, it is certainly worth the trouble.
Back to Nenad's homepage.