Skip to main content

Semantic Bidirectionalization Revisited

Wang, Meng and Najd, Shayan (2014) Semantic Bidirectionalization Revisited. In: Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation. PEPM Partial Evaluation and Program Manipulation . ACM, New York, USA. ISBN 978-1-4503-2619-3. (doi:10.1145/2543728.2543729) (KAR id:47482)

PDF Publisher pdf
Language: English
Download (593kB)
[thumbnail of local_193995.pdf]
This file may not be suitable for users of assistive technology.
Request an accessible format
Official URL:


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. Over the years, a lot of effort has been made to offer better language support for programming such transformations, essentially allowing the programmers to construct one mapping of the pair and have the other automatically generated.

As an alternative to creating specialized new languages, one can try to analyse and transform programs written in general purpose languages, and

"bidirectionalize" them. Among others, a technique termed as semantic bidirectionalization stands out in term of user-friendliness. The unidirectional program can be written using arbitrary language constructs, as long as the function is polymorphic and the language constructs respect parametricity. The free theorem that follows from the polymorphic type of the program allows a kind of forensic examination of the transformation, determining its effect without examining its implementation. This is convenient, in the sense that the programmer is not restricted to using a particular syntax; but it does require the transformation to be polymorphic.

In this paper, we revisit the idea of semantic bidirectionalization and reveal the elegant principles behind the current state-of-the-art techniques. Guided by the findings, we derive much simpler implementations that scale easily.

Item Type: Book section
DOI/Identification number: 10.1145/2543728.2543729
Uncontrolled keywords: Bidirectional Transformation, Free Theorem, Haskell, View-Update Problem
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 75 Electronic computers. Computer science
Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Meng Wang
Date Deposited: 01 Mar 2015 00:42 UTC
Last Modified: 10 Dec 2022 02:33 UTC
Resource URI: (The current URI for this page, for reference purposes)
  • Depositors only (login required):


Downloads per month over past year