Control Dependencies in Interpretive Systems
Babak Yadegari
Saumya Debray
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.
Abstract
Interpreters and just-in-time (JIT) compilers are ubiquitous in
modern computer systems, making it important to have
good program analyses for reasoning about
such systems. Control dependence, which plays a
fundamental role in a number of program analyses, is an
important contender in this regard. Existing
algorithms for (dynamic) control dependence analysis do
not take into account some important runtime characteristics of
interpretive computations, and as a result produce results that
may be imprecise and/or unsound.
This paper describes a new notion of control dependence
and analysis algorithm for interpretive systems.
%% that addresses the problems described above for
%% control dependence analysis in interpretive computations.
This significantly improves dynamic control dependence
information, with corresponding improvements in client analyses
such as dynamic program slicing and reverse engineering. To the best of our
knowledge, this is the first proposal to reason about low-level dynamic control dependencies
in interpretive systems in the presence of dynamic code generation
and optimization.