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 条
  • [1] Automated verification of concurrent go programs via bounded model checking
    Dilley, Nicolas
    Lange, Julien
    [J]. AUTOMATED SOFTWARE ENGINEERING, 2023, 30 (02)
  • [2] Automated verification of concurrent go programs via bounded model checking
    Nicolas Dilley
    Julien Lange
    [J]. Automated Software Engineering, 2023, 30
  • [3] Disk based software verification via bounded model checking
    Brizzolari, Fernando
    Melatti, Igor
    Tronci, Enrico
    Della Penna, Giuseppe
    [J]. 14TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2007, : 358 - +
  • [4] Modular Verification of Concurrent Programs via Sequential Model Checking
    Rasin, Dan
    Grumberg, Orna
    Shoham, Sharon
    [J]. AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS (ATVA 2018), 2018, 11138 : 228 - 247
  • [5] Verification of multi-agent systems via bounded model checking
    Luo, Xiangyu
    Su, Kaile
    Sattar, Abdul
    Reynolds, Mark
    [J]. AI 2006: ADVANCES IN ARTIFICIAL INTELLIGENCE, PROCEEDINGS, 2006, 4304 : 69 - +
  • [6] Bounded Model Checking for Probabilistic Programs
    Jansen, Nils
    Dehnert, Christian
    Kaminski, Benjamin Lucien
    Katoen, Joost-Pieter
    Westhofen, Lukas
    [J]. AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, ATVA 2016, 2016, 9938 : 68 - 85
  • [7] Bounded model checking of concurrent programs
    Rabinovitz, I
    Grumberg, O
    [J]. COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2005, 3576 : 82 - 97
  • [8] Bounded model checking of pointer programs
    Charatonik, W
    Georgieva, L
    Maier, P
    [J]. COMPUTER SCIENCE LOGIC, PROCEEDINGS, 2005, 3634 : 397 - 412
  • [9] Verification of ACTL properties by bounded model checking
    Zhang, Wenhui
    [J]. COMPUTER AIDED SYSTEMS THEORY- EUROCAST 2007, 2007, 4739 : 556 - 563
  • [10] Symbolic Bounded Conformance Checking of Model Programs
    Veanes, Margus
    Bjorner, Nikolaj
    [J]. PERSPECTIVES OF SYSTEMS INFORMATICS, 2010, 5947 : 388 - 400