Proving the correctness of storage representations

  • Authors:
  • Mitchell Wand;Dino P. Oliva

  • Affiliations:
  • -;-

  • Venue:
  • LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
  • Year:
  • 1992

Quantified Score

Hi-index 0.00

Visualization

Abstract

Conventional techniques for semantics-directed compiler derivation yield abstract machines that manipulate trees. However, in order to produce a real compiler, one has to represent these trees in memory. In this paper we show how the technique of storage-layout relations can be applied to verify the correctness of storage representations in a very general way. This technique allows us to separate denotational from operational reasoning, so that each can be used when needed. As an example, we show the correctness of a stack implementation of a language including dynamic catch and throw. The representation uses static and dynamic links to thread the environment and continuation through the stack. We discuss other uses of these techniques.