Safer asynchronous programming for .NET
Overview
P# is a new language for high-reliability asynchronous .NET programming, co-designed with a static data race analysis and testing infrastructure. The co-design aspect of P# allows us to combine language design, analysis and testing in a unique way: the state-machine structure of a P# program enables us to create a more precise and scalable static analysis; while the race-freedom guarantees, provided by our analysis, contribute to the feasibility of systematically exploring a P# program to find bugs (e.g. assertion failures and unhandled exceptions).
Research Support
This research has been supported by the EU FP7 CARP project, Correct and Efficient Accelerator Programming, a gift from Intel Corporation, and a PhD studentship from the EPSRC. The work commenced when Pantazis Deligiannis was an intern at Microsoft Research India.
Publications
-
Uncovering Bugs in Distributed Storage Systems during Testing (not in Production!)
Pantazis Deligiannis, Matt McCutchen, Paul Thomson, Shuo Chen, Alastair F. Donaldson, John Erickson, Cheng Huang, Akash Lal, Rashmi Mudduluru, Shaz Qadeer, Wolfram Schulte
14th USENIX Conference on File and Storage Technologies (FAST'16)
-
Asynchronous Programming, Analysis and Testing with State Machines
Pantazis Deligiannis, Alastair F. Donaldson, Jeroen Ketema, Akash Lal, Paul Thomson
36th Annual ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'15)