Model checking recursive programs interacting via the heap

被引:1
|
作者
Asavoae, I. M. [2 ]
de Boer, F. [1 ,3 ]
Bonsangue, M. M. [1 ,3 ]
Lucanu, D. [2 ]
Rot, J. [1 ,3 ]
机构
[1] Leiden Inst Adv Comp Sci, Leiden, Netherlands
[2] Alexandru Ioan Cuza Univ, Fac Comp Sci, Iasi, Romania
[3] Ctr Wiskunde & Informat, Amsterdam, Netherlands
关键词
Heap manipulation; Pushdown system; Object-oriented program semantics; Model checking; VERIFICATION; AUTOMATA;
D O I
10.1016/j.scico.2014.09.009
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Almost all modern imperative programming languages include operations for dynamically manipulating the heap, for example by allocating and deallocating objects, and by updating reference fields. In the presence of recursive procedures and local variables, the interactions of a program with the heap can become rather complex, as an unbounded number of objects can be allocated either on the call stack using local variables, or, anonymously, on the heap using reference fields. As such, a static analysis for recursive programs with dynamic manipulation of the heap is, in general, undecidable. In this paper we study the verification of recursive programs with unbounded allocation of objects, in a simple imperative language with heap manipulation. We present a semantics for this language which is improved w.r.t. heap allocation, using an abstraction that is precise (i.e., bisimilar with the standard/concrete semantics). For any program with a bounded visible heap, meaning that the number of objects reachable from variables at any point of execution is bounded, this abstraction is a finitary representation of its behaviour, even though an unbounded number of objects can appear in the state. As a consequence, for such programs model checking is decidable. Finally, we introduce a specification language for heap-properties, and we discuss model checking of heap invariant properties against heap-manipulating programs. (C) 2014 Published by Elsevier B.V.
引用
收藏
页码:61 / 83
页数:23
相关论文
共 50 条
  • [1] LTL Model Checking for Recursive Programs
    Huang, Geng-Dian
    Cai, Lin-Zan
    Wang, Farn
    [J]. AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, PROCEEDINGS, 2009, 5799 : 382 - 396
  • [2] Model Checking Temporal Properties of Recursive Probabilistic Programs
    Winkler, Tobias
    Gehnen, Christina
    Katoen, Joost-Pieter
    [J]. FOUNDATIONS OF SOFTWARE SCIENCE AND COMPUTATION STRUCTURES (FOSSACS 2022), 2022, 13242 : 449 - 469
  • [3] Resource-constrained model checking of recursive programs
    Basu, S
    Kumar, KN
    Pokorny, LR
    Ramakrishnan, CR
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANAYLSIS OF SYSTEMS, PROCEEDINGS, 2002, 2280 : 236 - 250
  • [4] SMT-based model checking for recursive programs
    Anvesh Komuravelli
    Arie Gurfinkel
    Sagar Chaki
    [J]. Formal Methods in System Design, 2016, 48 : 175 - 205
  • [5] MODEL CHECKING TEMPORAL PROPERTIES OF RECURSIVE PROBABILISTIC PROGRAMS
    Winkler, Tobias
    Gehnen, Christina
    Katoen, Joost-Pieter
    [J]. LOGICAL METHODS IN COMPUTER SCIENCE, 2023, 19 (04)
  • [6] SMT-Based Model Checking for Recursive Programs
    Komuravelli, Anvesh
    Gurfinkel, Arie
    Chaki, Sagar
    [J]. COMPUTER AIDED VERIFICATION, CAV 2014, 2014, 8559 : 17 - 34
  • [7] SMT-based model checking for recursive programs
    Komuravelli, Anvesh
    Gurfinkel, Arie
    Chaki, Sagar
    [J]. FORMAL METHODS IN SYSTEM DESIGN, 2016, 48 (03) : 175 - 205
  • [8] Model Checking Recursive Programs with Exact Predicate Abstraction
    Gurfinkel, Arie
    Wei, Ou
    Chechik, Marsha
    [J]. AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, PROCEEDINGS, 2008, 5311 : 95 - +
  • [9] Temporal Logics for Concurrent Recursive Programs: Satisfiability and Model Checking
    Bollig, Benedikt
    Cyriac, Aiswarya
    Gastin, Paul
    Zeitoun, Marc
    [J]. MATHEMATICAL FOUNDATIONS OF COMPUTER SCIENCE 2011, 2011, 6907 : 132 - 144
  • [10] Model Checking Concurrent Recursive Programs Using Temporal Logics
    Mennicke, Roy
    [J]. MATHEMATICAL FOUNDATIONS OF COMPUTER SCIENCE 2014, PT I, 2014, 8634 : 438 - 450