2020/04/03 by Nicolas Dilley, Julien Lange
Computer Science · #cs.PL #cs.SE
paper · pdf · doi:10.4204/eptcs.314.4
published as EPTCS 314, 2020, pp. 34-45 · In Proceedings PLACES 2020, arXiv:2004.01062
arxiv created 2020/04/03 · arxiv updated 2020/04/06
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.