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
    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
    Sagiv, M
    Reps, T
    Wilhelm, R
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2002, 24 (03): : 217 - 298
  • [3] Relational inductive shape analysis
    Chang, Bor-Yuh Evan
    Rival, Xavier
    ACM SIGPLAN NOTICES, 2008, 43 (01) : 247 - 260
  • [4] Disjunctive Relational Abstract Interpretation for Interprocedural Program Analysis
    Boutonnet, Remy
    Halbwachs, Nicolas
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2019, 2019, 11388 : 136 - 159
  • [5] Relational interprocedural verification of concurrent programs
    Bertrand Jeannet
    Software & Systems Modeling, 2013, 12 : 285 - 306
  • [6] Relational interprocedural verification of concurrent programs
    Jeannet, Bertrand
    SOFTWARE AND SYSTEMS MODELING, 2013, 12 (02) : 285 - 306
  • [7] A Shape Analysis for Optimizing Parallel Graph Programs
    Prountzos, Dimitrios
    Manevich, Roman
    Pingali, Keshav
    McKinley, Kathryn S.
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 159 - 171
  • [8] Quantitative Interprocedural Analysis
    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
    Karkare, Bageshri
    Khedker, Uday P.
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2007, 29 (06):
  • [10] A relational shape abstract domain
    Illous, Hugo
    Lemerre, Matthieu
    Rival, Xavier
    FORMAL METHODS IN SYSTEM DESIGN, 2021, 57 (03) : 343 - 400