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 条
  • [11] Automatic Numeric Abstractions for Heap-Manipulating Programs
    Magill, Stephen
    Tsai, Ming-Hsien
    Lee, Peter
    Tsay, Yih-Kuen
    ACM SIGPLAN NOTICES, 2010, 45 (01) : 211 - 222
  • [12] Automatic Assume/Guarantee Reasoning for Heap-Manipulating Programs
    Yorsh, Greta
    Skidanov, Alexey
    Reps, Thomas
    Sagiv, Mooly
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 131 : 125 - 138
  • [13] Template-Based Verification of Heap-Manipulating Programs
    Malik, Viktor
    Hruska, Martin
    Schrammel, Peter
    Vojnar, Tomas
    PROCEEDINGS OF THE 2018 18TH CONFERENCE ON FORMAL METHODS IN COMPUTER AIDED DESIGN (FMCAD), 2018, : 103 - 111
  • [14] Automatically refining partial specifications for heap-manipulating programs
    Qin, Shengchao
    He, Guanhua
    Luo, Chenguang
    Chin, Wei-Ngan
    Yang, Hongli
    SCIENCE OF COMPUTER PROGRAMMING, 2014, 82 : 56 - 76
  • [15] A logic and decision procedure for predicate abstraction of heap-manipulating programs
    Bingham, J
    Rakamaric, Z
    VERIFICATION, MODEL CHECKING , AND ABSTRACT INTERPRETATION, PROCEEDINGS, 2006, 3855 : 207 - 221
  • [16] Automated Repair of Heap-Manipulating Programs Using Deductive Synthesis
    Thanh-Toan Nguyen
    Quang-Trung Ta
    Sergey, Ilya
    Chin, Wei-Ngan
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2021, 2021, 12597 : 376 - 400
  • [17] Modular Heap Abstraction-Based Memory Leak Detection for Heap-Manipulating Programs
    Dong, Longming
    Wang, Ji
    Chen, Liqian
    2012 19TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC), VOL 1, 2012, : 20 - 29
  • [18] Modular Heap Abstraction-based Code Clone Detection for Heap-manipulating Programs
    Dong, Longming
    Wang, Ji
    Chen, Liqian
    2012 12TH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE (QSIC), 2012, : 197 - 200
  • [19] Checking properties of heap-manipulating procedures with a constraint solver
    Vaziri, M
    Jackson, D
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2003, 2619 : 505 - 520
  • [20] Compositional Verification of Heap-Manipulating Programs Through Property-Guided Learning
    Pham, Long H.
    Sun, Jun
    Quang Loc Le
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2019, 2019, 11893 : 405 - 424