本年度は,昨年度の行っていた双方後変換プログラムの構成問題にとりくみ,発展させた.双方向変換とは,通常の順方向の変換と,変換後のデータに対する更新を元データへと書き戻す逆方向の変換の二つからなる.双方向変換は,ビュー更新や異なる形式のデータの同期等に応用を持つ.一般には,順方向変換は単射でなく,順方向変換に対応した逆方向変換は複数あるという意味で,「一対一でない相互変換」の例になっている.
昨年度は,特定の型を持つ順方向の変換関数が与えられれば,対応した逆方向の変換関数を自動的に導出するという,双方向変換構成のためのプログラム変換を提案した.本年度は,昨年度の研究の内容を拡張し,入力データ内の同期の表現ができるようにした.たとえば,データベースにおいて,二つのテーブルの結合をあるキーをもとに結合するという変換を考える.このとき,変換後のデータにおいてキー列の値が更新されたら,その更新は二つのテーブルのどちらにも反映されてほしい.今年度に提案した拡張により,このような更新の反映方法が表現できるようになった.昨年度提案した手法と同様に本年度の手法も,順方向変換に対する要求が特定の型を持つことだけであり,ライブラリとして実装できるために利便性の高いものとなっている.また,順方向変換に要求される型は昨年度のものと同じであるため,プログラマの負担は拡張によって増加はしていない.昨年度の成果に上記の拡張を付け加えた内容は,学術雑誌 Science of Computer Programming に掲載が決定している.
|