IoT向けのMicrosoftオープンソースP言語

非同期イベント駆動型プログラミングとIoT(モノのインターネット)のためのMicrosoftのP言語は、オープンソース化されています。

組み込みシステム、デバイスドライバー、分散サービスを対象としたPは、Cにコンパイルされ、相互運用されるドメイン固有言語です。C自体は、組み込みシステムやIoTで一般的に活用されています。「Pの目標は、コンポーネント間の通信に固有のプロトコルを簡潔かつ正確にキャプチャするための言語プリミティブを提供することです」と、MicrosoftのEthanJacksonとShazQadeerは言語のチュートリアルで述べています。

Pを使用すると、モデリングとプログラミングが1つのアクティビティに統合されます。GitHubの言語のドキュメントによると、「Pプログラムは実行可能コードにコンパイルできるだけでなく、体系的なテストを使用して検証することもできます」。「Pは、Microsoft Windows8およびWindowsPhoneに付属するUSB​​デバイスドライバースタックを実装および検証するために使用されています。」

Microsoftは、Pを「安全な」イベント駆動型プログラミングを提供すると説明しています。JacksonとQadeerは、チュートリアルで、Pプログラムには、メッセージを介して通信するステートマシンを特徴とする計算モデルがあると述べています。これは、組み込み、ネットワーク、分散システムで一般的に使用されるアプローチです。

各ステートマシンには、変数コレクション用の入力キュー、状態、遷移、イベントハンドラー、およびマシンローカルストアがあります。ステートマシンは同時に実行され、それぞれが入力キューからメッセージをデキューするイベントループを実行します。ステートマシンは、ローカルストアを調べ、マシン間でメッセージを送信し、新しいマシンを作成することもできます。「Pでは、送信操作は非ブロッキングです。メッセージは、ターゲットマシンの入力キューに実行されるだけです。」プログラムは、イベントとマシンの宣言のコレクションを備えています。

Microsoftは、非同期プログラミングを対象とするC#の拡張機能であるP#もオープンソースとして提供しています。そして6月、MicrosoftはCの安全性を向上させる目的でC言語に新しい構文と入力を追加するCの修正バージョンであるCheckedCをオープンソース化しました。