Conference Proceeding

An Extension to Pointer Logic for Verification

Dept. of Comput. Sci. & Technol., Univ. of Sci. & Technol. of China, Hefei
07/2008; DOI:10.1109/TASE.2008.13 ISBN: 978-0-7695-3249-3 In proceeding of: Theoretical Aspects of Software Engineering, 2008. TASE '08. 2nd IFIP/IEEE International Symposium on
Source: IEEE Xplore

ABSTRACT The safety of pointer programs is an important issue in high-assurance software design, and their verification remains a major challenge. Pointer Logic has been proposed to verify basic safety properties of pointer programs in our previous work, but still lacks support for a wide range of pointer programs. In this work, we present an extension to Pointer Logic by: 1) introducing modular reasoning to scale better on programs involving function calls; 2) allowing pointer arithmetic to take more advantage of pointers in programming. Moreover, to demonstrate that Pointer Logic is a useful approach to verification, we implement a tool - pice to automatically verify a range of non-trivial programs, including basic operations on singly-linked lists, trees, circular doubly-linked list, dynamic arrays etc.

0 0
 · 
0 Bookmarks
 · 
45 Views
  • Source
    Article: Pointer logic dealing with uncertain equality of pointers
    [show abstract] [hide abstract]
    ABSTRACT: We have designed a pointer logic for a C-like program-ming language -PointerC. The pointer logic is an extension of Hoare logic, and it uses the idea of precise alias analysis in pointer program verification to support safety verification of programs in which equality of pointers is well-regulated. In this work, we present an extension to the pointer logic by introducing a set of uncertain-equality pointer access path sets, so that we can reason in the extended pointer logic about properties of programs which manipulate data structures like directed graph in which equality of pointers is uncertain.

Full-text

View
0 Downloads
Available from

Keywords

circular doubly-linked list
 
dynamic arrays
 
high-assurance software design
 
modular reasoning
 
non-trivial programs
 
pointer arithmetic
 
Pointer Logic
 
pointer programs
 
pointers
 
programs
 
singly-linked lists
 
trees
 
useful approach
 
verification
 
wide range