The Location Linking Concept: A Basis for Verification of Code Using Pointers

被引:0
作者
Kulczycki, Gregory [1 ]
Smith, Hampton [2 ]
Harton, Heather [2 ]
Sitaraman, Murali [2 ]
Ogden, William F. [3 ]
Hollingsworth, Joseph E. [4 ]
机构
[1] Battelle Mem Inst, 2111 Wilson Blvd, Arlington, VA 22201 USA
[2] Univ Clemson, Sch Comp, Clemson, SC 29634 USA
[3] Ohio State Univ, Dept Comp & Informat Sci, Columbus, OH 43210 USA
[4] Indiana Univ SE, Dept Comp Sci, New Albany, IN 47150 USA
来源
VERIFIED SOFTWARE: THEORIES, TOOLS, EXPERIMENTS | 2012年 / 7152卷
关键词
Formal specification; linked data structures; memory management; reusable components; verification;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
While the use of pointers can be minimized by language mechanisms for data abstraction, alias avoidance and control, and disciplined software development techniques, ultimately, any verifying compiler effort must be able to verify code that makes use of them. Additionally, in order to scale, the verification machinery of such a compiler must use specifications to reason about components. This paper follows a natural question that arises from combining these ideas: can the general machinery of specification-based component verification also be used to verify code that uses instances of types that are more traditionally built-in, such as arrays and pointers? This paper answers the question in the affirmative by presenting a Location_Linking_Template, a concept that captures pointer behavior, and uses it to verify the code of a simple data abstraction realized using pointers. In this deployment, pointers have a specification like any other component. We also note that the concept can be extended and realized so that different systems can plug in alternative implementations to give programmers the flexibility to choose, e.g., manual memory management or automatic garbage collection depending on their performance concerns.
引用
收藏
页码:34 / +
页数:3
相关论文
共 26 条
[1]  
[Anonymous], 1994, SIGSOFT Software Engineering Notes, V19, P21, DOI 10.1145/190679.190681
[2]  
Banerjee A, 2005, LECT NOTES COMPUT SC, V3586, P387
[3]  
Böhme S, 2011, LECT NOTES ARTIF INT, V6803, P177, DOI 10.1007/978-3-642-22438-6_15
[4]   COPYING AND SWAPPING - INFLUENCES ON THE DESIGN OF REUSABLE SOFTWARE COMPONENTS [J].
HARMS, DE ;
WEIDE, BW .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1991, 17 (05) :424-435
[5]  
Harton H., 2011, THESIS
[6]  
Hatcliff John., 2009, BEHAV INTERFACE SPEC
[7]  
Hehner E. C. R., 1998, Formal Aspects of Computing, V10, P290, DOI 10.1007/s001650050017
[8]  
Hoare C. A. R., 1989, Essays in Computing Science
[9]  
Hollingsworth J. E., 2000, Software Engineering Notes, V25, P11, DOI 10.1145/357474.355048
[10]  
Jones C. B., 1986, SYSTEMATIC SOFTWARE