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
This paper addresses the problem of automatically verifying correctness of concurrent algorithms, e....
This work proposes and demonstrates a novel method for software development that applies formal veri...
Concurrent and distributed programming is notoriously hard. Modern languages and toolkits ease this ...
Go is a programming language that has gained increased popularity due to its good support for system...
The Go programming language has been heavily adopted in industry as a language that efficiently comb...
The Go programming language has been heavily adopted in industry as a language that efficiently comb...
Go is a popular programming language renowned for its good support for system programming and its ch...
Go is a production-level statically typed programming language whose design features explicit messag...
Human beings have gradually become dependent on computers, and more specifically, the software that ...
technical reportVerification of distributed systems is a complex yet important process. Concurrent ...
Go is an increasingly-popular systems programming language targeting, especially, concurrent and dis...
© 2016 ACM.Go is a programming language developed at Google, with channelbased concurrent features b...
This paper presents a framework for the static specification and safe programming of message passing...
The Go language includes support for running functions or methods concurrently as goroutines, which ...
This paper presents a framework for the static specification and safe programming of message passing...
This paper addresses the problem of automatically verifying correctness of concurrent algorithms, e....
This work proposes and demonstrates a novel method for software development that applies formal veri...
Concurrent and distributed programming is notoriously hard. Modern languages and toolkits ease this ...
Go is a programming language that has gained increased popularity due to its good support for system...
The Go programming language has been heavily adopted in industry as a language that efficiently comb...
The Go programming language has been heavily adopted in industry as a language that efficiently comb...
Go is a popular programming language renowned for its good support for system programming and its ch...
Go is a production-level statically typed programming language whose design features explicit messag...
Human beings have gradually become dependent on computers, and more specifically, the software that ...
technical reportVerification of distributed systems is a complex yet important process. Concurrent ...
Go is an increasingly-popular systems programming language targeting, especially, concurrent and dis...
© 2016 ACM.Go is a programming language developed at Google, with channelbased concurrent features b...
This paper presents a framework for the static specification and safe programming of message passing...
The Go language includes support for running functions or methods concurrently as goroutines, which ...
This paper presents a framework for the static specification and safe programming of message passing...
This paper addresses the problem of automatically verifying correctness of concurrent algorithms, e....
This work proposes and demonstrates a novel method for software development that applies formal veri...
Concurrent and distributed programming is notoriously hard. Modern languages and toolkits ease this ...