研究概要 |
並行論理プログラミングは,論理プログラミングに情報の流れを制御するための同期機構を導入し,並行処理記述のためのプログラミング・パラダイムとしたものである. これまでの並行論理型言語の研究開発は,主として並列計算機上での高速実行を目標に行なわれてきた.一方,コンピュータネットワークの急速な普及と共に,広域分散計算環境で稼働する効率的で安全な分散型アプリケーションを容易に構築するための方法論の確立が急務となっている.そこで本研究では (1)非均質な計算環境下での宣言型プログラミング (2)静的解析技術に基づく安全な広域分散ソフトウェア構築 の両面から,並行論理プログラミングに基づく広域分散計算のための技術開発を行なった.主要成果は以下の通りである. 1.シームレスな分散実行環境の構築-不均質な計算ノード上で動作する複数のKL1言語処理系をソケットを通じて透過的に接続するために,ネットワーク透過的な分散論理変数(単一代入チャネル)の技術要件および実装方式を検討し実現した.また分散論理変数に対する名前付けとその解決を行なうネーミングサービスを実現した.さらに,分散環境で不可欠となる例外処理機構の設計と実装を行った. 2.分散実行環境における記憶管理-複数の変数によるデータ共有を静的に解析するための広義型体系である線形性体系を設計,実装した.さらに,並行論理プロセスの実行を資源のやり取りの観点からとらえ直し,動的記憶管理が不要なプログラムのクラスとそれを特徴づける静的型体系(capability system)を設計し,既存のモード体系と線形性体系とを一般化した形で統合した. 3.コード移送を実現するためのインタプリタ構築技術-分散処理系における述語コード移送を実現するために,treecodeと呼ばれる中間コード形式を設計し,またそのインタプリタをFlat GHCで記述した. これらを通じて,並行論理型言語をベースに簡明な広域分散プログラミング・パラダイムを構築するための要素基盤を,理論と実装の両方を含む幅広い側面から与えることができた.
|