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
Link To Document :
بازگشت