Bidirectionalizing programs with duplication through complementary function derivation

Kazutaka Matsuda, Zhenjiang Hu, Keisuke Nakano, Makoto Hamana, Masato Takeichi

Research output: Contribution to journalArticlepeer-review

6 Citations (Scopus)


A bidirectional transformation consists of a pair of unidirectional transformations: a forward transformation that maps one data structure called source to another called view, and a backward transformation that reflects changes in the view to the source. Bidirectional transformation has many useful applications such as replicated data synchronization, presentation-oriented editor development, and software artifact synchronization. In a previous work, we proposed a framework in which a backward transformation is automatically generated from a forward transformation by derivation of a complementary function if the forward transformation is given by a program in a simple functional language. However, the language has a severe restriction that no variable is allowed to be used more than once. In this paper, we show that tupling transformation relaxes this restriction, allowing us to handle a wider class of bidirectional transformations that may contain duplications.

Original languageEnglish
Pages (from-to)56-75
Number of pages20
JournalComputer Software
Issue number2
Publication statusPublished - 2009
Externally publishedYes

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'Bidirectionalizing programs with duplication through complementary function derivation'. Together they form a unique fingerprint.

Cite this