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 条
[21]   An automata-theoretic approach to interprocedural data-flow analysis [J].
Esparza, J ;
Knoop, J .
FOUNDATIONS OF SOFTWARE SCIENCE AND COMPUTATION STRUCTURES, 1999, 1578 :14-30
[22]   BigDataflow: A Distributed Interprocedural Dataflow Analysis Framework [J].
Sun, Zewen ;
Xu, Duanchen ;
Zhang, Yiyu ;
Qi, Yun ;
Wang, Yueyang ;
Zuo, Zhiqiang ;
Wang, Zhaokang ;
Li, Yue ;
Li, Xuandong ;
Lu, Qingda ;
Peng, Wenwen ;
Guo, Shengjian .
PROCEEDINGS OF THE 31ST ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2023, 2023, :1431-1443
[23]   Enforcing termination of interprocedural analysis [J].
Frielinghaus, Stefan Schulze ;
Seidl, Helmut ;
Vogler, Ralf .
FORMAL METHODS IN SYSTEM DESIGN, 2018, 53 (02) :313-338
[24]   Enforcing termination of interprocedural analysis [J].
Stefan Schulze Frielinghaus ;
Helmut Seidl ;
Ralf Vogler .
Formal Methods in System Design, 2018, 53 :313-338
[25]   Interprocedural pointer alias analysis [J].
Hind, M ;
Burke, M ;
Carini, P ;
Choi, JD .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1999, 21 (04) :848-894
[26]   An algorithmic mitigation of large spurious interprocedural cycles in static analysis [J].
Oh, Hakjoo ;
Yi, Kwangkeun .
SOFTWARE-PRACTICE & EXPERIENCE, 2010, 40 (08) :585-603
[27]   Interprocedural and Intraprocedural Alias Analysis Algorithms [J].
Li, Shaotao ;
Cai, Yong .
PROCEEDINGS OF THE 2016 5TH INTERNATIONAL CONFERENCE ON ADVANCED MATERIALS AND COMPUTER SCIENCE, 2016, 80 :333-338
[28]   Detecting Interprocedural Infeasible Paths via Symbolic Propagation and Dataflow Analysis [J].
Gong, Huiquan ;
Zhang, Yuwei ;
Xing, Ying ;
Jia, Wei .
PROCEEDINGS OF 2019 IEEE 10TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE (ICSESS 2019), 2019, :282-285
[29]   Region-based shape analysis with tracked locations [J].
Hackett, B ;
Rugina, R .
ACM SIGPLAN NOTICES, 2005, 40 (01) :310-323
[30]   Interprocedural compatibility analysis for static object preallocation [J].
Gheorghioiu, O ;
Salcianu, A ;
Rinard, M .
ACM SIGPLAN NOTICES, 2003, 38 (01) :273-284