研究課題/領域番号 |
15K15966
|
研究機関 | 東北大学 |
研究代表者 |
松田 一孝 東北大学, 情報科学研究科, 准教授 (10583627)
|
研究期間 (年度) |
2015-04-01 – 2019-03-31
|
キーワード | プログラミング言語 / 関数プログラミング / プログラム変換 / 双方向変換 / 領域特化言語 |
研究実績の概要 |
本年度は,高階双方向変換プログラミング技術の基盤となる技法の開発に取り組んだ.双方向変換とは,通常の順方向の変換と,変換後のデータに対する更新を元データへと書き戻す逆方向の変換の二つからなる.双方向変換は,ビュー更新や異なる形式のデータの同期等,モデル駆動ソフトウェア開発におけるモデルの同期等に応用を持つ.これまで,双方向変換には通常の意味での高階双方向変換が存在しないことが知られており,高階双方向変換プログラミングは困難だと思われていた.
我々は,上記の第一歩として,研究代表者らの[Matsuda&Wang. PPDP 13, SCP14]の技法を拡張し,高階双方向プログラミングの枠組みを提案した.本提案手法により,ユーザは通常の順方向の関数プログラムにより近い形で,高階関数を用いて双方向変換をプログラミングすることが可能となる.本研究では圏論における「米田の埋め込み」と呼ばれる技法から着想を得て,双方向変換を通常の関数として扱うことを可能とし,高階双方向変換プログラミングを行うことを可能としている.また,双方向変換を通常の関数として扱うため,言語を埋め込み領域特化言語として実装することが容易になっていて,実際に我々はライブラリの形で提案システムを実装した.また,先行研究と同様に,テキスト処理やXMLクエリ,グラフ変換等の多様な変換を本枠組み上で記述できるという利点がある.
本成果はプログラミング言語理論分野のトップレベル国際会議の一つであるICFP 2015に採択された.また,実装をオープンソースライブラリとして公開した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
本年度の目標は,高階双方向変換プログラミングの基礎となる技術の研究であった.研究実績の概要に挙げたように,この目標は概ね達成された.
以上のことから,おおむね順調に進んでいると判断した.
|
今後の研究の推進方策 |
本年度の技法は双方向変換を,通常の関数プログラミングのように高階関数を用いて記述することを可能としたがまだ課題は多い.一つは反映可能な変更の種類である.たとえば,本年度の提案手法において挿入や削除などの構造に関する変更を反映可能にすることは可能であるが,それは記述性とトレードオフの関係にある.すなわち,通常の関数プログラミングに近い形でプログラムを書こうとすると,反映可能な更新は単純な個々の要素の変更に限定され挿入や削除といった構造に対する変更を反映することができなくなる.一方で,こうした変更を反映可能なように記述することも可能であるが,そうするためには通常の関数プログラミングとは異なったスタイルのプログラムを書く必要がある.この制約を緩和することは一つの研究目標であり,まずはこの研究課題に取り組みたい.
また,実行の効率や提案手法の応用事例等も重要な課題である.こちらについても研究を進めたい.
|