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

Combining Unidirectional and Bidirectional Programming

Research Project

Project/Area Number 19K11892
Research Category

Grant-in-Aid for Scientific Research (C)

Allocation TypeMulti-year Fund
Section一般
Review Section Basic Section 60050:Software-related
Research InstitutionTohoku University

Principal Investigator

Matsuda Kazutaka  東北大学, 情報科学研究科, 准教授 (10583627)

Project Period (FY) 2019-04-01 – 2023-03-31
Project Status Discontinued (Fiscal Year 2022)
Budget Amount *help
¥4,550,000 (Direct Cost: ¥3,500,000、Indirect Cost: ¥1,050,000)
Fiscal Year 2022: ¥390,000 (Direct Cost: ¥300,000、Indirect Cost: ¥90,000)
Fiscal Year 2021: ¥1,170,000 (Direct Cost: ¥900,000、Indirect Cost: ¥270,000)
Fiscal Year 2020: ¥910,000 (Direct Cost: ¥700,000、Indirect Cost: ¥210,000)
Fiscal Year 2019: ¥2,080,000 (Direct Cost: ¥1,600,000、Indirect Cost: ¥480,000)
Keywordsプログラミング言語 / 関数プログラミング / 領域特化言語 / 双方向変換 / プログラム合成 / 可逆計算 / 可逆プログラミング / 線形型システム / 型推論 / 双方向プログラミング
Outline of Research at the Start

双方向変換は異なる種類の複数データ間の同期を可能とし,プログラミング言語,ソフトウェア工学,データベースなど様々な分野で注目を集めている.言語に基づく双方向変換の実装,すなわち双方向プログラミング言語の研究は双方向変換の基盤技術の一つであり,現在もなお盛んに研究されている.そうした中,双方向変換プログラミング言語の記述性と表現力は重要な課題である.

本研究では,(高階関数プログラミング等の)一方向のプログラミング技術と,双方向のプログラミング技術を融合させることが可能な言語を設計・実装することにより,この課題の解決を目指す.

Outline of Final Research Achievements

Bidirectional transformation, which enables synchronization among multiple data in different formats, attracts interest in various research areas, including programming languages and software engineering.
The main outcomes of this project are two folds. First, we designed and implemented a higher-order partially-invertible programming language Sparcl. In the language, users can mix irreversible and reversible computations while keeping the reversibility guarantee, which leads to more natural programs for many programs, such as dictionary-based compressions. Second, we realized a bidirectional-transformation synthesis system called Symbit, which effectively synthesizes a bidirectional program from a unidirectional program and input-output examples for its backward behavior.

Academic Significance and Societal Importance of the Research Achievements

双方向変換は,データベースにおけるビュー更新,GUI/Webアプリケーション作成,アンドゥ/リドゥ機能の実装や,相互変換処理の作成等,ソフトウェア開発における様々な応用を持つ.そのためプログラミング言語分野のみならず様々な分野で注目を集めているのは前述の通りである.本プロジェクトの成果は双方向プログラミング言語に関する基盤技術に関わるものであり,変換の記述をより容易にする.このことは,ひいては上記のような双方向変換を利用するソフトウェアの生産性の向上につながる.

Report

(4 results)
  • 2022 Final Research Report ( PDF )
  • 2021 Annual Research Report
  • 2020 Research-status Report
  • 2019 Research-status Report
  • Research Products

    (19 results)

All 2022 2021 2020 Other

