Safer asynchronous programming for .NET
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).
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.
Uncovering Bugs in Distributed Storage Systems during Testing (not in Production!)
14th USENIX Conference on File and Storage Technologies (FAST'16)
Asynchronous Programming, Analysis and Testing with State Machines
36th Annual ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'15)