duzc2 / P

The P programming language.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitHub license GitHub Action (CI on Windows) GitHub Action (CI on Ubuntu) GitHub Action (CI on MacOS)

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 systematically tested using Model Checking. P has been used to implement and validate the USB device driver stack that ships with Microsoft Windows 8 and Windows Phone. P is currently being used extensively inside Amazon (AWS) for model checking complex 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/

Blogs

News

About

The P programming language.

License:MIT License


Languages

Language:C# 43.6%Language:OpenEdge ABL 35.7%Language:C 14.8%Language:Java 2.2%Language:Python 1.7%Language:C++ 0.9%Language:ANTLR 0.7%Language:CMake 0.3%Language:Batchfile 0.1%Language:Shell 0.1%Language:PowerShell 0.0%