Pervasive Compiler Verification – From Verified Programs to Verified Systems

https://doi.org/10.1016/j.entcs.2008.06.040Get rights and content
Under a Creative Commons license
open access

Abstract

We report in this paper on the formal verification of a simple compiler for the C-like programming language C0. The compiler correctness proof meets the special requirements of pervasive system verification and allows to transfer correctness properties from the C0 layer to the assembler and hardware layers. The compiler verification is split into two parts: the correctness of the compiling specification (which can be translated to executable ML code via Isabelle's code generator) and the correctness of a C0 implementation of this specification. We also sketch a method to solve the boot strap problem, i.e., how to obtain a trustworthy binary of the C0 compiler from its C0 implementation. Ultimately, this allows to prove pervasively the correctness of compiled C0 programs in the real system.

Keywords

Compiler Verification
Theorem Proving
System Verification
HOL
Hoare Logic

Cited by (0)

1

Work partially funded by the German Federal Ministry of Education and Research (BMBF) in the framework of the Verisoft project (http://www.verisoft.de) under grant 01 IS C38.

2

Work supported by DFG Graduiertenkolleg “Leistungsgarantien für Rechnersysteme”.