Loading article…
ジョイン計算はINRIAで開発されたプロセス計算です。ジョイン計算は分散プログラミング言語の設計の正式な基盤を提供するために開発されたため、分散環境では実装が難しいランデブー通信などの他のプロセス計算に見られる通信構造を意図的に避けています。[1]この制限にもかかわらず、ジョイン計算は完全なπ計算と同じくらい表現力があります。π計算をジョイン計算にエンコードしたり、その逆を行ったりすることが実証されています。[2]
ジョイン計算はプロセス計算のπ計算ファミリーの一員であり、その核心はいくつかの強い制限を伴う非同期π計算であると考えられる。[3]
- スコープ制限、受信、および複製受信は、構文的に単一の構成要素である定義に統合されます。
- 通信は定義された名前に対してのみ行われます。
- 定義された名前ごとに、複製された受信が 1 つだけ存在します。
しかし、プログラミング言語として、結合計算はπ計算に比べて少なくとも1つの利便性を提供します。つまり、多方向結合パターンの使用、つまり複数のチャネルからのメッセージを同時に照合する機能です。[4]
実装
結合計算に基づく言語
ジョイン計算プログラミング言語は、ジョイン計算プロセス計算に基づいた新しい言語です。OCamlで書かれたインタープリタとして実装されており、静的型付け分散プログラミング、透過的なリモート通信、エージェントベースのモビリティ、およびいくつかの障害検出をサポートしています。[5]
- 明示的に結合計算に基づいているわけではありませんが、 CLIPSのルール システムは、すべてのルールがトリガーされたときに入力を削除する (実行時に関連する事実を撤回する) 場合に結合計算を実装します。
結合計算の多くの実装は、既存のプログラミング言語の拡張として作成されました。
- JoCamlは、結合計算プリミティブを拡張したOCamlのバージョンです。
- ポリフォニックC#とその後継のCωはC#を拡張する
- MC# と Parallel C# は Polyphonic C# を拡張します
- Javaを結合してJavaを拡張する
- Join計算を使用する並行Basic提案
- JErlang(JはJoin、erjangはJVM用のErlang)[6]
他のプログラミング言語への埋め込み
これらの実装では、基盤となるプログラミング言語は変更されませんが、カスタム ライブラリまたは DSL を通じて結合計算操作が導入されます。
- ScalaJoinsとChymystライブラリはScalaで書かれています
- Einar Karttunen による JoinHs と Samuel Yallop による syallop/Join-Language は、Haskellの Join 計算のための DSL です。
- Joinads - F#での結合計算のさまざまな実装
- CocoaJoinは、iOSおよびMac OS X向けのObjective-Cの実験的な実装です。
- Python 3のJoin Pythonライブラリ[7]
- Boost [8]経由のC++ (2009年のBoostでは約v.40、現在(2019年12月)は72)。
参考文献
- ^ Cedric Fournet、Georges Gonthier (1995)。「反射的 CHAM と結合計算」。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)、1 ページ目 - ^ Cedric Fournet、Georges Gonthier (1995)。「反射的 CHAM と結合計算」。
{{cite journal}}:ジャーナルの引用には|journal=(ヘルプ)が必要です、2 ページ - ^ Cedric Fournet、Georges Gonthier (1995)。「反射的 CHAM と結合計算」。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です、19 ページ - ^ Petricek, Tomas. 「TryJoinads (IV.) - 結合計算を使用した並行性」tomasp.net . 2023年1月24日閲覧。
- ^ Cedric Fournet、Georges Gonthier (2000)。「結合計算: 分散モバイルプログラミング言語」、268–332 ページ。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ 「JErlang: 結合付き Erlang」。2017 年 12 月 8 日時点のオリジナルよりアーカイブ。2015年 4 月 18 日閲覧。
- ^ Join Python、Python 用 Join 計算 (Mattias Andree 著)
- ^ Yigong Liu - Join-非同期メッセージ調整および並行処理ライブラリ
外部リンク
- INRIA、微積分ホームページに参加
- Microsoft Research、結合計算: 分散モバイル プログラミング言語
