Applicative Bidirectional Programming with Lenses

被引:0
|
作者
Matsuda, Kazutaka [1 ]
Wang, Meng [2 ]
机构
[1] Tohoku Univ, Sendai, Miyagi 980, Japan
[2] Univ Kent, Canterbury CT2 7NZ, Kent, England
关键词
Bidirectional Programming; Lens; Bidirectionalization; Free Theorem; Functional Programming; Haskell; Languages;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A bidirectional transformation is a pair of mappings between source and view data objects, one in each direction. When the view is modified, the source is updated accordingly with respect to some laws. One way to reduce the development and maintenance effort of bidirectional transformations is to have specialized languages in which the resulting programs are bidirectional by construction-giving rise to the paradigm of bidirectional programming. In this paper, we develop a framework for applicative-style and higher-order bidirectional programming, in which we can write bidirectional transformations as unidirectional programs in standard functional languages, opening up access to the bundle of language features previously only available to conventional unidirectional languages. Our framework essentially bridges two very different approaches of bidirectional programming, namely the lens framework and Voigtlander's semantic bidirectionalization, creating a new programming style that is able to bag benefits from both.
引用
收藏
页码:62 / 74
页数:13
相关论文
共 50 条
  • [22] An Axiomatic Basis for Bidirectional Programming
    Ko, Hsiang-Shang
    Hu, Zhenjiang
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2
  • [23] Prodirect Manipulation: Bidirectional Programming for the Masses
    Chugh, Ravi
    2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C), 2016, : 781 - 784
  • [24] Bidirectional dynamic programming for stereo matching
    Sorgi, Lorenzo
    Neri, Alessandro
    2006 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, ICIP 2006, PROCEEDINGS, 2006, : 1013 - +
  • [25] Monadic Combinators for "Putback" Style Bidirectional Programming
    Pacheco, Hugo
    Hu, Zhenjiang
    Fischer, Sebastian
    PEPM '14: PROCEEDINGS OF THE ACM SIGPLAN WORKSHOP ON PARTIAL EVALUATION AND PROGRAM MANIPULATION, 2014, : 39 - 50
  • [26] Towards Bidirectional Live Programming for Incomplete Programs
    Zhang, Xing
    Hu, Zhenjiang
    2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2022), 2022, : 2154 - 2164
  • [27] Contract lenses: Reasoning about bidirectional programs via calculation
    Zhang, Hanliang
    Tang, Wenhao
    Xie, Ruifeng
    Wang, Meng
    Hu, Zhenjiang
    JOURNAL OF FUNCTIONAL PROGRAMMING, 2023, 33 (04)
  • [28] Validity Checking of Putback Transformations in Bidirectional Programming
    Hu, Zhenjiang
    Pacheco, Hugo
    Fischer, Sebastian
    FM 2014: FORMAL METHODS, 2014, 8442 : 1 - 15
  • [29] APPLICATIVE ASSERTIONS
    MOLLER, B
    LECTURE NOTES IN COMPUTER SCIENCE, 1989, 375 : 348 - 362