pith. sign in

arxiv: 2105.13840 · v1 · pith:5HX5X532new · submitted 2021-05-28 · 💻 cs.PL

Gobra: Modular Specification and Verification of Go Programs (extended version)

classification 💻 cs.PL
keywords verificationgobracombinationconcurrencylanguagemodularprogramsafety
0
0 comments X
read the original abstract

Go is an increasingly-popular systems programming language targeting, especially, concurrent and distributed systems. Go differentiates itself from other imperative languages by offering structural subtyping and lightweight concurrency through goroutines with message-passing communication. This combination of features poses interesting challenges for static verification, most prominently the combination of a mutable heap and advanced concurrency primitives. We present Gobra, a modular, deductive program verifier for Go that proves memory safety, crash safety, data-race freedom, and user-provided specifications. Gobra is based on separation logic and supports a large subset of Go. Its implementation translates an annotated Go program into the Viper intermediate verification language and uses an existing SMT-based verification backend to compute and discharge proof obligations.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.