Bounded verification of message-passing concurrency in Go using Promela and Spin

被引:10
作者
Dilley, Nicolas [1 ]
Lange, Julien [1 ]
机构
[1] Univ Kent, Canterbury, Kent, England
关键词
D O I
10.4204/EPTCS.314.4
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
This paper describes a static verification framework for the message-passing fragment of the Go programming language. Our framework extracts models that over-approximate the message-passing behaviour of a program. These models, or behavioural types, are encoded in Promela, hence can be efficiently verified with Spin. We improve on previous works by verifying programs that include communication-related parameters that are unknown at compile-time, i.e., programs that spawn a parameterised number of threads or that create channels with a parameterised capacity. These programs are checked via a bounded verification approach with bounds provided by the user.
引用
收藏
页码:34 / 45
页数:12
相关论文
共 19 条
[1]   ON COMMUNICATING FINITE-STATE MACHINES [J].
BRAND, D ;
ZAFIROPULO, P .
JOURNAL OF THE ACM, 1983, 30 (02) :323-342
[2]  
Cranen S, 2013, LECT NOTES COMPUT SC, V7795, P199, DOI 10.1007/978-3-642-36742-7_15
[3]  
Dilley N, 2019, 2019 IEEE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), P377, DOI [10.1109/saner.2019.8668036, 10.1109/SANER.2019.8668036]
[4]  
Dilley Nicolas, 2020, GOMELA
[5]  
Havelund K., 2000, Int. J. Softw. Tools Technol. Transfer, V2, P366, DOI DOI 10.1007/S100090050043
[6]   A Static Verification Framework for Message Passing in Go using Behavioural Types [J].
Lange, Julien ;
Ng, Nicholas ;
Toninho, Bernardo ;
Yoshida, Nobuko .
PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, :1137-1148
[7]   Fencing off Go: Liveness and Safety for Channel-Based Programming [J].
Lange, Julien ;
Ng, Nicholas ;
Toninho, Bernardo ;
Yoshida, Nobuko .
ACM SIGPLAN NOTICES, 2017, 52 (01) :748-761
[8]  
Lange J, 2015, ACM SIGPLAN NOTICES, V50, P221, DOI [10.1145/2775051.2676964, 10.1145/2676726.2676964]
[9]  
Lange Julien, GODEL CHECKER
[10]   Process-Local Static Analysis of Synchronous Processes [J].
Midtgaard, Jan ;
Nielson, Flemming ;
Nielson, Hanne Riis .
STATIC ANALYSIS (SAS 2018), 2018, 11002 :284-305