P(プログラミング言語)
| P | |
|---|---|
![]() | |
| 開発者 | アンクシュ・デサイ、ヴィヴェク・グプタ: 政治家ではない、イーサン・ジャクソン、シャズ・カディール、スリラム・ラジャマニ、マイクロソフト |
| 初登場 | 2012年 |
| 安定版リリース | 2.3.5 / 2025年2月19日 |
| OS | クロスプラットフォーム |
| ライセンス | MITライセンス |
| ファイル名拡張子 | .p |
| Webサイト | p-org.github.io/P/ |
Pは、マイクロソフトとカリフォルニア大学バークレー校によって開発された、非同期イベント駆動型プログラミングとIoTのためのプログラミング言語です。[1]
P言語は、イベントに基づいて非同期通信する状態マシンの集合からなるシステムをプログラマーが記述することを可能にします。 [2] Pプログラムは、 .NETがサポートするあらゆるプラットフォームで実行・解析できます。さらに、PプログラムはC#およびCコードを生成することもできます。
Pはオープンソースであり、MITライセンスの下でライセンスされており、GitHubで入手可能です。[3]
例
マシン BankServer{ var database: データベース; 開始状態 Init { エントリ (初期バランス: map[int, int]){ データベース = 新しいデータベース ((サーバー = this、初期バランス = initialBalance)); WaitForWithdrawRequests に移動します。 } } 状態 WaitForWithdrawRequests { eWithDrawReq で (wReq: tWithDrawReq) を実行します { var 現在の残高: int; var レスポンス: tWithDrawResp; // データベースから現在の口座残高を読み取る currentBalance = ReadBankBalance(データベース、wReq.accountId); // 引き出し後に口座に十分な金額がある場合 if(現在の残高 - wReq.amount >= 10) { UpdateBankBalance(データベース、wReq.accountId、currentBalance - wReq.amount); 応答 = (ステータス = WITHDRAW_SUCCESS、アカウントId = wReq.accountId、残高 = currentBalance - wReq.amount、rId = wReq.rId); } else // 引き出し後にお金が足りない { 応答 = (ステータス = WITHDRAW_ERROR、アカウントId = wReq.accountId、残高 = currentBalance、rId = wReq.rId); } // クライアントに応答を送信する wReq.source、eWithDrawResp、応答を送信します。 } }}参照
参考文献
- ^ マイクロソフトがIoT向けP言語をオープンソース化
- ^ アンクシュ・デサイ;ヴィヴェク・グプタ。イーサン・ジャクソン。シャズ・カディール。シュリラム・ラジャマニ(2012 年 11 月) 「P: 安全な非同期イベント駆動型プログラミング」。マイクロソフト。2017 年2 月 20 日に取得。
- ^ Sergio De Simone. 「Microsoft、安全な非同期イベント駆動型プログラミングのためのP言語をオープンソース化」InfoQ . 2016年10月20日閲覧。
さらに読む
- P: 安全な非同期イベント駆動プログラミング。Ankush Desai、Vivek Gupta、Ethan Jackson、Shaz Qadeer、Sriram Rajamani、Damien Zufferey。ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) 2013の論文集。
- 非同期リアクティブシステムの体系的なテスト。Ankush Desai、Shaz Qadeer、Sanjit A. Seshia。2015年第10回ソフトウェアエンジニアリング基礎合同会議(ESEC/FSE 2015)の議事録。
- P. Ankush Desai、Ethan Jackson、Amar Phanishayee、Shaz Qadeer、Sanjit A. Seshiaによる信頼性の高い分散システムの構築。カリフォルニア大学バークレー校。技術レポート番号:UCB/EECS-2015-198。
外部リンク
- 公式サイト
- GitHubのソースコード
- P: 安全な非同期イベント駆動プログラミング
- P: 非同期性、耐障害性、不確実性を考慮して設計されたプログラミング言語
