A Static Verification Framework for Message Passing in Go using Behavioural Types
The Go programming language has been heavily adopted in industry as a language that efficiently combines systems programming with concurrency. Go’s concurrency primitives, inspired by process calculi such as CCS and CSP, feature channel-based communication and lightweight threads, providing a distinct means of structuring concurrent software. Despite its popularity, the Go programming ecosystem offers little to no support for guaranteeing the correctness of message-passing concurrent programs.
This work proposes a practical verification framework for message passing concurrency in Go by developing a robust static analysis that infers an abstract model of a program’s communication behaviour in the form of a behavioural type, a powerful process calculi typing discipline. We make use of our analysis to deploy a model and termination checking based verification of the inferred behavioural type that is suitable for a range of safety and liveness properties of Go programs, providing several improvements over existing approaches. We evaluate our framework and its implementation on publicly available real-world Go code.
Fri 1 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
| 14:00 - 15:30 | Models and Modeling IITechnical Papers  / Journal first papers at G1 room Chair(s): Jon Whittle Monash University | ||
| 14:0020m Talk | Programming Not Only by Example Technical Papers Pre-print Media Attached | ||
| 14:2020m Talk | Goal-Conflict Likelihood Assessment based on Model Counting Technical Papers  Renzo Degiovanni Universidad Nacional de Río Cuarto, Pablo Castro , Marcelo Arroyo , Marcelo Ruiz Dept. of Mathematics, FCEFQyN, University of Río Cuarto,  Argentina   , Nazareno Aguirre Dept. of Computer Science FCEFQyN, University of Rio Cuarto, Marcelo F. Frias Dept. of Software Engineering Instituto Tecnológico de Buenos AiresPre-print File Attached | ||
| 14:4020m Talk | A Posteriori Typing for Model-Driven Engineering: Concepts, Analysis, and Applications Journal first papers | ||
| 15:0020m Talk | A Static Verification Framework for Message Passing in Go using Behavioural Types Technical Papers  Julien Lange University of Kent, Nicholas Ng Imperial College London, Bernardo Toninho Imperial College London, Nobuko Yoshida Imperial College LondonDOI Pre-print Media Attached | ||
| 15:2010m Talk | Q&A in groups Technical Papers  | ||



