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 条
[1]   Solving shape-analysis problems in languages with destructive updating [J].
Sagiv, M ;
Reps, T ;
Wilhelm, R .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1998, 20 (01) :1-50
[2]   Parametric shape analysis via 3-valued logic [J].
Sagiv, M ;
Reps, T ;
Wilhelm, R .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2002, 24 (03) :217-298
[3]   Relational inductive shape analysis [J].
Chang, Bor-Yuh Evan ;
Rival, Xavier .
ACM SIGPLAN NOTICES, 2008, 43 (01) :247-260
[4]   Disjunctive Relational Abstract Interpretation for Interprocedural Program Analysis [J].
Boutonnet, Remy ;
Halbwachs, Nicolas .
VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2019, 2019, 11388 :136-159
[5]   Relational interprocedural verification of concurrent programs [J].
Bertrand Jeannet .
Software & Systems Modeling, 2013, 12 :285-306
[6]   Relational interprocedural verification of concurrent programs [J].
Jeannet, Bertrand .
SOFTWARE AND SYSTEMS MODELING, 2013, 12 (02) :285-306
[7]   A Shape Analysis for Optimizing Parallel Graph Programs [J].
Prountzos, Dimitrios ;
Manevich, Roman ;
Pingali, Keshav ;
McKinley, Kathryn S. .
ACM SIGPLAN NOTICES, 2011, 46 (01) :159-171
[8]   Quantitative Interprocedural Analysis [J].
Chatterjee, Krishnendu ;
Pavlogiannis, Andreas ;
Velner, Yaron .
ACM SIGPLAN NOTICES, 2015, 50 (01) :539-551
[9]   An improved bound for call strings based interprocedural analysis of bit vector frameworks [J].
Karkare, Bageshri ;
Khedker, Uday P. .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2007, 29 (06)
[10]   A relational shape abstract domain [J].
Illous, Hugo ;
Lemerre, Matthieu ;
Rival, Xavier .
FORMAL METHODS IN SYSTEM DESIGN, 2021, 57 (03) :343-400