Skip to content
The P programming language.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Bld updated all the projects to .netcore 2.0 Nov 27, 2018
Ext updating dependency Feb 11, 2019
Src Fixed a bug in the parsing of the module expression Mar 1, 2019
Tst
Tutorial Merge branch 'ssa' Nov 25, 2018
.gitattributes end-of-line normalization Jul 25, 2016
.gitignore updated the versions of libhandler and psharp Sep 13, 2018
.gitmodules add psharp as submodule Sep 12, 2018
Directory.Build.props Prt tests should use latest windows sdk (10.0.17134.0) Jul 13, 2018
LICENSE.txt adding license file Jun 21, 2015
NuGet.config update Jun 28, 2018
P.sln fixed all the bugs Nov 21, 2018
P.sln.DotSettings Splitting tests into core and framework Feb 20, 2018
README.md
azure-pipelines.yml Set up CI with Azure Pipelines Nov 29, 2018

README.md

GitHub license Build Status

P is a language for asynchronous event-driven programming. 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 and programming into one activity for the programmer. Not only can a P program be compiled into executable code, but it can also be validated using systematic testing. P has been used to implement and validate the USB device driver stack that ships with Microsoft Windows 8 and Windows Phone. P is also suitable for the design and implementation of networked, embedded, and distributed systems.

Publications

Manual

Check the P Wiki.

Information for building P framework is available here.

Demos

See fun demo video using P to control a quadrocopter and make sense of the MavLink stream, all visualized in a live DGML diagram.

Application to Robotics

We built DRONA, a software framework for distributed mobile robotics systems. DRONA uses P language for implementing and model-checking the distributed robotics software stack (wiki). The C code generated from P compiler can be easily deployed on Robot Operating System (ROS). More details about the DRONA framework and simulation videos are available here: https://drona-org.github.io/Drona/

We are working on using the DRONA framework for building real-world drone applications using PX4 and extending DRONA with runtime monitoring capabilities for reliability. Details about these extensions will be posted soon.

Blogs

News

You can’t perform that action at this time.