Data flow analysis is used to discover information for a wide variety of useful applications, ranging from compiler optimizations to software engineering and verification. Modern compilers apply it to produce performance-maximizing code, and software engineers use it to re-engineer or reverse engineer programs and verify the integrity of their programs.
Unlike most comparable books, many of which are limited to bit vector frameworks and classical constant propagation, Data Flow Analysis: Theory and Practice offers comprehensive coverage of both classical and contemporary data flow analysis. It prepares foundations useful for both researchers and students in the field by standardizing and unifying various existing research, concepts, and notations. Divided into three parts, this unique text combines discussions of both inter- and intraprocedural analysis and then describes implementation of a generic data flow analyzer for bit vector frameworks in GCC.
This useful text:
• Addresses specification of data flow frameworks and the solution process
• Presents generalizations of constant and dependent parts of flow functions apart from the lattice theoretic modeling of data flow frameworks
• Includes an intermediate SSA representation of programs, which directly relates definition and use points of data for increased performance efficiency
• Avoids methods specific to particular applications and frameworks, focuses on generic functional and value based approaches, instead of presenting interprocedural methods specific to parituclar applications or frameworks
• use numerous case studies and examples to reinforce material
In addition to the text, readers will be able to use an accompanying updated Web page that features slides used in the course, as well as the source of the generic data flow analyzer gdfa, an errata that features errors as they are discovered, and any additional relevant material discovered in the course of research.
-An Introduction to Data Flow Analysis
SECTION I: Intraprocedural Data Flow Analysis
Classical Bit Vector Data Flow Analysis
-Theoretical Abstractions in Data Flow Analysis
-General Data Flow Frameworks
-Complexity of Iterative Data Flow Analysis
-Single Static Assignment Form as Intermediate Representation
SECTION II: Interprocedural Data Flow Analysis
-Introduction to Interprocedural Data Flow Analysis
-Functional Approach to Interprocedural Data Flow Analysis
-Value Based Approach to Interprocedural Data Flow Analysis
SECTION III: Implementing Data Flow Analysis
-Implementing Data Flow Analysis in GCC
An Introduction to GCC
Further Readings in GCC