A Completely Verified Realistic Bootstrap Compiler
- 1 August 2003
- journal article
- research article
- Published by World Scientific Pub Co Pte Ltd in International Journal of Foundations of Computer Science
- Vol. 14 (04) , 659-680
- https://doi.org/10.1142/s0129054103001947
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.Keywords
This publication has 11 references indexed in Scilit:
- Translation validation for an optimizing compilerACM SIGPLAN Notices, 2000
- Verification of CompilersPublished by Springer Nature ,1999
- Correct Programs without Proof? On Checker-Based Program VerificationPublished by Springer Nature ,1999
- Formal verification for fault-tolerant architectures: prolegomena to the design of PVSIEEE Transactions on Software Engineering, 1995
- Deriving correctness properties of compiled codeFormal Methods in System Design, 1993
- Specification and Transformation of ProgramsPublished by Springer Nature ,1990
- Toward compiler implementation correctness proofsACM Transactions on Programming Languages and Systems, 1986
- CompilerbauPublished by Springer Nature ,1986
- Reflections on trusting trustCommunications of the ACM, 1984
- Compiler Specification and VerificationPublished by Springer Nature ,1981