Towards the Formal Verification of a C0 Compiler: Code Generation and Implementation Correctnes

  • Authors:
  • Dirk Leinenbach;Wolfgang Paul;Elena Petrova

  • Affiliations:
  • Saarland University, Germany;Saarland University, Germany;Saarland University, Germany

  • Venue:
  • SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

In the spirit of the famous CLI stack project [2] the Verisoft project [31] aims at the pervasive verification of entire computer systems including hardware, system software, compiler, and communicating applications, with a special focus on industrial applications. The main programming language used in the Verisoft project is C0 (a subset of C which is similar to MISRA C [20]). This paper reports on (i) an operational small steps semantics for C0 which is formalized in Isabelle/HOL [25], (ii) the formal specification of a compiler from C0 to the DLX machine language [14, 23] in Isabelle/HOL, (iii) a paper and pencil correctness proof for this compiler and the status of the formal verification effort for this proof, and (iv) the implementation of the compiler in C0 and a formal proof in Isabelle/HOL that the implementation produces the same code as the specification.