Static deadlock detection for concurrent go by global session graph synthesis
File(s) main.pdf (505.13 KB)
Accepted version
Author(s)
Ng, N
Yoshida, N
Type
Conference Paper
Abstract
Go is a programming language developed at Google, with channel-based concurrent features based on CSP. Go can detect global communication deadlocks at runtime when all threads of execution are blocked, but deadlocks in other paths of execution could be undetected. We present a new static analyser for concurrent Go code to find potential communication errors such as communication mismatch and deadlocks at compile time. Our tool extracts the communication operations as session types, which are then converted into Communicating Finite State Machines (CFSMs). Finally, we apply a recent theoretical result on choreography synthesis to generate a global graph representing the overall communication pattern of a concurrent program. If the synthesis is successful, then the program is free from communication errors. We have implemented the technique in a tool, and applied it to analyse common Go concurrency patterns and an open source application with over 700 lines of code.
Date Issued
2016-03-17
Date Acceptance
2016-03-17
Citation
Proceedings of the 25th International Conference on Compiler Construction (CC 2016), 2016, pp.174-184
ISBN
9781450342414
Publisher
ACM
Start Page
174
End Page
184
Journal / Book Title
Proceedings of the 25th International Conference on Compiler Construction (CC 2016)
Copyright Statement
© ACM 2016. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in Proceedings of the 25th International Conference on Compiler Construction, http://dx.doi.org/10.1145/2892208.2892232.
Sponsor
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (EPSRC)
Commission of the European Communities
Grant Number
ERI 025567 (EP/K034413/1)
PO 1553380
EP/K011715/1
612985
Source
25th International Conference on Compiler Construction (CC 2016)
Publication Status
Published
Start Date
2016-03-17
Finish Date
2016-03-18
Coverage Spatial
Barcelona, Spain
