従来より並列アルゴリズム開発や並列プログラミングは、デバッグ・チューニ ング・ソフトウェアメンテナンスなどが困難とされてきた。KL/1などの従来の 言語と比較して並列性の抽象度の高い言語の登場によって、一定の進歩はあっ たが、それでも(言語システムのみでは)全面的な解決には到らず、プログラミ ング環境、特にその中でも視覚的なプログラム開発支援は大変重要視されてい る。しかも近年はグラフィカルユーザインタフェース(以下,GUI)のアニメーショ ン・三次元・その他のマルチメディア情報などを扱える先進的GUIシステムの 登場とあいまって、プログラミング支援のための視覚化システムも益々高度化 が要求されている。
しかし、GUIや視覚化システムがそのように高度化するにつれ、アプリケーショ ンのデータ・視覚的表現・その両者の対応関係が複雑化し、有効な視覚化を得 るには多大な開発コストが要求されている。特に、三次元のアニメーションを 活用した並列プログラムの視覚化システムでは、システム自身が複雑であるの みならず、ユーザが自身の並列アルゴリズムや並列プログラムの視覚化を三次 元やアニメーションの機能をフルに生かして行うのは大変開発コストがかかっ てしまう。 AVSなどの計算の結果をデータフロー的に視覚化するようなシステ ムはあるが、それらは動的なプログラムの実行状態を表示するようには作られ ていない。並列プログラムの視覚化システムとしてはPolkaなどがあるが、三 次元を含む複雑なデータ構造の視覚化には適していない。
我々は、以前より「絵・抽象的データ間の宣言的双方向変換の枠組」という、 新しいGUIの構築パラダイムを提案し、宣言型のGUIシステムTRIPなどの各種シ ステムを開発し、GUIに特化した制約解消技法や、例示からの制約の汎化手法 などのソフトウェア基盤技術の研究を行ってきた。 本研究ではそれらの研究 をベースとして、KL/1を含む並列言語で書かれたアルゴリズムやプログラムを、 宣言的な視覚化規則により三次元のアルゴリズムアニメーションとしてユーザ に提示するシステムTRIP2a/3Dを、KL/1を宣言規則の変換エンジンとして用い て開発する。ユーザは簡便な宣言的な規則によって様々な三次元の視覚化技法 やアニメーション技法を用いることが可能となるため、 Visual Janusのよう な、従来の並列プログラム視覚化システムのように、ある特定の視覚化のスタ イルや技法に縛られることがない。また、複雑なアニメーションなども、簡潔 な記述によって可能であり、システムのデフォルトの視覚化も容易に修正でき る。
このように、本システムを開発することにより、アルゴリズムやプログラムに 適した様々な視覚化が容易に行えるようになることにより、並列アルゴリズム やプログラムの開発・デバッグ・チューニング・解説・教育などを高度に支援 することが可能になる。TRIP2a/3Dは、KL/1やOpenGLなどの汎用のプラットフォー ム上で高速に動作するように開発するため、IRISなどのグラフィックスワーク ステーションのみならず、通常のワークステーションや高性能PC上で三次元ア ニメーションを用いた並列アルゴリズムやプログラムの視覚化が行える。