Automated Verification of Go Programs via Bounded Model Checking

被引:8
|
作者
Dilley, Nicolas [1 ]
Lange, Julien [2 ]
机构
[1] Univ Kent, Dept Comp, Canterbury, Kent, England
[2] Royal Holloway Univ London, Dept Comp Sci, Egham, Surrey, England
关键词
Go; concurrency; static verification; behavioural types; model checking;
D O I
10.1109/ASE51524.2021.9678571
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The Go programming language offers a wide range of primitives to coordinate lightweight threads, e.g., channels, waitgroups, and mutexes - all of which may cause concurrency bugs. Static checkers that guarantee the absence of bugs are essential to help programmers avoid these costly errors before their code is executed. However existing tools either miss too many bugs or cannot handle large programs. To address these limitations, we propose a static checker for Go programs which relies on performing bounded model checking of their concurrent behaviours. In contrast to previous works, our approach deals with large codebases, supports programs that have statically unknown parameters, and is extensible to additional concurrency primitives. Our work includes a detailed presentation of the extraction algorithm from Go programs to models, an algorithm to automatically check programs with statically unknown parameters, and a large scale evaluation of our approach. The latter shows that our approach outperforms the state-of-the-art.
引用
下载
收藏
页码:1016 / 1027
页数:12
相关论文
共 50 条
  • [21] A Bounded Model Checking Approach for the Verification of Web Services Composition
    Zahoor, Ehtesham
    Munir, Kashif
    Perrin, Olivier
    Godart, Claude
    INTERNATIONAL JOURNAL OF WEB SERVICES RESEARCH, 2013, 10 (04) : 62 - 81
  • [22] On Verification of Smart Contracts via Model Checking
    Bao, Yulong
    Zhu, Xue-Yang
    Zhang, Wenhui
    Shen, Wuwei
    Sun, Pengfei
    Zhao, Yingqi
    THEORETICAL ASPECTS OF SOFTWARE ENGINEERING, TASE 2022, 2022, 13299 : 92 - 112
  • [23] Systematic Classification of Attackers via Bounded Model Checking
    Rothstein-Morris, Eric
    Sun, Jun
    Chattopadhyay, Sudipta
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2020, 2020, 11990 : 226 - 247
  • [24] Safety property verification using sequential SAT and bounded model checking
    Parthasarathy, G
    Iyer, MK
    Cheng, KT
    Wang, LC
    IEEE DESIGN & TEST OF COMPUTERS, 2004, 21 (02): : 132 - 143
  • [25] Verification of SPS programs in AWL with the aid of direct model checking
    Schlich, Bastian
    Kowalewski, Stefan
    Wernerus, Joerg
    AUTOMATION 2009, 2009, 2067 : 13 - 16
  • [26] Achieving completeness in the verification of action theories by Bounded Model Checking in ASP
    Giordano, Laura
    Martelli, Alberto
    Dupre, Daniele Theseider
    JOURNAL OF LOGIC AND COMPUTATION, 2015, 25 (06) : 1307 - 1330
  • [27] Application of symbolic and bounded model checking to the verification of logic control systems
    Loeis, Kingliana
    Younis, Mohammed Bani
    Frey, Georg
    ETFA 2005: 10TH IEEE INTERNATIONAL CONFERENCE ON EMERGING TECHNOLOGIES AND FACTORY AUTOMATION, VOL 1, PTS 1 AND 2, PROCEEDINGS, 2005, : 247 - 250
  • [28] Efficient SAT-based bounded model checking for software verification
    Ivancic, Franio
    Yang, Zijiang
    Ganai, Malay K.
    Gupta, Aarti
    Ashar, Pranav
    THEORETICAL COMPUTER SCIENCE, 2008, 404 (03) : 256 - 274
  • [29] Verification of Erlang programs using abstract interpretation and model checking
    Huch, F
    ACM SIGPLAN NOTICES, 1999, 34 (09) : 261 - 272
  • [30] Checking EMTLK Properties of Timed Interpreted Systems Via Bounded Model Checking
    Bożena Woźna-Szcześniak
    Andrzej Zbrzezny
    Studia Logica, 2016, 104 : 641 - 678