• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2015 Fiscal Year Research-status Report

双方向変換記述のための高階関数プログラミング言語

Research Project

Project/Area Number 15K15966
Research InstitutionTohoku University

Principal Investigator

松田 一孝  東北大学, 情報科学研究科, 准教授 (10583627)

Project Period (FY) 2015-04-01 – 2019-03-31
Keywordsプログラミング言語 / 関数プログラミング / プログラム変換 / 双方向変換 / 領域特化言語
Outline of Annual Research Achievements

本年度は,高階双方向変換プログラミング技術の基盤となる技法の開発に取り組んだ.双方向変換とは,通常の順方向の変換と,変換後のデータに対する更新を元データへと書き戻す逆方向の変換の二つからなる.双方向変換は,ビュー更新や異なる形式のデータの同期等,モデル駆動ソフトウェア開発におけるモデルの同期等に応用を持つ.これまで,双方向変換には通常の意味での高階双方向変換が存在しないことが知られており,高階双方向変換プログラミングは困難だと思われていた.

我々は,上記の第一歩として,研究代表者らの[Matsuda&Wang. PPDP 13, SCP14]の技法を拡張し,高階双方向プログラミングの枠組みを提案した.本提案手法により,ユーザは通常の順方向の関数プログラムにより近い形で,高階関数を用いて双方向変換をプログラミングすることが可能となる.本研究では圏論における「米田の埋め込み」と呼ばれる技法から着想を得て,双方向変換を通常の関数として扱うことを可能とし,高階双方向変換プログラミングを行うことを可能としている.また,双方向変換を通常の関数として扱うため,言語を埋め込み領域特化言語として実装することが容易になっていて,実際に我々はライブラリの形で提案システムを実装した.また,先行研究と同様に,テキスト処理やXMLクエリ,グラフ変換等の多様な変換を本枠組み上で記述できるという利点がある.

本成果はプログラミング言語理論分野のトップレベル国際会議の一つであるICFP 2015に採択された.また,実装をオープンソースライブラリとして公開した.

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

本年度の目標は,高階双方向変換プログラミングの基礎となる技術の研究であった.研究実績の概要に挙げたように,この目標は概ね達成された.

以上のことから,おおむね順調に進んでいると判断した.

Strategy for Future Research Activity

本年度の技法は双方向変換を,通常の関数プログラミングのように高階関数を用いて記述することを可能としたがまだ課題は多い.一つは反映可能な変更の種類である.たとえば,本年度の提案手法において挿入や削除などの構造に関する変更を反映可能にすることは可能であるが,それは記述性とトレードオフの関係にある.すなわち,通常の関数プログラミングに近い形でプログラムを書こうとすると,反映可能な更新は単純な個々の要素の変更に限定され挿入や削除といった構造に対する変更を反映することができなくなる.一方で,こうした変更を反映可能なように記述することも可能であるが,そうするためには通常の関数プログラミングとは異なったスタイルのプログラムを書く必要がある.この制約を緩和することは一つの研究目標であり,まずはこの研究課題に取り組みたい.

また,実行の効率や提案手法の応用事例等も重要な課題である.こちらについても研究を進めたい.

  • Research Products

    (5 results)

All 2015 Other

All Journal Article (2 results) (of which Int'l Joint Research: 2 results,  Peer Reviewed: 2 results,  Acknowledgement Compliant: 1 results,  Open Access: 1 results) Presentation (1 results) Remarks (2 results)

  • [Journal Article] Applicative Bidirectional Programming with Lenses2015

    • Author(s)
      Kazutaka Matsuda and Meng Wang
    • Journal Title

      Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming

      Volume: なし Pages: 62--74

    • DOI

      10.1145/2784731.2784750

    • Peer Reviewed / Int'l Joint Research / Acknowledgement Compliant
  • [Journal Article] Trace-based Approach to Editability and Correspondence Analysis for Bidirectional Graph Transformations2015

    • Author(s)
      Soichiro Hidaka, Martin Billes, Quang Minh Tran, and Kazutaka Matsuda
    • Journal Title

      Proceedings of the 4th International Workshop on Bidirectional Transformations

      Volume: なし Pages: 51--65

    • Peer Reviewed / Open Access / Int'l Joint Research
  • [Presentation] Applicative Bidirectional Programming with Lenses2015

    • Author(s)
      Kazutaka Matsuda and Meng Wang
    • Organizer
      日本ソフトウェア科学会第32回大会
    • Place of Presentation
      早稲田大学(東京)
    • Year and Date
      2015-09-08 – 2015-09-11
  • [Remarks] 研究者代表者ホームページ

    • URL

      http://www2.sf.ecei.tohoku.ac.jp/~kztk/

  • [Remarks] 実装したライブラリの入手先

    • URL

      https://hackage.haskell.org/package/app-lens

URL: 

Published: 2017-01-06  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi