1 / 13

非明示的型付き デッドロックフリー プロセス計算

非明示的型付き デッドロックフリー プロセス計算. 小林 直樹 斉藤 新 住井 英二郎 東京大学. 並行プログラミング. より優れた表現力 既存のシステムとの合致 並列 ・ 分散環境 本質的に並列性をもつアプリケーション ユーザ・インタフェース シミュレーション. 並列プロセス計算のモデル.  計算 [Milner et al. 92] の変種: チャネル間通信に基づく並行プロセス計算 new x in P (channel creation) x![c].P / x?[y].P (output/input)

ayanna
Télécharger la présentation

非明示的型付き デッドロックフリー プロセス計算

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 非明示的型付きデッドロックフリー プロセス計算 小林 直樹 斉藤 新 住井 英二郎 東京大学

  2. 並行プログラミング • より優れた表現力 • 既存のシステムとの合致 • 並列 ・ 分散環境 • 本質的に並列性をもつアプリケーション • ユーザ・インタフェース • シミュレーション PPL2000 Short Presentation

  3. 並列プロセス計算のモデル •  計算 [Milner et al. 92] の変種:チャネル間通信に基づく並行プロセス計算 • new x in P(channel creation) • x![c].P/ x?[y].P(output/input) • P|Q(parallel execution) • *P (replication) • if x then P else Q (conditional branch) • x![c].P | x?[y].Q → P|{c/y}Q PPL2000 Short Presentation

  4. 並行計算の表現力 • 2値セマフォ • 関数サーバ • 並行オブジェクト PPL2000 Short Presentation

  5. 並行プログラムの安全性 • ネットワークからソフトウェアをダウンロード • 大規模な並列・分散システムでは全体のテストが困難 →安全性の保証が必要 PPL2000 Short Presentation

  6. 型システムによるアプローチ • 逐次言語に対しては成功 • 並行言語にはそのまま適用できない • CML の例:fun f n = let val ch = channel() inaccept(ch) + n end├ f: int -> int PPL2000 Short Presentation

  7. 型システムによるアプローチ • 並行言語にはそのまま適用できない • CML の例:fun f n = let val ch = channel() inaccept(ch) + n end├ f: int -> int(f 1) → 途中で停止 PPL2000 Short Presentation

  8. 並行プログラムの安全性 • 例:並行プログラムが意図した動作をするか • 関数サーバが値を返してくるか • ロックを獲得したプロセスはいずれロックを解放するか PPL2000 Short Presentation

  9. 既存の研究 • 線形チャネルプロセス計算[Kobayashi, POPL 96] • 部分的デッドロックフリープロセス計算[Kobayashi, TOPLAS 98] • チャネル使用法計算に基づく拡張[Sumii & Kobayashi, HLCL 98] • チャネルの使用方法を明示的にプログラマが指定 PPL2000 Short Presentation

  10. 非明示的型付けプロセス計算 • 構文通信にプログラマの意図を付加 • new x:[]t/U in P • x!a[y].P / x?a[y].Pa {, c, o, co}x?c[y].P 成功してほしい通信x?o[y].P いずれは実行されてほしい通信 PPL2000 Short Presentation

  11. 型推論の例 • 恒等関数のサーバ • new f in (*f?[n,r].r![n]| new c in f![3,c].c?c[x]) • 関数の返り値を受け取る通信は成功してほしい PPL2000 Short Presentation

  12. 型推論の例 • 恒等関数のサーバ • new f in (*f?[n,r].r![n]| new c in f![3,c].c?c[x]) • 型推論 → f:[int,[int]t1/Oo]t2/(*Io|Oc) c:[int]t1/(Ic|Oo) PPL2000 Short Presentation

  13. 結論と今後の課題 • 結論 • 非明示的型付けによる デッドロックフリープロセス計算および型推論アルゴリズムを考案 • SML/NJ による型検査器を実装http://www.yl.is.s.u-tokyo.ac.jp/~shin/pub/ • 課題 • 型システムの拡張 • 実際の並列言語 (Pict, CML, Java) への応用 PPL2000 Short Presentation

More Related