研究実績の概要 |
本研究では、可逆プログラミング言語の設計、および可逆プログラミング方法論の確立を目的とした。まずわれわれは既存のインタプリタの概念を拡張して可逆インタプリタの定義を定めた。McCarthyの生成・テストやLevinの万能検索を構築するのには、線形時間可逆自己解釈が行える万能可逆言語を用いる必要がある。線形時間可逆自己解釈可能性というのは,その言語の表現力の高さを示す特徴である.われわれは,この性質をもつ簡潔な可逆言語R-WHILEを発表した。R-WHILEは、木構造のデータの構築と分解を言語レベルでサポートしていることを特徴のひとつとする。プログラム逆変換は一般には完全に解けない問題であるが、R-WHILEプログラムには必ず逆プログラムが存在することが保証され、わずか数行の逆変換器でその変換が実現される。さらに、処理系の実装を行ってウェブページでソースコードとオンラインインタプリタを公開して、本研究成果の利用が容易になるようにした。線形可逆自己解釈系の実現において、Bennettの方法、可逆ループ、互いに直行な書き換え規則プログラム逆変換などの様々な可逆プログラミング手法が応用された。 一般可逆シミュレーションには、研究の蓄積があるが、個別のアルゴリズムの研究には未だ手つかずのものが多い。われわれは、単射アルゴリズムの例として二分木のランク・アンランク計算を効率的な計算を可逆的に実現した。得られたアルゴリズムのひとつはfaithful, hygienic, パスの数といった指標で効率が良いことが証明された。こうした可逆シミュレーションの導出は、経験や勘を使っており、システマティックに導出する方法の研究は今後の課題である。 以上のように、プログラミング言語レベルとアルゴリズムレベルにおいて、交付申請書において述べた可逆の塔の実現に、貢献できたといえる。
|