Automated verification of concurrent go programs via bounded model checking

被引:1
|
作者
Dilley, Nicolas [1 ]
Lange, Julien [2 ]
机构
[1] Univ Kent, Canterbury, England
[2] Royal Holloway Univ London, Egham, England
关键词
Go; Concurrency; Static verification; Behavioural types; Model checking;
D O I
10.1007/s10515-023-00391-z
中图分类号
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, 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
相关论文
共 50 条
  • [1] Automated verification of concurrent go programs via bounded model checking
    Nicolas Dilley
    Julien Lange
    Automated Software Engineering, 2023, 30
  • [2] Automated Verification of Go Programs via Bounded Model Checking
    Dilley, Nicolas
    Lange, Julien
    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
    COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2005, 3576 : 82 - 97
  • [4] Modular Verification of Concurrent Programs via Sequential Model Checking
    Rasin, Dan
    Grumberg, Orna
    Shoham, Sharon
    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
    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
    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
    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
    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
    COMPUTER SCIENCE LOGIC, PROCEEDINGS, 2005, 3634 : 397 - 412
  • [10] Slicing concurrent programs for model checking
    Dong, Wei
    Wang, Ji
    Qi, Zhi-Chang
    Jisuanji Xuebao/Chinese Journal of Computers, 2003, 26 (03): : 266 - 274