Reasoning about memory layouts

被引:1
作者
Gast, Holger [1 ]
机构
[1] Univ Tubingen, Wilhelm Schickard Inst Informat, D-7400 Tubingen, Germany
关键词
C verification; Low-level memory models; Pointer programs; Schorr-Waite graph traversal; GARBAGE COLLECTORS; DYNAMIC FRAMES; VERIFICATION; PROGRAMS; LOGIC;
D O I
10.1007/s10703-010-0098-5
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Verification methods for memory-manipulating C programs need to address not only well-typed programs that respect invariants such as the split-heap memory model, but also programs that access through pointers arbitrary memory objects such as local variables, single struct fields, or array slices. We present a logic for memory layouts that covers these applications and show how proof obligations arising during the verification can be discharged automatically using the layouts. The framework developed in this way is also suitable for reasoning about data structures manipulated by algorithms, which we demonstrate by verifying the Schorr-Waite graph marking algorithm.
引用
收藏
页码:141 / 170
页数:30
相关论文
共 40 条
[11]  
CHAIEB A, 2007, CALC 07 MKM 07 P 14, P27
[12]  
Chlipala A, 2009, ICFP'09: PROCEEDINGS OF THE 2009 ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, P79
[13]  
Cohen E., 2009, 4 INT WORKSH SYST SO
[14]  
DAWSON JE, 2007, 7 INT WORKSH AUT VER
[15]  
FILLIATRE JC, 2004, 6 INT C FORM ENG MET
[16]  
Filliâtre JC, 2007, LECT NOTES COMPUT SC, V4590, P173
[17]  
GAST H, 2008, LNCS, V5170
[18]  
GAST H, 2009, LNCS, V5850
[19]  
GAST H, 2009, AUTOMATED VERIFICATI, V23
[20]  
GIORGINO M, 2010, LOGIC BASED PROGRAM