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).

Check out P# on GitHub

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