Validity Checking of Putback Transformations in Bidirectional Programming

نویسندگان

  • Zhenjiang Hu
  • Hugo Pacheco
  • Sebastian Fischer
چکیده

A bidirectional transformation consists of pairs of transformations —a forward transformation get produces a target view from a source, while a putback transformation put puts back modifications on the view to the source— satisfying sensible roundtrip properties. Existing bidirectional approaches are get-based in that one writes (an artifact resembling) a forward transformation and a corresponding backward transformation can be automatically derived. However, the unavoidable ambiguity that stems from the underspecification of put often leads to unpredictable bidirectional behavior, making it hard to solve nontrivial practical synchronization problems with existing bidirectional transformation approaches. Theoretically, this ambiguity problem could be solved by writing put directly and deriving get , but differently from programming with get it is easy to write invalid put functions. An open challenge is how to check whether the definition of a putback transformation is valid, while guaranteeing that the corresponding unique get exists. In this paper, we propose, as far as we are aware, the first safe language for supporting putback-based bidirectional programming. The key to our approach is a simple but powerful language for describing primitive putback transformations. We show that validity of putback transformations in this language is decidable and can be automatically checked. A particularly elegant and strong aspect of our design is that we can simply reuse and apply standard results for treeless functions and tree transducers in the specification of our checking algorithms.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

BiYacc: Roll Your Parser and Reflective Printer into One

Language designers usually need to implement parsers and printers. Despite being two related programs, in practice they are designed and implemented separately. This approach has an obvious disadvantage: as a language evolves, both its parser and printer need to be separately revised and kept synchronised. Such tasks are routine but complicated and error-prone. To facilitate these tasks, we pro...

متن کامل

Brul: A Putback-Based Bidirectional Transformation Library for Updatable Views

In work on relational databases, the view-update problem is about how to translate update operations on the view table to corresponding update operations on the source table properly. It is a problem that the translation policies are not unique in many situations. Relational lenses try to solve this problem by providing a list of combinators that let the user write get functions (queries) with ...

متن کامل

Checking Proof Transformations with ASP

Proof transformation is an important proof theoretic technique that has been used for showing a number of foundational results about proof systems. For instance, it is used for showing the admissibility of the cutrule and the completeness of proof search strategies, such as uniform provability and the focusing discipline. However, in order to check the validity of a proof transformation, such a...

متن کامل

MATHEMATICAL ENGINEERING TECHNICAL REPORTS Type Specialization for Effective Bidirectionalization

A bidirectional transformation is a pair of transformations, a forward transformation and a backward transformation, where a forward transformation maps one data structure called source to another called view, and a corresponding backward transformation reflects changes on the view to the source. Its practical applications include replicated data synchronization, presentation-oriented editor de...

متن کامل

Type Checking with XML Schema in XACT

We show how to extend the program analysis technique used in the Xact system to support XML Schema as type formalism. Moreover, we introduce optional type annotations to improve modularity of the type checking. The resulting system supports a flexible style of programming XML transformations and provides static guarantees of validity of the generated XML data.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014