A Formally Verified Compiler Back-end

Xavier Leroy. A Formally Verified Compiler Back-end. Journal of Automated Reasoning, 43(4):363-446, 2009. [doi]

Abstract

This article describes the development and formal verification (proof of semantic preservation) of a compiler back-end from Cminor (a simple imperative intermediate language) to PowerPC assembly code, using the Coq proof assistant both for programming the compiler and for proving its soundness. Such a verified compiler is useful in the context of formal methods applied to the certification of critical software: the verification of the compiler guarantees that the safety properties proved on the source code hold for the executable compiled code as well.