Skip to Main content Skip to Navigation
Journal articles

CompCertS: A Memory-Aware Verified C Compiler using a Pointer as Integer Semantics

Frédéric Besson 1 Sandrine Blazy 1 Pierre Wilke 2
1 CELTIQUE - Software certification with semantic analysis
Inria Rennes – Bretagne Atlantique , IRISA-D4 - LANGAGE ET GÉNIE LOGICIEL
2 CIDRE - Confidentialité, Intégrité, Disponibilité et Répartition
CentraleSupélec, Inria Rennes – Bretagne Atlantique , IRISA-D1 - SYSTÈMES LARGE ÉCHELLE
Abstract : The CompCert C compiler provides the formal guarantee that the observable behaviour of the compiled code improves on the observable behaviour of the source code. In this paper, we present a formally verified C compiler, CompCertS, which is essentially the CompCert compiler, albeit with a stronger formal guarantee: it gives a semantics to more programs and ensures that the memory consumption is preserved by the compiler. CompCertS is based on an enhanced memory model where, unlike CompCert but like Gcc, the binary representation of pointers can be manipulated much like integers and where, unlike CompCert, allocation may fail if no memory is available. The whole proof of CompCertS is a significant proof-effort and we highlight the crux of the novel proofs of 12 passes of the back-end and a challenging proof of an essential optimising pass of the front-end.
Document type :
Journal articles
Complete list of metadatas

Cited literature [19 references]  Display  Hide  Download

https://hal.inria.fr/hal-02401182
Contributor : Frédéric Besson <>
Submitted on : Monday, December 9, 2019 - 6:55:10 PM
Last modification on : Saturday, July 11, 2020 - 3:14:57 AM
Long-term archiving on: : Tuesday, March 10, 2020 - 10:43:10 PM

File

compcertS.pdf
Files produced by the author(s)

Identifiers

Citation

Frédéric Besson, Sandrine Blazy, Pierre Wilke. CompCertS: A Memory-Aware Verified C Compiler using a Pointer as Integer Semantics. Journal of Automated Reasoning, Springer Verlag, 2019, 63 (2), pp.369-392. ⟨10.1007/s10817-018-9496-y⟩. ⟨hal-02401182⟩

Share

Metrics

Record views

342

Files downloads

1155