研究概要 |
本年度は,演算子の代数規則(結合則および交換則)を考慮する,書き換え規則のコンパイルおよび,項書き換えシステムを通常の計算機に効率よく実現するための抽象機械を設計し,プロトタイプを試作することで考案した手法の有用性を確認した.概要および得られた知見は以下のとおりである. 1.書き換え規則のコンパイル:並行および分散オブジェクト指向システムを形式化する際に重要な役割を果たすデータ構造であるマルチセットを,演算子に結合則および交換則の属性を明示的に付加することで,項書き換えシステムで効率よく扱うための手法を考案し,結合則および交換則を属性として持つ演算子のための書き換え規則をプログラミング言語(たとえばLisp)ヘコンパイルする手法を考案した.マルチセットを通常のプログラミング言語でナイーブに扱うと、マルチセットを扱わない場合に比べ,かなりの性能の低下を招く.しかし,本研究で考案した手法を採り入れたコンパイラをCommon‐Lispで試作した結果,マルチセットを明示的に扱ったとしても,それほど性能の低下を招かないことがわかり,本手法の妥当性を確認できた. 2.抽象機械の設計:書き換え戦略に則りリデックスを探すための入力項を構成する部分項を探索することと,(部分)項がリデックスであるか否かを判断するためのパタンマッチの2点が,項書き換えシステムの実行時性能の隘路である.本研究ではこの2点を効率よく通常の計算機上に実現するための手法を考案し,抽象機械としてまとめた.書き換え戦略に簡易戦略式に制限を加えた単純戦略式を用い,部分項を効率よく探索するためのデータ構造として戦略スタックを用い,また,パタンマッチを高速に行なうためのデータ構造として弁別ネットを用いた,抽象機械のプロトタイプをLispの方言であるSchemeで試作した結果,抽象機械の妥当性を確認できた. これをもとに,次年度以降では,並行に書き換えを行なうための機構を抽象機械に採り入れ,超並列計算機上に効率よく実現する手法を考案し,プロトタイプを試作する予定である.さらに,マルチセットを効率よく扱うための手法を抽象機械に組み入れ,抽象機械に基づく書き換えシステムで並行および分散オブジェクト指向システムを効率よく記述できるようにする.
|