Mechanized Semantics for Compiler Verification

The formal verification of compilers and related programming tools depends crucially on the availability of appropriate mechanized semantics for the source, intermediate and target languages. In this invited talk, I review various forms of operational semantics and their mechanization, based on my experience with the formal verification of the CompCert C compiler.

[1]  Xavier Leroy,et al.  Formal verification of a realistic compiler , 2009, CACM.

[2]  Xavier Leroy,et al.  Formal certification of a compiler back-end or: programming a compiler with a proof assistant , 2006, POPL '06.

[3]  Andrew W. Appel,et al.  Separation Logic for Small-Step cminor , 2007, TPHOLs.

[4]  Hervé Grall,et al.  Coinductive big-step operational semantics , 2009, Inf. Comput..

[5]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[6]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[7]  Chuck Liang,et al.  Focusing and polarization in linear, intuitionistic, and classical logics , 2009, Theor. Comput. Sci..

[8]  Pierre-Louis Curien,et al.  The Duality of Computation under Focus , 2010, IFIP TCS.

[9]  Andrew W. Appel,et al.  An indexed model of recursive types for foundational proof-carrying code , 2001, TOPL.

[10]  Arthur Charguéraud,et al.  Engineering formal metatheory , 2008, POPL '08.

[11]  Nils Anders Danielsson Operational semantics using the partiality monad , 2012, ICFP '12.

[12]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

[13]  Xavier Leroy,et al.  A Formally Verified Compiler Back-end , 2009, Journal of Automated Reasoning.

[14]  Xavier Leroy,et al.  Formal Verification of a C Compiler Front-End , 2006, FM.

[15]  Chung-Kil Hur,et al.  Biorthogonality, step-indexing and compiler correctness , 2009, ICFP.

[16]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .