A Language for Bidirectional Updating Based on Injective Mapping

Shin-Cheng Mu,Zhenjiang Hu,M. Takeichi
2004-01-01
Abstract:With the popularity of XML, bidirectional updating – maintaining the consistency between two pieces of structured data, again becomes a problem of interest. In this paper we propose a new framework, inspired by program inversion, to look at this problem. We design a functional language, Inv, in which all programs are injective and their inverses can be trivially constructed. The language is equivalent to reversible Turing machines and expressive enough to describe most transforms one would need. It is assumed that the data to be synchronised are related by a transform written in Inv. The semantics of Inv is then extended to deal with bidirectional updating. Given a transform, its synchronisation behaviour can be derived by algebraic reasoning. The main feature of our approach is being able to deal with duplication and structural changes.
What problem does this paper attempt to address?