Higher-Order and Symbolic Computation, 19(4)
Deriving Escape Analysis by Abstract Interpretation
Patricia M. Hill, University of Leeds, United Kingdom
Fausto Spoto, Universita di Verona, Italy
|
Abstract: Escape analysis of object-oriented
languages approximates the set of objects which do not escape
from a given context. If we take a method as context, the non-escaping
objects can be allocated on its activation stack; if we take a thread,
Java synchronisation locks on such objects are not needed. In this
paper, we formalise a basic escape domain E as an abstract
interpretation of concrete states, which we then refine into an
abstract domain ER which is more concrete than E
and, hence, leads to a more precise escape analysis than E.
We provide optimality results for both E and ER,
in the form of Galois insertions from the concrete to the abstract
domains and of optimal abstract operations. The Galois insertion
property is obtained by restricting the abstract domains to those
elements which do not contain garbage, by using an abstract
garbage collector. Our implementation of ER is hence an
implementation of a formally correct escape analyser, able to detect
the stack allocatable creation points of Java (bytecode)
applications.
|
This article is not yet available.
|
|