
Ebook: VLISP A Verfied Implementation of Scheme: A Special Issue of Lisp and Symbolic Computation, An International Journal Vol. 8, Nos. 1 & 2 March 1995
- Tags: Programming Languages Compilers Interpreters, Software Engineering/Programming and Operating Systems, Artificial Intelligence (incl. Robotics)
- Year: 1995
- Publisher: Springer US
- Edition: 1
- Language: English
- pdf
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 undertook to provide a rigorous verification of a programming language. The project began at the MITRE Corporation in late 1989 under the company's Technology Program. The work was supervised by the Rome Laboratory of the U.S. Air Force. Northeastern University became involved a year later.
The aim was to show realism and comprehensiveness. Realism is revealed in the choice of a widely used programming language, Scheme, and the choice of a flexible and reasonably efficient implementation strategy. Comprehensiveness is revealed in the broad range of steps undertaken in verification, leading from the abstract syntax of a high level programming language, equipped with a continuation style, denotational semantics, down to an abstract assembly language equipped with a concrete operational semantics.
The editors of VLISP have extracted re-usable conclusions from the work at two, quite different levels. First general approaches to the organization of the work have been found which are beneficial and which can be recommended. They help to make formal methods more pragmatically effective. Second, there are four main verification techniques that are applied in the proof process. This relatively small collection of techniques, none of them particularly arcane, allow a large verification to be undertaken. The identification of such re-usable parts bodes well for the increased use of formal methods in compiler construction.
The VLISP project undertook to provide a rigorous verification of a programming language. The project began at the MITRE Corporation in late 1989 under the company's Technology Program. The work was supervised by the Rome Laboratory of the U.S. Air Force. Northeastern University became involved a year later.
The aim was to show realism and comprehensiveness. Realism is revealed in the choice of a widely used programming language, Scheme, and the choice of a flexible and reasonably efficient implementation strategy. Comprehensiveness is revealed in the broad range of steps undertaken in verification, leading from the abstract syntax of a high level programming language, equipped with a continuation style, denotational semantics, down to an abstract assembly language equipped with a concrete operational semantics.
The editors of VLISP have extracted re-usable conclusions from the work at two, quite different levels. First general approaches to the organization of the work have been found which are beneficial and which can be recommended. They help to make formal methods more pragmatically effective. Second, there are four main verification techniques that are applied in the proof process. This relatively small collection of techniques, none of them particularly arcane, allow a large verification to be undertaken. The identification of such re-usable parts bodes well for the increased use of formal methods in compiler construction.
Content:
Front Matter....Pages i-4
VLISP: A Verified Implementation of Scheme....Pages 5-32
The VLISP Verified Scheme System....Pages 33-110
The VLISP Verified PreScheme Compiler....Pages 111-182
Back Matter....Pages 183-184
The VLISP project undertook to provide a rigorous verification of a programming language. The project began at the MITRE Corporation in late 1989 under the company's Technology Program. The work was supervised by the Rome Laboratory of the U.S. Air Force. Northeastern University became involved a year later.
The aim was to show realism and comprehensiveness. Realism is revealed in the choice of a widely used programming language, Scheme, and the choice of a flexible and reasonably efficient implementation strategy. Comprehensiveness is revealed in the broad range of steps undertaken in verification, leading from the abstract syntax of a high level programming language, equipped with a continuation style, denotational semantics, down to an abstract assembly language equipped with a concrete operational semantics.
The editors of VLISP have extracted re-usable conclusions from the work at two, quite different levels. First general approaches to the organization of the work have been found which are beneficial and which can be recommended. They help to make formal methods more pragmatically effective. Second, there are four main verification techniques that are applied in the proof process. This relatively small collection of techniques, none of them particularly arcane, allow a large verification to be undertaken. The identification of such re-usable parts bodes well for the increased use of formal methods in compiler construction.
Content:
Front Matter....Pages i-4
VLISP: A Verified Implementation of Scheme....Pages 5-32
The VLISP Verified Scheme System....Pages 33-110
The VLISP Verified PreScheme Compiler....Pages 111-182
Back Matter....Pages 183-184
....