|
|
Showing 1 - 2 of
2 matches in All Departments
The VLISP project showed how to produce a comprehensively verified
implemen tation for a programming language, namely Scheme [4, 15).
Some of the major elements in this verification were: * The proof
was based on the Clinger-Rees denotational semantics of Scheme
given in [15). Our goal was to produce a "warts-and-all"
verification of a real language. With very few exceptions, we
constrained ourselves to use the se mantic specification as
published. The verification was intended to be rigorous, but. not.
complet.ely formal, much in the style of ordinary mathematical
discourse. Our goal was to verify the algorithms and data types
used in the implementat.ion, not their embodiment. in code. See
Section 2 for a more complete discussion ofthese issues. Our
decision to be faithful to the published semantic specification led
to the most difficult portions ofthe proofs; these are discussed in
[13, Section 2.3-2.4). * Our implementation was based on the
Scheme48 implementation of Kelsey and Rees [17). This
implementation t.ranslates Scheme into an intermediate-level "byte
code" language, which is interpreted by a virtual machine. The
virtual machine is written in a subset of Scheme called PreScheme.
The implementationissufficient.ly complete and efficient to allow
it to bootstrap itself. We believe that this is the first. verified
language implementation with these properties.
The VLISP project showed how to produce a comprehensively verified
implemen tation for a programming language, namely Scheme [4, 15).
Some of the major elements in this verification were: * The proof
was based on the Clinger-Rees denotational semantics of Scheme
given in [15). Our goal was to produce a "warts-and-all"
verification of a real language. With very few exceptions, we
constrained ourselves to use the se mantic specification as
published. The verification was intended to be rigorous, but. not.
complet.ely formal, much in the style of ordinary mathematical
discourse. Our goal was to verify the algorithms and data types
used in the implementat.ion, not their embodiment. in code. See
Section 2 for a more complete discussion ofthese issues. Our
decision to be faithful to the published semantic specification led
to the most difficult portions ofthe proofs; these are discussed in
[13, Section 2.3-2.4). * Our implementation was based on the
Scheme48 implementation of Kelsey and Rees [17). This
implementation t.ranslates Scheme into an intermediate-level "byte
code" language, which is interpreted by a virtual machine. The
virtual machine is written in a subset of Scheme called PreScheme.
The implementationissufficient.ly complete and efficient to allow
it to bootstrap itself. We believe that this is the first. verified
language implementation with these properties.
|
|