The Tail-Recursive SECD Machine

  • Authors:
  • John D. Ramsdell

  • Affiliations:
  • The MITRE Corporation. e-mail: ramsdell@mitre.org

  • Venue:
  • Journal of Automated Reasoning
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

One method for producing verified implementations of programming languages is to formally derive them from abstract machines. Tail-recursive abstract machines provide efficient support for iterative processes via the ordinary procedure call mechanism. This document argues that the use of tail-recursive abstract machines incurs only a small increase in theorem-proving burden when compared with what is required when using ordinary abstract machines. The position is supported by comparing correctness proofs performed using the Boyer–Moore theorem prover.A by-product of this effort is a syntactic criterion based on tail contexts for identifying which procedure calls must be implemented as tail calls. The concept of tail contexts was used in the latest Scheme Report, the only language specification known to the author that defines the requirement that its implementations must be tail recursive.