情報科学演習3:小林研究室・課題2

並行プロセス計算に基づくプログラミング言語の処理系を作る

背景

近年、インターネットのような分散ネットワークや Sun Enterprise シリーズのような並列マシンの普及にともなって、複数のプロセスが相互に通信しながら計算を行う並行プログラミング (Concurrent Programming) の重要性が増しています。たとえ分散・並列環境でなくても、ウィンドウ・システムのような本質的に並行性のある対象には、やはり並行プログラミングが有効です。

関数プログラミングのモデルに λ-calculus があるように、並行プログラミングのモデルとしては π-calculusHACL といった並行プロセス計算 (Concurrent Process Calculi) が提案されています。また、並行プログラミングをサポートする言語としては、Concurrent MLPictHACL などがあります。

内容

本課題では、並行プロセス計算に関する論文を一つ読んでもらってから、それに基づく簡単な並行プログラミング言語の処理系(インタプリタ)を作ってもらおうと考えています。

補足

並行プログラミングには、通信のオーバーヘッドや非決定性・デッドロックなどの、逐次プログラミングにはない特有の問題が存在します。そのような問題に対して当研究室では最近、型システムを利用した改善策を研究しています。これは一昨年から今年にかけて、国際的な学術会議や学会誌で発表された/される予定の、本当に最新の話題です。詳細は課題4に譲りますが、意欲のある人はそれら(の一部)を組み込んでみるとおもしろいでしょう。


課題一覧へ戻る
sumii@is.s.u-tokyo.ac.jp