Static Race Detection and Mutex Safety and Liveness for Go Programs
Mon 16 Nov 2020 05:00 - 05:20 at SPLASH-I - S-6 Chair(s): Olivier Flückiger, Jeremy Gibbons
Go is a popular concurrent programming language thanks to its ability to efficiently combine concurrency and systems programming. In Go programs, a number of concurrency bugs can be caused by a mixture of data races and communication problems. In this paper, we develop a theory based on behavioural types to statically detect data races and deadlocks in Go programs. We first specify lock safety/liveness and data race properties over a Go program model, using the happens-before relation defined in the Go memory model. We represent these properties of programs in a µ-calculus model of types, and validate them using type-level model-checking. We then extend the framework to account for Go’s channels, and implement a static verification tool which can detect concurrency errors. This is, to the best of our knowledge, the first static verification framework of this kind for the Go language, uniformly analysing concurrency errors caused by a mix of shared memory accesses and asynchronous message-passing communications.
Sun 15 NovDisplayed time zone: Central Time (US & Canada) change
17:00 - 18:20 | S-6Research Papers at SPLASH-I +12h Chair(s): Shigeru Chiba The University of Tokyo, Tiark Rompf Purdue University | ||
17:00 20mTalk | Static Race Detection and Mutex Safety and Liveness for Go Programs Research Papers Link to publication DOI Media Attached | ||
17:20 20mTalk | Reference immutability for DOT Research Papers Link to publication DOI Media Attached | ||
17:40 20mTalk | Multiparty Session Programming with Global Protocol Combinators Research Papers Keigo Imai Gifu University, Rumyana Neykova Brunel University London, Nobuko Yoshida Imperial College London, Shoji Yuen Nagoya University Link to publication DOI Media Attached | ||
18:00 20mTalk | Scala with Explicit Nulls Research Papers Abel Nieto Aarhus University, Yaoyu Zhao University of Waterloo, Ondřej Lhoták University of Waterloo, Angela Chang University of Waterloo, Justin Pu University of Waterloo Link to publication DOI Pre-print Media Attached |
Mon 16 NovDisplayed time zone: Central Time (US & Canada) change
05:00 - 06:20 | S-6Research Papers at SPLASH-I Chair(s): Olivier Flückiger Northeastern University, Jeremy Gibbons Department of Computer Science, University of Oxford | ||
05:00 20mTalk | Static Race Detection and Mutex Safety and Liveness for Go Programs Research Papers Link to publication DOI Media Attached | ||
05:20 20mTalk | Reference immutability for DOT Research Papers Link to publication DOI Media Attached | ||
05:40 20mTalk | Multiparty Session Programming with Global Protocol Combinators Research Papers Keigo Imai Gifu University, Rumyana Neykova Brunel University London, Nobuko Yoshida Imperial College London, Shoji Yuen Nagoya University Link to publication DOI Media Attached | ||
06:00 20mTalk | Scala with Explicit Nulls Research Papers Abel Nieto Aarhus University, Yaoyu Zhao University of Waterloo, Ondřej Lhoták University of Waterloo, Angela Chang University of Waterloo, Justin Pu University of Waterloo Link to publication DOI Pre-print Media Attached |