Compilation and Equivalence of Imperative Objects (Revised Report)
AbstractWe adopt the untyped imperative object calculus of Abadi and
Cardelli as a minimal setting in which to study problems of compilation
and program equivalence that arise when compiling object oriented
languages. We present both a big-step and a small-step
substitution-based operational semantics for the calculus. Our first
two results are theorems asserting the equivalence of our substitution based semantics with a closure-based semantics like that given by Abadi and Cardelli. Our third result is a direct proof of the correctness of compilation to a stack-based abstract machine via a small-step decompilation algorithm. Our fourth result is that contextual equivalence of objects coincides with a form of Mason and Talcott's CIU
equivalence; the latter provides a tractable means of establishing operational equivalences. Finally, we prove correct an algorithm, used in
our prototype compiler, for statically resolving method offsets. This is
the first study of correctness of an object-oriented abstract machine,
and of operational equivalence for the imperative object calculus.
How to Cite
Gordon, A., Hankin, P., & Lassen, S. (1998). Compilation and Equivalence of Imperative Objects (Revised Report). BRICS Report Series, 5(55). https://doi.org/10.7146/brics.v5i55.19500
Articles published in DAIMI PB are licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.