| | |
Summary: PROLE 2008
DATALOG SOLVE: A Datalog-Based
Demand-Driven Program Analyzer1
M. Alpuente M. A. Feli´u C. Joubert A. Villanueva 2
Universidad Polit´ecnica de Valencia, DSIC / ELP
Camino de Vera s/n, 46022 Valencia, Spain
Abstract
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.
Keywords: Java program analysis, Datalog, boolean equation system, demand-driven evaluation
1 Introduction
Static program analysis extracts semantic information from a given program without
running it. An example of such an analysis is the definition-use analysis that is used
to analyze data-flow program dependencies. The analysis is run on an abstract
representation of the program that contains the variable definitions as well as their
|