Title
Asynchronous programming, analysis and testing with state machines
Abstract
Programming efficient asynchronous systems is challenging because it can often be hard to express the design declaratively, or to defend against data races and interleaving-dependent assertion violations. Previous work has only addressed these challenges in isolation, by either designing a new declarative language, a new data race detection tool or a new testing technique. We present P#, a language for high-reliability asynchronous programming co-designed with a static data race analysis and systematic concurrency testing infrastructure. We describe our experience using P# to write several distributed protocols and port an industrial-scale system internal to Microsoft, showing that the combined techniques, by leveraging the design of P#, are effective in finding bugs.
Year
DOI
Venue
2015
10.1145/2737924.2737996
PLDI
Keywords
Field
DocType
Asynchronous programming,concurrency,state machines,static data race analysis,systematic concurrency testing
Asynchronous communication,Static data,Programming language,Concurrency,Computer science,Assertion,Parallel computing,Real-time computing,Finite-state machine,Concurrent object-oriented programming,Declarative programming
Conference
Volume
Issue
ISSN
50
6
0362-1340
Citations 
PageRank 
References 
13
0.62
20
Authors
5
Name
Order
Citations
PageRank
Pantazis Deligiannis1464.29
Alastair F. Donaldson266152.35
Jeroen Ketema316013.52
Akash Lal453732.12
Paul Thomson51225.85