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] A relational shape abstract domain
    Hugo Illous
    Matthieu Lemerre
    Xavier Rival
    Formal Methods in System Design, 2021, 57 : 343 - 400
  • [12] Precise interprocedural analysis using random interpretation
    Gulwani, S
    Necula, GC
    ACM SIGPLAN NOTICES, 2005, 40 (01) : 324 - 337
  • [13] New shape analysis and interprocedural techniques for automatic parallelization of C codes
    Corbera, F
    Asenjo, R
    Zapata, E
    INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2002, 30 (01) : 37 - 64
  • [14] Interprocedural Pointer Analysis in Goanna
    Brauer, Joerg
    Huuck, Ralf
    Schlich, Bastian
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 254 (65-83) : 65 - 83
  • [15] Interprocedural parallelization analysis in SUIF
    Hall, MW
    Amarasinghe, SP
    Murphy, BR
    Liao, SW
    Lam, MS
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2005, 27 (04): : 662 - 731
  • [16] Relational Inductive Shape Analysis
    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
  • [17] Interprocedural analysis of asynchronous programs
    Jhala, Ranjit
    Majumdar, Rupak
    ACM SIGPLAN NOTICES, 2007, 42 (01) : 339 - 350
  • [18] New Shape Analysis and Interprocedural Techniques for Automatic Parallelization of C Codes
    Francisco Corbera
    Rafael Asenjo
    Emilio Zapata
    International Journal of Parallel Programming, 2002, 30 : 37 - 63
  • [19] Compositional Shape Analysis by Means of Bi-Abduction
    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
    Goharshady, Amir Kafshdar
    Zaher, Ahmed Khaled
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2023, 2023, 13881 : 177 - 202