• DocumentCode
    2806792
  • Title

    Formal verification of an optimizing compiler

  • Author

    Leroy, Xavier

  • Author_Institution
    Domaine de Voluceau, Le Chesnay
  • fYear
    2007
  • fDate
    May 30 2007-June 2 2007
  • Firstpage
    25
  • Lastpage
    25
  • Abstract
    Programmers naturally expect that compilers and other code generation tools produce executable code that behaves as prescribed by source programs. However, compilers are complex programs that perform many subtle transformations. Bugs in compilers do happen and can lead to silently producing incorrect executable code from a correct source program. This is a significant concern in the context of high-assurance software that has been verified (at the source level) using formal methods (static analysis, model checking, program proof, etc): any bug in the compiler can potentially invalidate the guarantees so painfully established by the use of formal methods. There are several ways to generate confidence in the compilation process, including translation validation and proof-carrying code. This talk focuses on applying program proof technology to the compiler itself, in order to prove a semantic preservation theorem for every pass of the compiler. We present preliminary results from the Compcert experiment: the development and proof of correctness of a moderately-optimizing compiler for a large subset of the C language. The proof of correctness is mechanized using the Coq proof assistant. Moreover, most of the compiler itself is written directly in the functional subset of the Coq specification language, from which executable Caml code is automatically extracted.
  • Keywords
    C language; optimising compilers; program debugging; program verification; specification languages; C language; Coq proof assistant; Coq specification language; compiler bugs; executable Caml code; executable code generation tool; formal verification; high-assurance software; optimizing compiler; program proof technology; semantic preservation theorem; Certification; Computer bugs; Computer languages; Computer science; Context modeling; Formal verification; Optimizing compilers; Program processors; Programming profession; Specification languages;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Formal Methods and Models for Codesign, 2007. MEMOCODE 2007. 5th IEEE/ACM International Conference on
  • Conference_Location
    Nice
  • Print_ISBN
    1-4244-1050-9
  • Type

    conf

  • DOI
    10.1109/MEMCOD.2007.371254
  • Filename
    4231767