P is a state machine based programming language for modeling and specifying complex distributed systems. P allows the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events. P unifies modeling, specifying, implementing, and testing into one activity for the programmer. Not only can a P program be compiled into executable code, but it can also be systematically tested using Model Checking.
P is currently being used extensively inside Amazon (AWS) for performing analysis of complex distributed systems. P was used to implement and validate the USB device driver stack that ships with Microsoft Windows 8 and Windows Phone. We have also used P for programming safe robotics systems.
Programming distributed systems is challenging but a pinch of programming languages design combined with a dash of automated reasoning can go a long way in bringing the joy back.
🤠
Let the fun begin!
See our webpage for more information about the P framework, getting started, case studies, tutorials and related research publications. If you have any further questions, please feel free to create an issue, ask on discussions, or email us
P is being built and maintained since 2013 as a collaborative project between industry and academia. The P project welcomes contributions and suggestions. See CONTRIBUTING for more information.