P: A Domain-Specific Language for Asynchronous Event-Driven Programming


September 5, 2014


Shaz Qadeer




Asynchrony is fundamental to a broad class of software systems such as device drivers, cloud infrastructure, interacting web services, and client-server web applications. These software systems exhibit reactive and concurrent execution whose control requires carefully designed and implemented protocols. Traditional programming languages provide little support to specify and validate protocols. To address this gap, we have developed a domain-specific language called P for specification, implementation, and validation of protocols in asynchronous software. P is being used inside Microsoft in Windows and Windows Phone for developing device drivers; the USB device driver stack that ships with Windows and Windows Phone is implemented in P. In this talk, I will present the design and implementation of the language features and the systematic testing framework of P. I will also touch upon our current work extending P for programming fault-tolerant distributed services.


Shaz Qadeer

Shaz Qadeer is a principal researcher in the Research in Software Engineering group (RiSE) at MSR Redmond. His work aims to improve software reliability by providing programmers with automated tools to analyze their programs. Most of his work has focused on analysis of concurrent software.