• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2020 年度 実施状況報告書

一方向プログラミングと双方向プログラミングの融合

研究課題

研究課題/領域番号 19K11892
研究機関東北大学

研究代表者

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

研究期間 (年度) 2019-04-01 – 2023-03-31
キーワードプログラミング言語 / 関数プログラミング / 双方向変換 / 可逆プログラミング
研究実績の概要

本研究の目的は一方向プログラミング技術と双方向プログラミング技術の融合により,現実的な労力での双方向プログラミングを行うことができるプログラミング言語の設計である.
可逆プログラミングは双方向プログラミングの特殊な場合の一つであり,またそれ自身が重要な問題である.これまでの可逆プログラミング言語は,可逆な処理を基本とし,それを組み合わせることによって可逆プログラムを構成していた.しかしながら,可逆な処理は単射でなければならないため制限が強く,またしばしば単純な例についても不自然なプログラミングを要求してしまう.一方で,より多くの処理が一部の引数を「固定」することにより単射となることが知られていたが,そうした部分可逆(partially invertible)な処理を基本とするようなプログラミング言語はこれまで存在していなかった.
研究代表者らは,部分可逆な処理を基本とするような線形型付き高階部分可逆プログラミング言語Sparclを提案した.この言語では,可逆に扱われるデータとそうでないデータが型によって区別されている(可逆型).可逆型により,可逆な関数な関数を可逆型間の関数として,また部分可逆な関数をさらに可逆型でない型の引数を追加でとる関数として統一的に表現できる.また,Sparclはさらに, Sparclは可逆型の値を局所的に「固定」して普通の型の値の変換するための演算子pinを提供している.これらにより,Sparclでは可逆プログラミングを比較的自然な形で記述することが可能になっている.
この研究の成果はプログラミング言語理論分野のトップレベル国際会議の一つICFP 2020に採録された.

現在までの達成度 (区分)
現在までの達成度 (区分)

2: おおむね順調に進展している

理由

ICFPはプログラミング言語理論分野のトップレベル国際会議の一つであり,それに採録されたというのは非常に大きな成果である.そのため,「おおむね順調に進展している」と判断した.

今後の研究の推進方策

本年度の成果の発展としていくつの方向性が考えられる.
まずは,Sparclにおいて導入したpin演算子の有効性をより一般的な双方向変換の文脈で確認することである.入力が「固定」することができることは,更新の反映法をユーザが明示的に指定することのみならず,更新の反映の順序を記述することにもつながる.そのため,可逆プログラミング以上に双方向プログラミングにおける重要性は大きいことが期待される.
また,言語の効率化や表現力の強化も一つの課題である.具体的には,逆方向変換を値から値への関数とするのではなく更新から更新への変換とすることである.こうした更新の変換を行うアプローチを過去にも様々試みられてきたが,漸増計算の技術を利用することで現在の高階双方向プログラミング言語の枠組みを破壊することなくこういったアプローチを応用可能であると期待している.
別の方向性としては,例によるプログラミング(programming by example)等のプログラム合成(program synthesis)の技法との融合である.これまで,研究代表者らは,比較的自然な形でプログラミングが可能であるような双方向プログラミング技法について研究してきたが,双方向プログラミングは双方向の挙動を考える難しさがあるため通常のプログラミングに比べ難度が高い.しかしながら,HOBiTやSparclといった比較的順方向のプログラムに近い形で双方向プログラムを記述可能であるため,順方向プログラムを雛形として用い,それと逆方向の動作例から双方向プログラムが合成できれば,プログラミングのコストの逓減に有効であると予想される.

次年度使用額が生じた理由

次年度使用額が生じること自体は基金化されている経費では通常のことであるが,今年大きく次年度使用額が生じた主な理由は,コロナウィルスの影響で多くの国内外の会議がオンライン開催になり,また研究打ち合わせのための出張が行えなくなったためである.その分の予算は,研究を効率的に進めるための計算機や周辺機器等の購入などにあてる計画である.

  • 研究成果

    (8件)

すべて 2021 2020 その他

すべて 国際共同研究 (1件) 雑誌論文 (1件) (うち国際共著 1件、 査読あり 1件、 オープンアクセス 1件) 学会発表 (3件) (うち国際学会 1件、 招待講演 1件) 備考 (3件)

  • [国際共同研究] University of Bristol(英国)

    • 国名
      英国
    • 外国機関名
      University of Bristol
  • [雑誌論文] Sparcl: a language for partially-invertible computation2020

    • 著者名/発表者名
      Matsuda Kazutaka、Wang Meng
    • 雑誌名

      Proceedings of the ACM on Programming Languages

      巻: 4 ページ: 1~31

    • DOI

      10.1145/3409000

    • 査読あり / オープンアクセス / 国際共著
  • [学会発表] Sparcl: A Language for Partially-Invertible Computation2021

    • 著者名/発表者名
      Kazutaka Matsuda and Meng Wang
    • 学会等名
      プログラミングおよびプログラミング言語ワークショップ
  • [学会発表] High-Level Language for Bidirectional Transformations: Experiences and Future Directions2020

    • 著者名/発表者名
      Kazutaka Matsuda
    • 学会等名
      SFDI2020: Fourth Workshop on Software Foundations for Data Interoperability
    • 国際学会 / 招待講演
  • [学会発表] Modular Inference of Linear Types for Multiplicity-Annotated Arrows2020

    • 著者名/発表者名
      Kazutaka Matsuda
    • 学会等名
      日本ソフトウェア科学会第37回大会,トップカンファレンス特別講演
  • [備考] 本研究に関連の深い国際共同研究プロジェクトおよびその成果をまとめたウェブページ

    • URL

      https://bx-lang.github.io/EXHIBIT/

  • [備考] 可逆プログラミング言語Sparclの実装

    • URL

      https://github.com/kztk-m/sparcl

  • [備考] 可逆プログラミング言語Sparclに関するいくつかの性質のAgdaによる形式化

    • URL

      https://github.com/kztk-m/sparcl-agda

URL: 

公開日: 2021-12-27  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi