The main property to be checked when verifying a compiler is semantic equivalence of source program and generated target code. In order to be able to decide this property, a precise formulation of source and target semantics is needed. Moreover, when an automatic proof support tool is to be used, these definitions must be expressed within the tool’s formalism. We will demonstrate a way how to model structured operational semantics in the style of Plotkin by means of a special form of term rewriting systems. These systems can be shown to model the original semantics definitions very closely, and they can be implemented as standard rewriting systems within the object language of the Larch Prover. An application of this implementation is the proof of equivalence of structured operational and denotational semantics definitions for a small language. This proof becomes necessary when different aspects of verification require different ways of defining the semantics.
[1]
Stephen J. Garland,et al.
An Overview of LP, The Larch Power
,
1989,
RTA.
[2]
Martín Abadi,et al.
Explicit substitutions
,
1989,
POPL '90.
[3]
John Dawes,et al.
The VDM-SL Reference Guide
,
1991
.
[4]
Gordon Plotkin,et al.
An Operational Semantics for CSP.
,
1982
.
[5]
Cliff B. Jones,et al.
Systematic software development using VDM
,
1986,
Prentice Hall International Series in Computer Science.
[6]
Stephen J. Garland,et al.
A Guide to LP, The Larch Prover
,
1991
.
[7]
de Ng Dick Bruijn.
Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem
,
1972
.
[8]
Flemming Nielson,et al.
A ProCos Project Description: Esprit BRA 3104
,
1989
.
[9]
Simon L. Peyton Jones,et al.
Imperative functional programming
,
1993,
POPL '93.