Microsoft Open-Source-P-Sprache für IoT

Die P-Sprache von Microsoft für asynchrone ereignisgesteuerte Programmierung und das Internet der Dinge (IoT) wurde als Open-Source-Version bereitgestellt.

P ist eine domänenspezifische Sprache, die für eingebettete Systeme, Gerätetreiber und verteilte Dienste ausgelegt ist und mit C kompiliert wird und mit C zusammenarbeitet, die in eingebetteten Systemen und im Internet der Dinge häufig eingesetzt wird. "Das Ziel von P ist es, Sprachprimitive bereitzustellen, um Protokolle, die der Kommunikation zwischen Komponenten inhärent sind, kurz und präzise zu erfassen", so Ethan Jackson und Shaz Qadeer von Microsoft in einem Tutorial zur Sprache.

Mit P werden Modellierung und Programmierung zu einer einzigen Aktivität verschmolzen. "Ein P-Programm kann nicht nur in ausführbaren Code kompiliert, sondern auch durch systematische Tests validiert werden", heißt es in der Dokumentation der Sprache auf GitHub. "P wurde verwendet, um den USB-Gerätetreiberstapel zu implementieren und zu validieren, der mit Microsoft Windows 8 und Windows Phone geliefert wird."

Microsoft hat P als "sicher" für ereignisgesteuerte Programmierung beschrieben. In ihrem Tutorial sagen Jackson und Qadeer, dass P-Programme ein Rechenmodell haben, das Zustandsmaschinen enthält, die über Nachrichten kommunizieren, ein Ansatz, der üblicherweise in eingebetteten, vernetzten und verteilten Systemen verwendet wird.

Jede Zustandsmaschine verfügt über eine Eingabewarteschlange, Zustände, Übergänge, Ereignishandler und einen maschinenlokalen Speicher für eine Variablensammlung. Zustandsautomaten werden gleichzeitig ausgeführt, wobei jeder eine Ereignisschleife ausführt, die eine Nachricht aus der Eingabewarteschlange aus der Warteschlange entfernt. Die Zustandsmaschine überprüft auch den lokalen Speicher, sendet Nachrichten zwischen Maschinen und kann neue Maschinen erstellen. "In P ist eine Sendeoperation nicht blockierend; die Nachricht wird einfach in die Eingabewarteschlange des Zielcomputers ausgeführt." Ein Programm enthält eine Sammlung von Ereignis- und Maschinendeklarationen.

Microsoft bietet auch P #, eine Erweiterung von C #, die auf asynchrone Programmierung abzielt, als Open Source an. Und im Juni veröffentlichte Microsoft Open-Source Checked C, eine modifizierte Version von C, die der C-Sprache neue Syntax und Typisierung hinzufügt, um die Sicherheit in C zu verbessern.