Automated verification of concurrent go programs via bounded model checking

被引:0
|
作者
Nicolas Dilley
Julien Lange
机构
[1] University of Kent,Royal Holloway
[2] University of London,undefined
来源
关键词
Go; Concurrency; Static verification; Behavioural types; Model checking;
D O I
暂无
中图分类号
学科分类号
摘要
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, and do not support programs that rely on statically unknown parameters that affect their concurrent structure (e.g., number of threads). 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 on 220 synthetic programs and 78 buggy programs adapted from existing codebases.
引用
收藏
相关论文
共 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 Go Programs via Bounded Model Checking
    Dilley, Nicolas
    Lange, Julien
    [J]. 2021 36TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING ASE 2021, 2021, : 1016 - 1027
  • [3] Bounded model checking of concurrent programs
    Rabinovitz, I
    Grumberg, O
    [J]. COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2005, 3576 : 82 - 97
  • [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] 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 - +
  • [6] Formal Verification of Concurrent Systems via Directed Model Checking
    Gradara, Sara
    Santone, Antonella
    Villani, Maria Luisa
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2007, 185 (93-105) : 93 - 105
  • [7] 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 - +
  • [8] 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
  • [9] Bounded model checking of pointer programs
    Charatonik, W
    Georgieva, L
    Maier, P
    [J]. COMPUTER SCIENCE LOGIC, PROCEEDINGS, 2005, 3634 : 397 - 412
  • [10] Slicing concurrent programs for model checking
    Dong, Wei
    Wang, Ji
    Qi, Zhi-Chang
    [J]. Jisuanji Xuebao/Chinese Journal of Computers, 2003, 26 (03): : 266 - 274