You are here: Home Analysis Flow Analysis
Document Actions

Flow Analysis

The flow analysis component adds intra procedural control flow and data flow to the JastAdd Extensible Java Compiler.

Intraprocedural Control Flow and Data Flow

We have implemented intraprocedural control-flow and data-flow analysis of Java source code in a declarative manner, using reference attribute grammars augmented with circular attributes and collection attributes. Our implementation is built on top of the JastAdd Extensible Java Compiler and we have run the analyses on medium-sized Java programs. We show how the analyses can be built using small concise composable modules, and how they provide extensible frameworks for further source code analyses. Preliminary measurements indicate that there is little difference in execution time between our declarative data-flow analysis and an imperative implementation. 

Full paper , Presentation given at LDTA 08

Analysis Example

Try out the dead assignment analysis presented in the paper by downloading archive.tar.gz. You'll find a README file in the top-level directory with instructions on how to build and run.