研究上の成果
ビジュアルなデザインのパターンを支援する方式
ビジュアルなプログラムデザインのパターンに基づく並列プログラムの開発を 支援するために、開発環境(特にエディタ)に求められる機能について検討を行っ た。KLIEG のエディタには、デザイナがパターン図を定義するための機能とプ ログラマがパターン図を利用するための機能が、既に一部実現されている。拡 張が必要なのは、以下のような機能である。
1については型チェックおよびプロトコルチェックのシステムを現在設計中で ある。 単純な型チェックについては、既に設計が完了した。また、このチェッ ク機能を利用したユーザインタフェースの改善方式について検討を行った。2 については、プロセスをはめ込む部分(ホールと呼ぶ)に複数のプロセスを同時 に保持する機能を設計した。複数のプロセスの中から実際に実行されるプロセ スは、メニューにより容易に選択できる。3 については、一つのパターンに複 数のビューを持たせ、変更したい挙動の種類により異なるビューを用いること を可能とするインタフェースを設計した。
3 の機能を実現するための基盤技術として、エディタ用のズーム・アルゴリズ ムを新たに設計し、このアルゴリズムを用いてズーム機能を導入したエディタ を試作した。
パターンの意味情報を活用したプログラム実行の可視化
プログラムの設計/コーディングだけではなく、デバッグの段階まで視野に入 れたビジュアルな開発環境を実現するために、並列プログラムの実行を可視化 する方式について検討を行った。その結果に基づき、以下のような特徴を持つ トレーサを実現した。
通常のテクストベース並列言語で記述されたプログラムの実行状態を可視化す る方式は多数提案されているが、表示を完全自動化するのは困難である。一方、 KLIEG トレーサの場合、ビジュアルプログラムとして与えられた図形情報をも とに、プログラム実行過程を自動的にアニメーション表示することができる。
KL1 のような再粒度並列言語では、実行中に膨大な数のプロセスが生成され、 その実行状態の表示をスケーラブルに行うことは必ずしも容易ではない。 KLIEG のトレーサでは、フィッシュアイ表示法の一種である連続ズーム・アル ゴリズムを採用することにより、この問題に対処している。
同じ種類のプロセスが繰り返し出現する時、一部のプロセスの内部状態のみを 詳細に表示し、他のプロセスの内部状態の表示を省略する処理を自動化してい る。これは、繰り返しを表現するパターンを用意し、このパターンが持つ意味 的情報を利用することにより、実現可能となった機能である。
その他の成果
負荷分散のパターンとして master-workers 型のものに焦点を絞り、このパター ンが持つ情報に基づき、負荷分散を行う最適化されたコードを生成する方式を 検討した。
発表論文リスト
ソフトウェアとしての成果
試作するソフトウェアは、次のような構成要素からなる。
図 --1は、エディタで入力したビジュアル並列プログラム の一例を示すものである。 また、図 --2は、このプログラムの実行の様子をトレーサ を用いて可視化したものである。
本ソフトウェアは、C++ で記述されコードサイズは約2万行(コメント行を含 む)である。 また、添付資料として、ユーザズマニュアルおよびサンプルプログラムを提供 する。
残された課題
主な課題として以下のものが残された。
自己評価
並列論理型言語のためのパターンに基づくビジュアル開発環境を試作すること ができた。 平成7年度版の KLIEG と比較した場合、エディタのインタフェースおよびトレー サの表示機能のスケーラビリティが向上した。 一般に、ビジュアル言語/環境ではスケーラビリティが問題となることが多い が、パターンの概念を有効に活用することにより、この問題に一定の解決を与 えた点が評価できる。