English

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

Programming Languages 2020-04-06 v1 Software Engineering

Abstract

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.

Keywords

Cite

@article{arxiv.2004.01323,
  title  = {Bounded verification of message-passing concurrency in Go using Promela and Spin},
  author = {Nicolas Dilley and Julien Lange},
  journal= {arXiv preprint arXiv:2004.01323},
  year   = {2020}
}

Comments

In Proceedings PLACES 2020, arXiv:2004.01062