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.
Keywords Compiler verification - Semantic preservation - Program proof - Formal methods - Compiler transformations and optimizations - The Coq theorem prover