Formal verification of a C-like memory model and its uses for verifying program transformations

被引:97
作者
Leroy, Xavier [1 ]
Blazy, Sandrine [2 ]
机构
[1] INRIA Paris Rocquencourt, F-78153 Le Chesnay, France
[2] ENSIIE, F-91025 Evry, France
关键词
memory model; C; program verification; compilation; compiler correctness; the Coq proof assistant;
D O I
10.1007/s10817-008-9099-0
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
This article presents the formal verification, using the Coq proof assistant, of a memory model for low-level imperative languages such as C and compiler intermediate languages. Beyond giving semantics to pointer-based programs, this model supports reasoning over transformations of such programs. We show how the properties of the memory model are used to prove semantic preservation for three passes of the Compcert verified compiler.
引用
收藏
页码:1 / 31
页数:31
相关论文
共 28 条
[1]  
Appel AW, 2007, LECT NOTES COMPUT SC, V4732, P5
[2]  
Bertot Y., 2004, EATCS TEXTS THEORETI
[3]  
Blazy S, 2006, LECT NOTES COMPUT SC, V4085, P460
[4]  
Bornat R, 2000, LECT NOTES COMPUT SC, V1837, P102
[5]  
BURSTALL RM, 1972, MACH INTELL, V7, P23
[6]  
CHRZASZCZ J, 2004, THESIS WARSAW U
[7]  
CONCHON S, 2005, ERGO AUTOMATIC THEOR
[8]  
*COQ DEV TEAM, 1989, COQ PROOF ASS SOFTW
[9]  
DEMOURA L, 2006, Z3 EFFICIENT SMT SOL
[10]   Simplify: A theorem prover for program checking [J].
Detlefs, D ;
Nelson, G ;
Saxe, JB .
JOURNAL OF THE ACM, 2005, 52 (03) :365-473