All Int'l Joint Research (3 results) Journal Article (3 results) (of which Int'l Joint Research: 2 results,  Peer Reviewed: 3 results,  Open Access: 2 results) Presentation (4 results) (of which Int'l Joint Research: 1 results,  Invited: 1 results) Remarks (9 results)

  • [Int'l Joint Research] University of Bristol(英国)

    • Related Report
      2021 Annual Research Report
  • [Int'l Joint Research] University of Bristol(英国)

    • Related Report
      2020 Research-status Report
  • [Int'l Joint Research] University of Bristol(英国)

    • Related Report
      2019 Research-status Report
  • [Journal Article] Synbit: synthesizing bidirectional programs using unidirectional sketches2021

    • Author(s)
      Yamaguchi Masaomi、Matsuda Kazutaka、David Cristina、Wang Meng
    • Journal Title

      Proceedings of the ACM on Programming Languages

      Volume: 5 Issue: OOPSLA Pages: 1-31

    • DOI

      10.1145/3485482

    • Related Report
      2021 Annual Research Report
    • Peer Reviewed / Open Access / Int'l Joint Research
  • [Journal Article] Sparcl: a language for partially-invertible computation2020

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

      Proceedings of the ACM on Programming Languages

      Volume: 4 Issue: ICFP Pages: 1-31

    • DOI

      10.1145/3409000

    • Related Report
      2020 Research-status Report
    • Peer Reviewed / Open Access / Int'l Joint Research
  • [Journal Article] Modular Inference of Linear Types for Multiplicity-Annotated Arrows2020

    • Author(s)
      Kazutaka Matsuda
    • Journal Title

      Programming Languages and Systems - 29th European Symposium on Programming

      Volume: なし Pages: 456-483

    • DOI

      10.1007/978-3-030-44914-8_17

    • ISBN
      9783030449131, 9783030449148
    • Related Report
      2019 Research-status Report
    • Peer Reviewed
  • [Presentation] Synbit: synthesizing bidirectional programs using unidirectional sketches2022

    • Author(s)
      Yamaguchi Masaomi、Matsuda Kazutaka、David Cristina、Wang Meng
    • Organizer
      第24回プログラミングおよびプログラミング言語ワークショップ(PPL 2022)
    • Related Report
      2021 Annual Research Report
  • [Presentation] Sparcl: A Language for Partially-Invertible Computation2021

    • Author(s)
      Kazutaka Matsuda and Meng Wang
    • Organizer
      プログラミングおよびプログラミング言語ワークショップ
    • Related Report
      2020 Research-status Report
  • [Presentation] High-Level Language for Bidirectional Transformations: Experiences and Future Directions2020

    • Author(s)
      Kazutaka Matsuda
    • Organizer
      SFDI2020: Fourth Workshop on Software Foundations for Data Interoperability
    • Related Report
      2020 Research-status Report
    • Int'l Joint Research / Invited
  • [Presentation] Modular Inference of Linear Types for Multiplicity-Annotated Arrows2020

    • Author(s)
      Kazutaka Matsuda
    • Organizer
      日本ソフトウェア科学会第37回大会,トップカンファレンス特別講演
    • Related Report
      2020 Research-status Report
  • [Remarks] 本研究に関連の深い国際共同研究プロジェクトおよびその成果をまとめたウェブページ

    • URL

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

    • Related Report
      2021 Annual Research Report 2020 Research-status Report
  • [Remarks] 双方向プログラム合成システムSynbitの実装

    • URL

      https://github.com/masaomi-yamaguchi/synbit

    • Related Report
      2021 Annual Research Report
  • [Remarks] Synbitのデモページ

    • URL

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

    • Related Report
      2021 Annual Research Report
  • [Remarks] 研究代表者のWebページ

    • URL

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

    • Related Report
      2021 Annual Research Report
  • [Remarks] 可逆プログラミング言語Sparclの実装

    • URL

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

    • Related Report
      2020 Research-status Report
  • [Remarks] 可逆プログラミング言語Sparclに関するいくつかの性質のAgdaによる形式化

    • URL

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

    • Related Report
      2020 Research-status Report
  • [Remarks] 本研究に関連の深い国際共同研究プロジェクトおよびその成果をまとめたウェブページ

    • URL

      https://mengwangoxf.github.io/EXHIBIT/

    • Related Report
      2019 Research-status Report
  • [Remarks] 本報告書で言及した型推論器およびそれを用いた可逆プログラミング言語の実装

    • URL

      https://bitbucket.org/kztk/partially-reversible-lang-impl/

    • Related Report
      2019 Research-status Report
  • [Remarks] ESOP 2020論文のフルバージョン

    • URL

      https://arxiv.org/abs/1911.00268

    • Related Report
      2019 Research-status Report

URL: 

Published: 2019-04-18   Modified: 2024-01-30  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi