Giter Site home page Giter Site logo

nhardt / p Goto Github PK

View Code? Open in Web Editor NEW

This project forked from p-org/p

0.0 1.0 0.0 125.18 MB

The P programming language.

License: MIT License

C# 43.78% Batchfile 0.13% OpenEdge ABL 35.31% C 14.65% C++ 0.86% PowerShell 0.04% Shell 0.07% CMake 0.27% ANTLR 0.64% Java 2.51% Python 1.47% AspectJ 0.26%

p's Introduction

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

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, programming, 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 model checking complex distributed systems. P has been 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.

Selected Publications

Manual

Check the P Wiki.

Information for building P framework is available here.

Programming Safe Robotics Systems using P

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/

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

Programming Secure Distributed Systems using P

Programming secure distributed systems that have a formal guarantee of no information leakage is challenging. We extended P to the PSec language to enable programming secure distributed systems. We leverage Intel SGX enclaves to ensure that the security guarantees provided by the P language are enforced at runtime. By combining information flow control with hardware enclaves, we prevent P programmers from inadvertently leaking sensitive information while sending data securely across machines. We formally proved the security properties of the extended P language and used it to program several real-world examples, including a One Time Passcode application and a Secure Electronic Voting System. Details about the PSec framework can be found here.

Blogs

News

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.