Bidirectionalization transformation based on automatic derivation of view complement functions

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

Research output: Contribution to journalArticlepeer-review

20 Citations (Scopus)


Bidirectional transformation is a pair of transformations: a view function and a backward transformation. A view function maps one data structure called source onto another called view. The corresponding backward transformation reflects changes in the view to the source. Its practically useful applications include replicated data synchronization, presentation-oriented editor development, tracing software development, and view updating in the database community. However, developing a bidirectional transformation is hard, because one has to give two mappings that satisfy the bidirectional properties for system consistency. In this paper, we propose a new framework for bidirectionalization that can automatically generate a useful backward transformation from a view function while guaranteeing that the two transformations satisfy the bidirectional properties. Our framework is based on two known approaches to bidirectionalization, namely the constant complement approach from the database community and the combinator approach from the programming language community, but it has three new features: (1) unlike the constant complement approach, it can deal with transformations between algebraic data structures rather than just tables; (2) unlike the combinator approach, in which primitive bidirectional transformations have to be explicitly given, it can derive them automatically; (3) it generates a view update checker to validate updates on views, which has not been well addressed so far. The new framework has been implemented and the experimental results show that our framework has promise.

Original languageEnglish
Pages (from-to)47-58
Number of pages12
JournalACM SIGPLAN Notices
Issue number9
Publication statusPublished - 2007 Sept


  • Automatic Program Generation
  • Bidirectional Transformation
  • Program Inversion
  • Program Transformation
  • View Updating


Dive into the research topics of 'Bidirectionalization transformation based on automatic derivation of view complement functions'. Together they form a unique fingerprint.

Cite this