Overview
Explore the P programming framework for designing, implementing, and validating event-driven asynchronous systems in this 52-minute talk by Shaz Qadeer. Gain insights into how P incorporates deep modeling and specification techniques into asynchronous programming, allowing systematic testing and debugging of applications before deployment to prevent difficult-to-fix Heisenbugs. Learn about P's real-world applications in Microsoft products, including USB drivers, Microsoft Office, Azure services, and autonomous robotics research. Discover key ideas behind P, its workflow, and open research problems. Delve into topics such as concurrency, reactivity, failure handling, modeling, and programming techniques. Examine P# and its code structure, asynchronous systems, monitors, and various search and execution strategies including depth-first search, random sampling, partial order reduction, and symbolic execution. Understand how P addresses the challenges of the Heisenberg uncertainty principle in distributed systems and its potential for improving software reliability.
Syllabus
Introduction
Devices and Services
concurrency reactivity and failure
Heisenberg uncertainty principle
Azure storage example
Azure integration tests
Heisenbergs logs
P is an attack
P programmer workflow
Modeling and programming
Successes
PSharp
Code Structure
Asynchronous Systems
Monitors
DepthFirst Search
Value Proposition
Delaying Scheduler
Prioritizing Search
Randomization
Random Sampling
Partial Order Reduction
Symbolic Execution
Compositional Reasoning
Taught by
Paul G. Allen School