Hostname: page-component-89b8bd64d-ktprf Total loading time: 0 Render date: 2026-05-09T07:48:23.901Z Has data issue: false hasContentIssue false

From operational semantics to abstract machines

Published online by Cambridge University Press:  04 March 2009

John Hannan
Affiliation:
Department of Computer Science, The Pennsylvania State University, University Park, PA 16802, USA. (hannan@cs.psu.edu)
Dale Miller
Affiliation:
Computer and Information Science, University of Pennsylvania, Philadelphia, PA 19104–6389, USA. (date@cis.upenn.edu)

Abstract

We consider the problem of mechanically constructing abstract machines from operational semantics, producing intermediate-level specifications of evaluators guaranteed to be correct with respect to the operational semantics. We construct these machines by repeatedly applying correctness-preserving transformations to operational semantics until the resulting specifications have the form of abstract machines. Though not automatable in general, this approach to constructing machine implementations can be mechanized, providing machine-verified correctness proofs. As examples, we present the transformation of specifications for both call-by-name and call-by-value evaluation of the untyped λ-calculus into abstract machines that implement such evaluation strategies. We also present extensions to the call-by-value machine for a language containing constructs for recursion, conditionals, concrete data types, and built-in functions. In all cases, the correctness of the derived abstract machines follows from the (generally transparent) correctness of the initial operational semantic specification and the correctness of the transformations applied.

Information

Type
Research Article
Copyright
Copyright © Cambridge University Press 1992

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Article purchase

Temporarily unavailable