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

05/28/2021
by   Felix A. Wolf, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/27/2020

Static Race Detection and Mutex Safety and Liveness for Go Programs (extended version)

Go is a popular concurrent programming language thanks to its ability to...
research
10/18/2022

Compositional Reasoning for Side-effectful Iterators and Iterator Adapters

Iteration is a programming operation that traditionally refers to visiti...
research
10/27/2016

Fencing off Go: Liveness and Safety for Channel-based Programming (extended version)

Go is a production-level statically typed programming language whose des...
research
06/07/2022

Dependently-Typed Data Plane Programming

Programming languages like P4 enable specifying the behavior of network ...
research
05/26/2020

Structural Reductions Revisited

Structural reductions are a powerful class of techniques that reason on ...
research
09/24/2021

Automated Modular Verification for Race-Free Channels with Implicit and Explicit Synchronization

Ensuring the correctness of software for communication centric programs ...
research
10/11/2021

Robust Safety for Move

A program that maintains key safety properties even when interacting wit...

Please sign up or login with your details

Forgot password? Click here to reset