User:Mbs z/Goblint

Goblint is a static program analyzer based on the theory of abstract interpretation. It specializes in verifying the absence of concurrency bugs such as data races. It also reports on other potential programming errors such as integer overflows, buffer overflows, or null-pointer dereferences. It targets C programs that potentially make use of the pthreads concurrency library.

The tool reports findings to users via the command line. Other output formats such as an HTML report are also available.

To analyze concurrency, the tool relies on thread-modular abstract interpretation, thereby avoiding having to compute all possible thread interleavings.

Goblint uses a modular analysis architecture, i.e., new analyses can be added by specifying their transfer functions and the abstract domain to be used. Different analyses can communicate via a query system.

Development
Goblint is developed at the University of Tartu and at the TUM Department of Informatics under an Open Source license. It is implemented in OCaml and uses CIL as its compiler frontend.

SV-Comp
The tool has participated in the Software Verification Competition (SV-Comp) held as part of TACAS since 2021. It is one of the participants in the experimental category for verifying the absence of data races.