Empirical evaluation of static verifiers for the Go programming language (available)

Starting Date: June 2023 (flexible)
Prerequisites: Good programming skills
Will results be assigned to University: No

Go is a language that natively supports many constructs to synchronise concurrent threads. Because of this, developing code that contains subtle concurrency bugs is rather common. To address this problem, several groups of researchers have put forwards tools to find concurrency bugs in Go codebases.

The objective of this project is to evaluate how some of these analysers perform against each other on open-source code (i.e., large Go projects on GitHub). We will look at three recent tools:

  • Gomela (https://github.com/nicolasdilley/gomela)
  • Goat (https://www.brics.dk/goat/)
  • GCatch (https://github.com/system-pclub/GCatch)

For each GitHub project, you will analyse how many bugs are reported by each tool, and categorise them into bug families that you will propose, with the help of the supervisory team.

Throughout the project will interact with research engineers at a large software company who are performing a companion study on the their own code.

This project will be jointly supervised by Julien Lange (RHUL) and Vlad Saioc (visiting PhD student from Aarhus University).