Repository logo
  • Log In
    Log in via Symplectic to deposit your publication(s).
Repository logo
  • Communities & Collections
  • Research Outputs
  • Statistics
  • Log In
    Log in via Symplectic to deposit your publication(s).
  1. Home
  2. Faculty of Engineering
  3. Computing
  4. Computing
  5. Static race detection and mutex safety and liveness for Go programs
 
  • Details
Static race detection and mutex safety and liveness for Go programs
File(s)
LIPIcs-ECOOP-2020-4.pdf (859.11 KB)
Published version
Author(s)
Gabet, Julia
Yoshida, Nobuko
Type
Conference Paper
Abstract
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.
Date Issued
2020-11-06
Date Acceptance
2020-04-08
Citation
LIPIcs : Leibniz International Proceedings in Informatics, 2020, 166, pp.4:1-4:30
URI
http://hdl.handle.net/10044/1/80323
DOI
https://www.dx.doi.org/10.4230/LIPIcs.ECOOP.2020.4
ISSN
1868-8969
Publisher
Schloss Dagstuhl -- Leibniz-Zentrum fuer Informatik
Start Page
4:1
End Page
4:30
Journal / Book Title
LIPIcs : Leibniz International Proceedings in Informatics
Volume
166
Copyright Statement
© 2020 Julia Gabet and Nobuko Yoshida;
licensed under Creative Commons License CC-BY
License URL
https://creativecommons.org/licenses/by/3.0/
Sponsor
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Engineering and Physical Sciences Research Council
Engineering & Physical Science Research Council (EPSRC)
Engineering & Physical Science Research Council (EPSRC)
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (EPSRC)
Engineering & Physical Science Research Council (EPSRC)
GCHQ
Grant Number
ERI 025567 (EP/K034413/1)
PO 20131167
EP/L00058X/1, PO 20131167
EP/K011715/1
EP/N027833/1
20208624
EP/T006544/1
EP/T014709/1
4207702 / RFA 15845
Source
34th European Conference on Object-Oriented Programming (ECOOP) 2020
Publication Status
Published
Start Date
2020-11-15
Finish Date
2020-11-17
Coverage Spatial
Virtual
Date Publish Online
2020-11-06
About
Spiral Depositing with Spiral Publishing with Spiral Symplectic
Contact us
Open access team Report an issue
Other Services
Scholarly Communications Library Services
logo

Imperial College London

South Kensington Campus

London SW7 2AZ, UK

tel: +44 (0)20 7589 5111

Accessibility Modern slavery statement Cookie Policy

Built with DSpace-CRIS software - Extension maintained and optimized by 4Science

  • Cookie settings
  • Privacy policy
  • End User Agreement
  • Send Feedback