研究課題/領域番号 |
24700020
|
研究機関 | 東京大学 |
研究代表者 |
松田 一孝 東京大学, 情報理工学(系)研究科, 助教 (10583627)
|
キーワード | プログラミング言語 / プログラム変換 / 関数プログラミング / プログラム逆計算 / 双方向変換 |
研究概要 |
本年度は,主に双方向変換プログラムの構成問題に取り組んだ.双方向変換とは,通常の順方向の変換と,変換後のデータに対する更新を元データへと書き戻す逆方向の変換の二つからなる.双方向変換は,ビュー更新や異なる形式のデータの同期等に応用を持つ.一般には,順方向変換は単射でなく,順方向変換に対応した逆方向変換は複数あるという意味で,「一対一でない相互変換」の例になっている. 我々は,双方向変換構成のためプログラム変換技法を提案した.この手法は,特定の型を持つ順方向の変換関数が与えられれば,対応した逆方向の変換関数を自動的に導出する.この手法の利点は四つある.一つ目の利点は,自動導出により,得られた双方向変換が「振る舞いのよい」ものであることが数学的に保証されている.二つ目は,順方向の変換関数が特定の型を持ちさえすれば,どのようなプログラムに対しても対応した逆方向の変換関数の導出が可能である点である.よって,ユーザは高階関数等を用いて柔軟に順方向変換関数を実装することが可能である.三つ目は,本手法はライブラリ,特に高階関数として実装可能である.このことは,ユーザが既存のプログラミング言語を利用して順方向変換関数を記述することができ,また,その関数は他のライブラリの関数を自由に利用することが可能である.このことは,ユーザにとって利便性が高い.四つ目は,XMLクエリやグラフ変換等の多くの順方向の変換関数を取り扱えることである.これまで,一つ目から三つ目までの利点を持つ手法は知られていたが,変換プログラムが多相的であることを要求していたため実用的な変換を扱うことができなかった.本手法の主な貢献は,この制約を許め,既存手法を拡張し,テキスト処理やXMLクエリ,グラフ変換等に適用可能にしたことである.本手法の実装は,オープンソースライブラリとして公開されている.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
当初の今年度の予定であった圧縮・展開プログラムの構成については,研究を進めなかった.このことは,研究対象である圧縮・展開プログラムについて検討を行ったところ,逆計算技術のベンチマークとしては有用なのものの,それを自動構成することで得られる利点は少ないと判断したためである.この判断の根拠は,現実的には,特定の圧縮・展開プログラム・ライブラリが用いられることが多く,ユーザが自由に圧縮または展開プログラムを書くことはあまりないことによる. しかしながら,当初の計画にあった代替案である双方向変換の構成問題(ビュー更新問題)に対しては「研究実績の概要」に書いたような成果が得られた. 以上のことから,おおむね順調に進んでいると判断した.
|
今後の研究の推進方策 |
平成24年度の成果(整形出力プログラムから構文解析プログラムの生成)は,今年度の成果のような双方向変換技術と組み合せることにより,二つの異なる形式のテキスト表現同士(たとえば,設定ファイルとそのXML表現や)を同期することが可能となることが期待される. しかしながら,現状の研究成果において,現実的な例を扱うには様々な問題がある.その中の一つは,平成24年度の成果をそのまま利用したので,元のテキスト表現にあったコメントやレイアウトの情報が失なわれてしまうことである.そのため,元のレイアウトやコメントをできるだけ利用する整形出力を行う領域特化言語の作成とその言語で記述されたプログラムから構文解析プログラムの生成技術が必要となる.また他の問題の一つは,今年度の提案手法は,扱える順方向の変換関数は特定の型さえ持てばどのような関数でもよかったが,反映可能な更新については限定的であるということである.具体的には,今年度の成果では,たとえばリストや木に対する要素の挿入や削除などのデータ構造に対する更新は,元データへと反映することはできない.この手法を改良し,様々な更新を扱えるようにすることは課題の一つである. 平成26年度は,上記に挙げた問題の解決に取り組み,平成24年度の成果を平成25年度の成果の組み合わせて利用することにより,より多くの「一対一でない相互変換」の自動構成を行えるようにすることを目指す.
|
次年度の研究費の使用計画 |
航空券や物品等が,当初の見積りよりも廉価で目的に添うものが見つかったため. 国内外の研究者との意見交換のための旅費や研究を円滑にすすめるための物品の購入に活用する.
|