[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1291151.1291162acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

Bidirectionalization transformation based on automatic derivation of view complement functions

Published: 01 October 2007 Publication History

Abstract

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.

References

[1]
F. Bancilhon and N. Spyratos. Update semantics of relational views. ACM T. Database Syst., 6(4):557--575, 1981.
[2]
V. P. Braganholo, S. B. Davidson, and C. A. Heuser. From XML view updates to relational view updates: old solutions to a new problem. In VLDB '04: International Conference on Very Large Data Bases, pages 276--287, 2004.
[3]
H. Comon, M. Dauchet, R. Gilleron, F. Jacquemard, D. Lugiez, S. Tison, and M. Tommasi. Tree automata techniques and applications. http://www.grappa.univ-lille3.fr/tata, 1997.
[4]
S. S. Cosmadakis and C. H. Papadimitriou. Updates of relational views. J. ACM, 31(4):742--760, 1984.
[5]
U. Dayal and P. A. Bernstein. On the correct translation of update operations on relational views. ACM T. Database Syst., 7(3):381--416, 1982.
[6]
J. Engelfriet. Bottom-up and Top-down Tree Transformations. A Comparison. Math. Syst. Theory, 9(3):198--231, 1975.
[7]
J. N. Foster, M. B. Greenwald, J. T. Moore, B. C. Pierce, and A. Schmitt. Combinators for bi-directional tree transformations: a linguistic approach to the view update problem. In POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 233--246, 2005.
[8]
G. Gottlob, P. Paolini, and R. Zicari. Properties and update semantics of consistent views. ACM T. Database Syst., 13(4):486--524, 1988.
[9]
S. J. Hegner. Foundations of canonical update support for closed database views. In ICDT '90: Proceedings of the Third International Conference on Database Theory, pages 422--436, 1990.
[10]
Z. Hu, S.-C. Mu, and M. Takeichi. A programmable editor for developing structured documents based on bidirectional transformations. In PEPM '04: Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pages 178--189, 2004.
[11]
R. Lämmel. Coupled software transformations (extended abstract). In First International Workshop on Software Evolution Transformations, pages 31--35, 2004.
[12]
D. Laurent, J. Lechtenbörger, N. Spyratos, and G. Vossen. Monotonic complements for independent data warehouses. VLDB J., 10(4):295--315, 2001.
[13]
J. Lechtenbörger and G. Vossen. On the computation of relational view complements. ACM T. Database Syst., 28(2):175--208, 2003.
[14]
K. Matsuda, Z. Hu, K. Nakano, M. Hamana, and M. Takeichi. Bidirectionalization transformation based on automatic derivation of view complement function. Technical Report 2007-44, Graduate School of Information Science and Technology, the University of Tokyo, 2007.
[15]
L. Meertens. Designing constraint maintainers for user interaction. http://www.cwi.nl/~lambert, 1998.
[16]
S.-C. Mu, Z. Hu, and M. Takeichi. An algebraic approach to bidirectional updating. In APLAS '04: Second ASIAN Symposium on Programming Languages and Systems, pages 2--18, 2004.
[17]
P. Wadler. Views: a way for pattern matching to cohabit with data abstraction. In POPL '87: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pages 307--313, 1987.
[18]
P. Wadler. Deforestation: Transforming programs to eliminate trees. Theor. Comput. Sci., 73(2):231--248, 1990.
[19]
L. Wang and E. A. Rundensteiner. On the updatability of XML views published over relational data. In ER 2004: International Conference on Conceptual Modeling, pages 795--809, 2004.

Cited By

View all
  • (2024)Partial Bidirectionalization of Model Transformation LanguagesProceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems10.1145/3640310.3674083(1-12)Online publication date: 22-Sep-2024
  • (2024) Sparcl : A language for partially invertible computation Journal of Functional Programming10.1017/S095679682300012634Online publication date: 26-Jan-2024
  • (2024)Bidirectional Programming in BIRDSBidirectional Collaborative Data Management10.1007/978-981-97-6429-7_1(3-24)Online publication date: 12-Dec-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICFP '07: Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
October 2007
346 pages
ISBN:9781595938152
DOI:10.1145/1291151
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 42, Issue 9
    Proceedings of the ICFP '07 conference
    September 2007
    331 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1291220
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. automatic program generation
  2. bidirectional transformation
  3. program inversion
  4. program transformation
  5. view updating

Qualifiers

  • Article

Conference

ICFP07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 333 of 1,064 submissions, 31%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)0
Reflects downloads up to 11 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Partial Bidirectionalization of Model Transformation LanguagesProceedings of the ACM/IEEE 27th International Conference on Model Driven Engineering Languages and Systems10.1145/3640310.3674083(1-12)Online publication date: 22-Sep-2024
  • (2024) Sparcl : A language for partially invertible computation Journal of Functional Programming10.1017/S095679682300012634Online publication date: 26-Jan-2024
  • (2024)Bidirectional Programming in BIRDSBidirectional Collaborative Data Management10.1007/978-981-97-6429-7_1(3-24)Online publication date: 12-Dec-2024
  • (2024)From Reversible Computation to Checkpoint-Based Rollback Recovery for Message-Passing Concurrent ProgramsFormal Aspects of Component Software10.1007/978-3-031-52183-6_6(103-123)Online publication date: 13-Jan-2024
  • (2023)Contract lenses: Reasoning about bidirectional programs via calculationJournal of Functional Programming10.1017/S095679682300005933Online publication date: 6-Nov-2023
  • (2023)Reverse Template Processing Using Abstract InterpretationStatic Analysis10.1007/978-3-031-44245-2_18(403-433)Online publication date: 24-Oct-2023
  • (2022)Compiling Quantamorphisms for the IBM Q ExperienceIEEE Transactions on Software Engineering10.1109/TSE.2021.311751548:11(4339-4356)Online publication date: 1-Nov-2022
  • (2022)Generic recursive lens combinators and their calculation lawsTheoretical Computer Science10.1016/j.tcs.2022.02.019913:C(113-137)Online publication date: 20-Apr-2022
  • (2022)Synbit: synthesizing bidirectional programs using unidirectional sketchesFormal Methods in System Design10.1007/s10703-023-00436-961:2-3(198-247)Online publication date: 1-Dec-2022
  • (2021)Synbit: synthesizing bidirectional programs using unidirectional sketchesProceedings of the ACM on Programming Languages10.1145/34854825:OOPSLA(1-31)Online publication date: 15-Oct-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media