Inter-Deriving Semantic Artifacts for Object-Oriented Programming
Olivier Danvy
June 2008 |
Abstract:
We present a new abstract machine for Abadi and Cardelli's
untyped calculus of objects. What is special about this semantic artifact
(i.e., man-made construct) is that is mechanically corresponds to both the
reduction semantics (i.e., small-step operational semantics) and the natural
semantics (i.e., big-step operational semantics) specified in Abadi and
Cardelli's monograph. This abstract machine therefore embodies the soundness
of Abadi and Cardelli's reduction semantics and natural semantics relative to
each other.
To move closer to actual implementations, which use environments rather than actual substitutions, we then represent object methods as closures and in the same inter-derivational spirit, we present three new semantic artifacts: a reduction semantics for a version of Abadi and Cardelli's untyped calculus of objects with explicit substitutions, an environment-based abstract machine, and a natural semantics (i.e., an interpreter) with environments. These three new semantic artifacts mechanically correspond to each other, and furthermore, they are coherent with the previous ones since as we show, the two abstract machines are bisimilar. Overall, though, the significance of these artifacts lies in them not having been designed from scratch and then proved correct: instead, they were mechanically inter-derived. Available as PostScript, PDF, DVI. |