Hostname: page-component-76fb5796d-vvkck Total loading time: 0 Render date: 2024-04-26T04:28:39.509Z Has data issue: false hasContentIssue false

Compilation and equivalence of imperative objects

Published online by Cambridge University Press:  01 July 1999

ANDREW D. GORDON
Affiliation:
University of Cambridge Computer Laboratory, University of Cambridge, Cambridge, UK Current affiliation: Microsoft Research. E-mail: adg@microsoft.com
PAUL D. HANKIN
Affiliation:
University of Cambridge Computer Laboratory, University of Cambridge, Cambridge, UK
SØREN B. LASSEN
Affiliation:
BRICS
Basic Research in Computer Science, Centre of the Danish National Research Foundation.
, Department of Computer Science, University of Aarhus, Aarhus, Denmark
Current affiliation: University of Cambridge Computer Laboratory. E-mail: Soeren.Lassen@cl.cam.ac.uk
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

We 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.

Type
Research Article
Copyright
© 1999 Cambridge University Press
Submit a response

Discussions

No Discussions have been published for this article.