jDFA - The Data-Flow Analysis Framework for Java
jDFA is a Java framework for data-flow based program analysis. It allows to implement analyses, test their correctness, and evaluate their performance. In addition, the framework allows the definition of intraprocedural analyses for Java Virtual Machine (JVM) code on a high level of abstraction.
The framework is provided as a set of APIs for Java:
DataFlowSolver, which contains an implementation of the classical iterative algorithm for intra-procedural data-flow analysis.
Visit the SourceForge project page to download.
For the JVM related APIs of jDFA, you need the ByteCode Engineering Library (BCEL). Please use the SourceForge version of BCEL, not the Apache version.
Just put the JAR file somewhere and add the location to the CLASSPATH environment variable.
The package de.rwth.dfa.jvm.samples contains simple example applications:
java de.rwth.dfa.jvm.samples.SSAnalyser classfile
java de.rwth.dfa.jvm.samples.LVAnalyser classfile
java de.rwth.dfa.jvm.samples.CPAnalyser classfile
java de.rwth.dfa.jvm.samples.CFPAnalyser classfile
To check out the complete source tree using anonymous CVS:
cvs -d:pserver:email@example.com:/cvsroot/jdfa loginWhen prompted for a password for anonymous, simply press the Enter key.
cvs -z3 -d:pserver:firstname.lastname@example.org:/cvsroot/jdfa co de
For more details please visit the Site Documentation page of SourceForge.
jDFA is published under BSD License.