A Relational Approach to Interprocedural Shape Analysis

被引:18
作者
Jeannet, Bertrand [1 ]
Loginov, Alexey
Reps, Thomas [2 ]
Sagiv, Mooly [3 ]
机构
[1] INRIA, Sophia Antipolis, France
[2] Univ Wisconsin, Dept Comp Sci, Madison, WI 53706 USA
[3] Tel Aviv Univ, Sch Comp Sci, Tel Aviv, Israel
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2010年 / 32卷 / 02期
关键词
Algorithms; Languages; Theory; Verification; Abstract interpretation; context-sensitive analysis; interprocedural dataflow analysis; destructive updating; pointer analysis; shape analysis; static analysis; 3-valued logic;
D O I
10.1145/1667048.1667050
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This article addresses the verification of properties of imperative programs with recursive procedure calls, heap-allocated storage, and destructive updating of pointer-valued fields, that is, interprocedural shape analysis. The article makes three contributions. -It introduces a new method for abstracting relations over memory configurations for use in abstract interpretation. -It shows how this method furnishes the elements needed for a compositional approach to shape analysis. In particular, abstracted relations are used to represent the shape transformation performed by a sequence of operations, and an overapproximation to relational composition can be performed using the meet operation of the domain of abstracted relations. -It applies these ideas in a new algorithm for context-sensitive interprocedural shape analysis. The algorithm creates procedure summaries using abstracted relations over memory configurations, and the meet-based composition operation provides a way to apply the summary transformer for a procedure P at each call site from which P is called. The algorithm has been applied successfully to establish properties of both (i) recursive programs that manipulate lists and (ii) recursive programs that manipulate binary trees.
引用
收藏
页数:52
相关论文
共 50 条
[11]   Precise interprocedural analysis using random interpretation [J].
Gulwani, S ;
Necula, GC .
ACM SIGPLAN NOTICES, 2005, 40 (01) :324-337
[12]   A relational shape abstract domain [J].
Hugo Illous ;
Matthieu Lemerre ;
Xavier Rival .
Formal Methods in System Design, 2021, 57 :343-400
[13]   Relational Inductive Shape Analysis [J].
Chang, Bor-Yuh Evan ;
Rival, Xavier .
POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2008, :247-260
[14]   Interprocedural Pointer Analysis in Goanna [J].
Brauer, Joerg ;
Huuck, Ralf ;
Schlich, Bastian .
ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 254 (65-83) :65-83
[15]   New shape analysis and interprocedural techniques for automatic parallelization of C codes [J].
Corbera, F ;
Asenjo, R ;
Zapata, E .
INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2002, 30 (01) :37-64
[16]   Interprocedural parallelization analysis in SUIF [J].
Hall, MW ;
Amarasinghe, SP ;
Murphy, BR ;
Liao, SW ;
Lam, MS .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2005, 27 (04) :662-731
[17]   New Shape Analysis and Interprocedural Techniques for Automatic Parallelization of C Codes [J].
Francisco Corbera ;
Rafael Asenjo ;
Emilio Zapata .
International Journal of Parallel Programming, 2002, 30 :37-63
[18]   Interprocedural analysis of asynchronous programs [J].
Jhala, Ranjit ;
Majumdar, Rupak .
ACM SIGPLAN NOTICES, 2007, 42 (01) :339-350
[19]   Compositional Shape Analysis by Means of Bi-Abduction [J].
Calcagno, Cristiano ;
Distefano, Dino ;
O'Hearn, Peter W. ;
Yang, Hongseok .
JOURNAL OF THE ACM, 2011, 58 (06)
[20]   Efficient Interprocedural Data-Flow Analysis Using Treedepth and Treewidth [J].
Goharshady, Amir Kafshdar ;
Zaher, Ahmed Khaled .
VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2023, 2023, 13881 :177-202