Proceedings of the 25th International Conference on Compiler Construction 2016
DOI: 10.1145/2892208.2892232
|View full text |Cite
|
Sign up to set email alerts
|

Static deadlock detection for concurrent go by global session graph synthesis

Abstract: Go is a programming language developed at Google, with channelbased 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… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
73
0

Year Published

2016
2016
2021
2021

Publication Types

Select...
5
1
1

Relationship

1
6

Authors

Journals

citations
Cited by 59 publications
(74 citation statements)
references
References 31 publications
1
73
0
Order By: Relevance
“…Virtual method calls (on interfaces) are particularly difficult to model. As in [7,8,10,12,14], we do not support channel passing (since we abstract away the data sent over channels). We note that our empirical survey [3] found that only 6% of projects used channels that carry channels.…”
Section: Implementation and Evaluationmentioning
confidence: 99%
See 2 more Smart Citations
“…Virtual method calls (on interfaces) are particularly difficult to model. As in [7,8,10,12,14], we do not support channel passing (since we abstract away the data sent over channels). We note that our empirical survey [3] found that only 6% of projects used channels that carry channels.…”
Section: Implementation and Evaluationmentioning
confidence: 99%
“…Also, Zaks and Joshi [19] use Spin to verify multi-threaded C programs using their LLVM representation and custom virtual machine. Several works focus on the verification of message-passing concurrency in Go [7,8,10,12,14,15,16]. Four papers studied static verification using behavioural models.…”
Section: Related Work Conclusion and Future Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Programming with session types can be understood and used efficiently by real world programmers. All papers extending various programming languages [17,3,11,9,13,16] assume that this is the case. However, session types add another layer of complexity to programming.…”
Section: Hypothesesmentioning
confidence: 99%
“…They have proved popular, finding their way into various programming languages and tools. As of late there has been an emphasis on implementations, be that in existing languages: C [17], Erlang [3], Go [16], Java [11,9], to name just a few, or in new languages: Scribble, Links [13], SILL. The session type community certainly believes it to be worthwhile to add session types to as many languages as possible.…”
Section: Introductionmentioning
confidence: 99%