Hostname: page-component-77f85d65b8-6bnxx Total loading time: 0 Render date: 2026-03-30T07:41:58.045Z Has data issue: false hasContentIssue false

Applicative bidirectional programming

Mixing lenses and semantic bidirectionalization

Published online by Cambridge University Press:  21 June 2018

KAZUTAKA MATSUDA
Affiliation:
Graduate School of Information Sciences, Tohoku University, Sendai 980-8579, Japan (e-mail: kztk@ecei.tohoku.ac.jp)
MENG WANG
Affiliation:
Department of Computer Science, University of Bristol, Bristol BS8 1TH, UK (e-mail: meng.wang@bristol.ac.uk)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

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 Voigtländer's semantic bidirectionalization, creating a new programming style that is able to obtain benefits from both.

Information

Type
Research Article
Copyright
Copyright © Cambridge University Press 2018 
Submit a response

Discussions

No Discussions have been published for this article.