A Guide to VLISP, A Verified Programming Language Implementation


ABSTRACT The Verified Programming Language Implementation project has developed a formally verified implementation of the Scheme programming language, called vlisp. This report summarizes the results of the project. It also provides an overview of a group of reports presenting the details of the vlisp implementation and the logical proofs of its correctness.

  • [Show abstract] [Hide abstract]
    ABSTRACT: This paper reports on a large verification effort in constructing an initial fully trusted bootstrap compiler executable for a realistic system programming language and real target processor. The construction and verification process comprises three tasks: the verification of the compiling specification (a relation between abstract source and target programs) with respect to the language semantics and a realistic correctness criterion. This proof has been completely mechanized using the PVS verification system and is one of the largest case-studies in formal verification we are aware of. Second, the implementation of the specification in the high-level source language following a transformational approach, and finally, the implementation and verification of a binary executable written in the compiler's target language. For the latter task, a realistic technique has been developed, which is based on rigorous a-posteriori syntactic code inspection and which guarantees, for the first time, trusted execution of generated machine programs. The context of this work is the joint German research effort Verifix aiming at developing methods for the construction of correct compilers for realistic source languages and real target processors.
    International Journal of Foundations of Computer Science 11/2011; 14(04). DOI:10.1142/S0129054103001947 · 0.33 Impact Factor
  • Source
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: This paper describes formalisations of a type-safe fragment of the C programming language (called C0) and of the DLX assem- bly language. It then presents the definition and correctness proof of a substantial fragment of a C0-to-DLX compiler, carried out in the proof assistant Isabelle.

Full-text (2 Sources)

Available from
Jun 2, 2014