This work presents a practical Java program analysis framework that is obtained by combining a Java virtual machine with a general-purpose verification toolbox that we previously extended. In our methodology, Datalog clauses are used to specify complex interprocedural program analyses involving dynamically created objects. After extracting an initial set of Datalog constraints about the Java bytecode program semantics, our framework transforms the Datalog rules of a particular analysis into a Boolean Equation System (Bes), whose local resolution using the aforementioned extended verification toolbox corresponds to the demand-driven computation of the analysis.
This work has been supported by the Spanish mec/micinn under grant TIN 2007-68093-C02-02, by the Generalitat ValencianaGVPRE/2008/113, and by the Universidad Politécnica de Valencia, under grant PAID-06-07 (tacpas).