Formal C Semantics: CompCert and the C Standard

  • Robbert Krebbers
  • Xavier Leroy
  • Freek Wiedijk
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8558)


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.


Object Representation Formal Semantic Sequence Point Separation Logic Defect Report 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    International Organization for Standardization: WG14 Defect Report Summary (2008),
  2. 2.
    International Organization for Standardization: ISO/IEC 9899-2011: Programming languages – C. ISO Working Group 14 (2012)Google Scholar
  3. 3.
    Krebbers, R.: Aliasing Restrictions of C11 Formalized in Coq. In: Gonthier, G., Norrish, M. (eds.) CPP 2013. LNCS, vol. 8307, pp. 50–65. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  4. 4.
    Krebbers, R.: An Operational and Axiomatic Semantics for Non-determinism and Sequence Points in C. In: POPL, pp. 101–112 (2014)Google Scholar
  5. 5.
    Krebbers, R., Wiedijk, F.: Separation Logic for Non-local Control Flow and Block Scope Variables. In: Pfenning, F. (ed.) FOSSACS 2013. LNCS, vol. 7794, pp. 257–272. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  6. 6.
    Leroy, X.: Formal verification of a realistic compiler. CACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  7. 7.
    Leroy, X., Appel, A.W., Blazy, S., Stewart, G.: The CompCert Memory Model, Version 2. Research report RR-7987, INRIA (2012)Google Scholar
  8. 8.
    Leroy, X., Blazy, S.: Formal verification of a C-like memory model and its uses for verifying program transformations. JAR 41(1), 1–31 (2008)CrossRefzbMATHMathSciNetGoogle Scholar
  9. 9.
    Moy, Y., Marché, C.: The Jessie plugin for Deduction Verification in Frama-C, Tutorial and Reference Manual (2011)Google Scholar
  10. 10.
    Norrish, M.: C formalised in HOL. Ph.D. thesis, University of Cambridge (1998)Google Scholar
  11. 11.
    Regehr, J.: (2012), Blog post at

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Robbert Krebbers
    • 1
  • Xavier Leroy
    • 2
  • Freek Wiedijk
    • 1
  1. 1.ICISRadboud University NijmegenThe Netherlands
  2. 2.Inria Paris-RocquencourtFrance

Personalised recommendations