Inter-deriving semantic artifacts for object-oriented programming

作者:

Highlights:

摘要

We present a new abstract machine for Abadi and Cardelli's untyped non-imperative calculus of objects. This abstract machine 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. To move closer to actual implementations, which use environments rather than actual substitutions, we then represent methods as closures and we present three new semantic artifacts for a version of Abadi and Cardelli's calculus with explicit substitutions: a reduction semantics, 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 the two abstract machines are bisimilar. Their significance lies in the fact that they have not been designed from scratch and then proved correct; instead, they have been inter-derived.To illustrate the inter-derivation and to make this article stand-alone, we also comprehensively treat the example of negational normalization over Boolean formulas, in appendix.

论文关键词:Functional calculus of objects,Reduction semantics,Abstract machine,Natural semantics,Syntactic correspondence,Functional correspondence

论文评审过程:Received 12 September 2008, Revised 2 May 2009, Available online 17 October 2009.

论文官网地址:https://doi.org/10.1016/j.jcss.2009.10.004