研究概要 |
本研究では,分散型計算用プログラム言語の新たな実装手法として,関数型言語を用いる方法を提案した.新たに提案した実装法は,「分散型の計算を行なうプログラム言語に必要となる機能が,コーディネーションのための部分と,計算の部分との2つに分割できる」という着想に基づく.コーディネーションの処理の記述には並行制約解消系,計算処理の記述には純粋関数型言語が適する.そこで,本研究では,純粋関数型言語Haskellを拡張し,並行処理,分散処理,通信のための並行制約解消機能を実現した. 本研究者が,並列プログラム言語Goffinの研究に携わった際に,「時間的制約・明示的配置・相互利用通信・多対多ポート等を利用する分散型の計算には,制約解消の機能が必要である」との知見をすでに得ていた.先行研究では,論理変数を利用する手法が主流であったが,本研究では,新たに,モナドの概念を利用した単一代入型の変数を利用する.これにより,言語の設計や実装を簡単化することが可能になった.本研究の成果であるプログラム言語Distributed HaskellはHaskell上の,分散計算を行うライブラリとして,その実装が完了している. 既存のHaskellの言語処理系には,ネットワークアクセスの機能がない.このため,Haskellとオペレーティングシステムとの間のインターフェース部分は,これまで,C言語により書かれることが多かった.これは,高レベルのプログラミングには馴染まず,分散プログラミングを複雑なものにしてしまう.そこで,本研究では,Haskellからシステムライブラリを呼び出すための新たな方法として,インターフェース作成の作業を半自動化するツールを開発した. また,本研究では,強い型付け可能性を考察し,形式的手法によるコーディネーション理論を確立した.これにより,関数型言語を用いた分散プログラムの効率的な開発が可能になった.
|