Formal C Semantics: CompCert and the C Standard
We discuss the difference between a formal semantics of the C standard, and a formal semantics of an implementation of C that satisfies the C standard. In this context we extend the CompCert semantics with end-of-array pointers and the possibility to byte-wise copy objects. This is a first and necessary step towards proving that the CompCert semantics refines the formal version of the C standard that is being developed in the Formalin project in Nijmegen.
Unable to display preview. Download preview PDF.
- 1.International Organization for Standardization: WG14 Defect Report Summary (2008), http://www.open-std.org/jtc1/sc22/wg14/www/docs/
- 2.International Organization for Standardization: ISO/IEC 9899-2011: Programming languages – C. ISO Working Group 14 (2012)Google Scholar
- 4.Krebbers, R.: An Operational and Axiomatic Semantics for Non-determinism and Sequence Points in C. In: POPL, pp. 101–112 (2014)Google Scholar
- 7.Leroy, X., Appel, A.W., Blazy, S., Stewart, G.: The CompCert Memory Model, Version 2. Research report RR-7987, INRIA (2012)Google Scholar
- 9.Moy, Y., Marché, C.: The Jessie plugin for Deduction Verification in Frama-C, Tutorial and Reference Manual (2011)Google Scholar
- 10.Norrish, M.: C formalised in HOL. Ph.D. thesis, University of Cambridge (1998)Google Scholar
- 11.Regehr, J.: (2012), Blog post at http://blog.regehr.org/archives/759