Asynchronous programming, analysis and testing with state machines
File(s) PLDI_PSharp.pdf (483.83 KB)
Accepted version
Author(s)
Deligiannis, P
Donaldson, AF
Ketema, J
Lal, A
Thomson, P
Type
Conference Paper
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.
Date Issued
2015-06-03
Date Acceptance
2015-06-01
Citation
ACM SIGPLAN Notices - PLDI '15, 2015, 50 (6), pp.154-164
ISBN
9781450334686
Publisher
ACM
Start Page
154
End Page
164
Journal / Book Title
ACM SIGPLAN Notices - PLDI '15
Volume
50
Issue
6
Copyright Statement
© ACM, 2015. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ACM SIGPLAN Notices - PLDI '15, {VOL# 50, ISS# 6, (3 June 2015)} https://dx.doi.org/10.1145/2737924.2737996
Sponsor
Commission of the European Communities
Grant Number
287767
Source
36th annual ACM SIGPLAN conference on Programming Language Design and Implementation
Subjects
Software Engineering
Publication Status
Published
Start Date
2015-06-13
Finish Date
2015-06-17
Coverage Spatial
Portland, OR, USA
