P: Safe asynchronous event-driven programming

Desai A, Gupta V, Jackson E, Qadeer S, Rajamani S, Zufferey D. 2013. P: Safe asynchronous event-driven programming. Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI: Programming Languages Design and Implementation, 321–331.

Download
No fulltext has been uploaded. References only!

Conference Paper | Published | English

Scopus indexed
Author
Desai, Ankush; Gupta, Vivek; Jackson, Ethan; Qadeer, Shaz; Rajamani, Sriram; Zufferey, DamienISTA
Abstract
We describe the design and implementation of P, a domain-specific language to write asynchronous event driven code. P allows the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events. P unifies modeling and programming into one activity for the programmer. Not only can a P program be compiled into executable code, but it can also be tested using model checking techniques. P allows the programmer to specify the environment, used to "close" the system during testing, as nondeterministic ghost machines. Ghost machines are erased during compilation to executable code; a type system ensures that the erasure is semantics preserving. The P language is designed so that a P program can be checked for responsiveness-the ability to handle every event in a timely manner. By default, a machine needs to handle every event that arrives in every state. But handling every event in every state is impractical. The language provides a notion of deferred events where the programmer can annotate when she wants to delay processing an event. The default safety checker looks for presence of unhan-dled events. The language also provides default liveness checks that an event cannot be potentially deferred forever. P was used to implement and verify the core of the USB device driver stack that ships with Microsoft Windows 8. The resulting driver is more reliable and performs better than its prior incarnation (which did not use P); we have more confidence in the robustness of its design due to the language abstractions and verification provided by P.
Publishing Year
Date Published
2013-06-01
Proceedings Title
Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation
Publisher
ACM
Page
321 - 331
Conference
PLDI: Programming Languages Design and Implementation
Conference Location
Seattle, WA, United States
Conference Date
2013-06-16 – 2013-06-19
IST-REx-ID

Cite this

Desai A, Gupta V, Jackson E, Qadeer S, Rajamani S, Zufferey D. P: Safe asynchronous event-driven programming. In: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM; 2013:321-331. doi:10.1145/2491956.2462184
Desai, A., Gupta, V., Jackson, E., Qadeer, S., Rajamani, S., & Zufferey, D. (2013). P: Safe asynchronous event-driven programming. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (pp. 321–331). Seattle, WA, United States: ACM. https://doi.org/10.1145/2491956.2462184
Desai, Ankush, Vivek Gupta, Ethan Jackson, Shaz Qadeer, Sriram Rajamani, and Damien Zufferey. “P: Safe Asynchronous Event-Driven Programming.” In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, 321–31. ACM, 2013. https://doi.org/10.1145/2491956.2462184.
A. Desai, V. Gupta, E. Jackson, S. Qadeer, S. Rajamani, and D. Zufferey, “P: Safe asynchronous event-driven programming,” in Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, Seattle, WA, United States, 2013, pp. 321–331.
Desai A, Gupta V, Jackson E, Qadeer S, Rajamani S, Zufferey D. 2013. P: Safe asynchronous event-driven programming. Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI: Programming Languages Design and Implementation, 321–331.
Desai, Ankush, et al. “P: Safe Asynchronous Event-Driven Programming.” Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM, 2013, pp. 321–31, doi:10.1145/2491956.2462184.

Link(s) to Main File(s)
Access Level
Restricted Closed Access

Export

Marked Publications

Open Data ISTA Research Explorer

Search this title in

Google Scholar