Verifying Safety Properties of Concurrent Heap-Manipulating Programs

被引:2
|
作者
Yahav, Eran [1 ]
Sagiv, Mooly [2 ]
机构
[1] IBM TJ Watson Res Ctr, Hawthorne, NY USA
[2] Tel Aviv Univ, Sch Comp Sci, IL-69978 Tel Aviv, Israel
关键词
Algorithms; Languages; Theory; Verification; Abstract interpretation; verification; concurrency; shape-analysis; safety properties; !text type='Java']Java[!/text; PARAMETRIC SHAPE-ANALYSIS; MODEL-CHECKING; ENVIRONMENT ABSTRACTION; SYSTEMS; TVLA; TOOL;
D O I
10.1145/1745312.1745315
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We provide a parametric framework for verifying safety properties of concurrent heap-manipulating programs. The framework combines thread-scheduling information with information about the shape of the heap. This leads to verification algorithms that are more precise than existing techniques. The framework also provides a precise shape-analysis algorithm for concurrent programs. In contrast to most existing verification techniques, we do not put a bound on the number of allocated objects. The framework produces interesting results even when analyzing programs with an unbounded number of threads. The framework is applied to successfully verify the following properties of a concurrent program: -Concurrent manipulation of linked-list based ADT preserves the ADT datatype invariant. -The program does not perform inconsistent updates due to interference. -The program does not reach a deadlock. -The program does not produce runtime errors due to illegal thread interactions. We also found bugs in erroneous programs violating such properties. A prototype of our framework has been implemented and applied to small, but interesting, example programs.
引用
收藏
页数:50
相关论文
共 50 条
  • [21] Efficient Bounded Model Checking of Heap-Manipulating Programs using Tight Field Bounds
    Ponzio, Pablo
    Godio, Ariel
    Rosner, Nicolas
    Arroyo, Marcelo
    Aguirre, Nazareno
    Frias, Marcelo F.
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING (FASE 2021), 2021, 12649 : 218 - 239
  • [22] Stepwise refinement of heap-manipulating code in Chalice
    Leino, K. Rustan M.
    Yessenov, Kuat
    FORMAL ASPECTS OF COMPUTING, 2012, 24 (4-6) : 519 - 535
  • [23] Multiple pre/post specifications for heap-manipulating methods
    Chin, Wei-Ngan
    David, Cristina
    Nguyen, Huu Hai
    Qin, Shengchao
    HASE 2007: 10TH IEEE HIGH ASSURANCE SYSTEMS ENGINEERING SYMPOSIUM, PROCEEDINGS, 2007, : 357 - +
  • [24] An abstract domain for analyzing heap-manipulating low-level software
    Gulwani, Sumit
    Tiwari, Ashish
    COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2007, 4590 : 379 - +
  • [25] An inference-rule-based decision procedure for verification of heap-manipulating programs with mutable data and cyclic data structures
    Rakamaric, Zvonimir
    Bingham, Jesse
    Hu, Alan J.
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, PROCEEDINGS, 2007, 4349 : 106 - +
  • [26] Verifying Array Manipulating Programs by Tiling
    Chakraborty, Supratik
    Gupta, Ashutosh
    Unadkat, Divyesh
    STATIC ANALYSIS (SAS 2017), 2017, 10422 : 428 - 449
  • [27] Verifying safety properties of concurrent Java']Java programs using 3-valued logic
    Yahav, E
    ACM SIGPLAN NOTICES, 2001, 36 (03) : 27 - 40
  • [28] From Concrete Examples to Heap Manipulating Programs
    Roy, Subhajit
    STATIC ANALYSIS, SAS 2013, 2013, 7935 : 126 - 149
  • [29] Verifying Concurrent Programs with Chalice
    Leino, K. Rustan M.
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, PROCEEDINGS, 2010, 5944 : 2 - 2
  • [30] Custom Multicache Architectures for Heap Manipulating Programs
    Winterstein, Felix
    Fleming, Kermin E.
    Yang, Hsin-Jung
    Constantinides, George A.
    IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2017, 36 (05) : 761 - 774