Modular verification of multithreaded programs

被引:36
|
作者
Flanagan, C [1 ]
Freund, SN
Qadeer, S
Seshia, SA
机构
[1] Univ Calif Santa Cruz, Comp Sci Dept, Santa Cruz, CA 95064 USA
[2] Williams Coll, Comp Sci Dept, Williamstown, MA 01267 USA
[3] Carnegie Mellon Univ, Sch Comp Sci, Pittsburgh, PA 15213 USA
[4] Microsoft Res, Redmond, WA 98052 USA
基金
美国国家科学基金会;
关键词
concurrent software; verification; assume-guarantee reasoning; automated theorem proving; verification conditions; software engineering;
D O I
10.1016/j.tcs.2004.12.006
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Multithreaded software systems are prone to errors due to the difficulty of reasoning about multiple interleaved threads operating on shared data. Static checkers that analyze a program's behavior over all execution paths and all thread interleavings are a powerful approach to identifying bugs in such systems. In this paper, we present Calvin, a scalable and expressive static checker for multithreaded programs based on automatic theorem proving. To handle realistic programs, Calvin performs modular checking of each procedure called by a thread using specifications of other procedures and other threads. Our experience applying Calvin to several real-world programs indicates that Calvin has a moderate annotation overhead and can catch common defects in multithreaded programs, such as synchronization errors and violations of data invariants. (c) 2004 Elsevier B.V. All fights reserved.
引用
收藏
页码:153 / 183
页数:31
相关论文
共 50 条
  • [1] Modular Termination Verification of Single-Threaded and Multithreaded Programs
    Jacobs, Bart
    Bosnacki, Dragan
    Kuiper, Ruurd
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2018, 40 (03):
  • [2] A Simple Sequential Reasoning Approach for Sound Modular Verification of Mainstream Multithreaded Programs
    Jacobs, Bart
    Smans, Jan
    Piessens, Frank
    Schulte, Wolfram
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2007, 174 (09) : 23 - 47
  • [3] Pattern-Based Verification for Multithreaded Programs
    Esparza, Javier
    Ganty, Pierre
    Poch, Tomas
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 36 (03):
  • [4] Dynamic Verification for File Safety of Multithreaded Programs
    El-Zawawy, Mohamed A.
    Daoud, Nagwan M.
    [J]. INTERNATIONAL JOURNAL OF COMPUTER SCIENCE AND NETWORK SECURITY, 2012, 12 (05): : 14 - 20
  • [5] Trace-Driven Verification of Multithreaded Programs
    Yang, Zijiang
    Sakallah, Karem
    [J]. FORMAL METHODS AND SOFTWARE ENGINEERING, 2010, 6447 : 404 - +
  • [6] Complexity of Pattern-based Verification for Multithreaded Programs
    Esparza, Javier
    Ganty, Pierre
    [J]. ACM SIGPLAN NOTICES, 2011, 46 (01) : 499 - 510
  • [7] Complexity of Pattern-based Verification for Multithreaded Programs
    Esparza, Javier
    Ganty, Pierre
    [J]. POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2011, : 499 - 510
  • [8] Towards the automated verification of multithreaded Java']Java programs
    Delzanno, G
    Raskin, JF
    Van Begin, L
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANAYLSIS OF SYSTEMS, PROCEEDINGS, 2002, 2280 : 173 - 187
  • [9] Modular Verification of Recursive Programs
    Apt, Krzysztof R.
    de Boer, Frank S.
    Olderog, Ernst-Ruediger
    [J]. LANGUAGES: FROM FORMAL TO NATURAL: ESSAYS DEDICATED TO NISSIM FRANCEZ ON THE OCCASION OF HIS 65TH BIRTHDAY, 2009, 5533 : 1 - +
  • [10] Modular Verification of Synchronous Programs
    Gesell, Manuel
    Schneider, Klaus
    [J]. 2013 13TH INTERNATIONAL CONFERENCE ON APPLICATION OF CONCURRENCY TO SYSTEM DESIGN (ACSD 2013), 2013, : 70 - 79