Verified Compilation for Shared-Memory C

  • Lennart Beringer
  • Gordon Stewart
  • Robert Dockins
  • Andrew W. Appel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8410)


We present a new architecture for specifying and proving optimizing compilers in the presence of shared-memory interactions such as buffer-based system calls, shared-memory concurrency, and separate compilation. The architecture, which is implemented in the context of CompCert, includes a novel interaction-oriented model for C-like languages, and a new proof technique, called logical simulation relations, for compositionally proving compiler correctness with respect to this interaction model. We apply our techniques to CompCert’s primary memory-reorganizing compilation phase, Cminorgen. Our results are formalized in Coq, building on the recently released CompCert 2.0.


Program Logic Memory Model Operational Semantic Forward Simulation Register Allocation 
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.


  1. [A+14]
    Appel, A.W., et al.: Program logics for certified compilers, Cambridge (2014)Google Scholar
  2. [ADR09]
    Ahmed, A., Dreyer, D., Rossberg, A.: State-dependent representation independence. In: POPL (2009)Google Scholar
  3. [App11]
    Appel, A.W.: Verified software toolchain. In: Barthe, G. (ed.) ESOP 2011. LNCS, vol. 6602, pp. 1–17. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  4. [BH09]
    Benton, N., Hur, C.-K.: Biorthogonality, step-indexing and compiler correctness. In: ICFP, New York, pp. 97–108 (2009)Google Scholar
  5. [BH10]
    Benton, N., Hur, C.-K.: Realizability and compositional compiler correctness for a polymorphic language. Tech. Report MSR-TR-2010-62, Microsoft Research (2010)Google Scholar
  6. [DNB10]
    Dreyer, D., Neis, G., Birkedal, L.: The impact of higher-order state and control effects on local relational reasoning. ACM SIGPLAN Notices 45, 143–156 (2010)CrossRefGoogle Scholar
  7. [HDNV12]
    Hur, C.-K., Dreyer, D., Neis, G., Vafeiadis, V.: The marriage of bisimulations and Kripke logical relations. In: POPL (2012)Google Scholar
  8. [HNDV13]
    Hur, C.-K., Neis, G., Dreyer, D., Vafeiadis, V.: Parametric bisimulations: A logical step forward, draft (2013)Google Scholar
  9. [Jon83]
    Jones, C.B.: Tentative steps toward a development method for interfering programs. TOPLAS 5(4), 596–619 (1983)CrossRefzbMATHGoogle Scholar
  10. [L+12]
    Leroy., X., et al.: The CompCert memory model, version 2. Tech. Report RR-7987, INRIA (2012)Google Scholar
  11. [LB08]
    Leroy, X., Blazy, S.: Formal verification of a C-like memory model and its uses for verifying program transformations. JAR 41(1) (2008)Google Scholar
  12. [Ler11]
    Leroy, X.: The CompCert verified compiler, software & ann. proof (2011)Google Scholar
  13. [LFF12]
    Liang, H., Feng, X., Fu, M.: A rely-guarantee-based simulation for verifying concurrent program transformations. In: POPL (2012)Google Scholar
  14. [NS06]
    Ni, Z., Shao, Z.: Certified assembly programming with embedded code pointers. In: POPL (2006)Google Scholar
  15. [O’H07]
    O’Hearn, P.W.: Resources, concurrency and local reasoning. Theoretical Computer Science 375(1), 271–307 (2007)CrossRefzbMATHMathSciNetGoogle Scholar
  16. [Plo73]
    Plotkin, G.: Lambda-definability and logical relations, School of Artificial Intelligence, University of Edinburgh (1973)Google Scholar
  17. [PS98]
    Pitts, A., Stark, I.: Operational reasoning for functions with local state. Higher Order Operational Techniques in Semantics, 227–273 (1998)Google Scholar
  18. [Rey74]
    Reynolds, J.: On the relation between direct and continuation semantics. Automata, Languages and Programming, 141–156 (1974)Google Scholar
  19. [ŜVZN+11]
    Ŝevčik, J., Vafeiadis, V. Zappa Nardelli, F. Jagannathan, S., and Sewell, P.: Relaxed-memory concurrency and verified compilation. ACM SIGPLAN Notices 46(1), 43–54 (2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Lennart Beringer
    • 1
  • Gordon Stewart
    • 1
  • Robert Dockins
    • 2
  • Andrew W. Appel
    • 1
  1. 1.Princeton UniversityUSA
  2. 2.Portland State UniversityUSA

Personalised recommendations