Abstract
Matsuda et al. [2007, ICFP] and Voigtländer [2009, POPL] introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Being fundamentally different in approach, both techniques have their respective strengths and weaknesses. Here we develop a synthesis of the two techniques to good effect. On the intersection of their applicability domains we achieve more than what a simple union of applying the techniques side by side delivers.
Supplemental Material
- }}S. Antoy and M. Hanus. Functional logic programming. Communications of the ACM, 53(4):74--85, 2010. Google Scholar
Digital Library
- }}F. Bancilhon and N. Spyratos. Update semantics of relational views. ACM Transactions on Database Systems, 6(3):557--575, 1981. Google Scholar
Digital Library
- }}A. Bohannon, B. C. Pierce, and J. A. Vaughan. Relational lenses: A language for updatable views. In Principles of Database Systems, Proceedings, pages 338--347. ACM Press, 2006. Google Scholar
Digital Library
- }}A. Bohannon, J. N. Foster, B. C. Pierce, A. Pilkiewicz, and A. Schmitt. Boomerang: Resourceful lenses for string data. In Principles of Programming Languages, Proceedings, pages 407--419. ACM Press, 2008. Google Scholar
Digital Library
- }}K. Czarnecki, J. N. Foster, Z. Hu, R. Lämmel, A. Schürr, and J. F. Terwilliger. Bidirectional transformations: A cross-discipline perspective. In International Conference on Model Transformation, Proceedings, volume 5563 of LNCS, pages 260--283. Springer-Verlag, 2009. Google Scholar
Digital Library
- }}J. N. Foster, M. B. Greenwald, J. T. Moore, B. C. Pierce, and A. Schmitt. Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Transactions on Programming Languages and Systems, 29(3):17, 2007. Google Scholar
Digital Library
- }}J. N. Foster, A. Pilkiewicz, and B. C. Pierce. Quotient lenses. In International Conference on Functional Programming, Proceedings, pages 383--395. ACM Press, 2008. Google Scholar
Digital Library
- }}J. Giesl. Context-moving transformations for function verification. In Logic-Based Program Synthesis and Transformation 1999, Selected Papers, volume 1817 of LNCS, pages 293--312. Springer-Verlag, 2000. Google Scholar
Digital Library
- }}J. Giesl, A. Kühnemann, and J. Voigtländer. Deaccumulation techniques for improving provability. Journal of Logic and Algebraic Programming, 71(2):79--113, 2007.Google Scholar
Cross Ref
- }}G. Gottlob, P. Paolini, and R. Zicari. Properties and update semantics of consistent views. ACM Transactions on Database Systems, 13(4):486--524, 1988. Google Scholar
Digital Library
- }}Z. Hu, S.-C. Mu, and M. Takeichi. A programmable editor for developing structured documents based on bidirectional transformations. In Partial Evaluation and Semantics-Based Program Manipulation, Proceedings, pages 178--189. ACM Press, 2004. Google Scholar
Digital Library
- }}A. M. Keller. Comments on Bancilhon and Spyratos' "Update semantics and relational views". ACM Transactions on Database Systems, 12(3):521--523, 1987. Google Scholar
Digital Library
- }}K. Matsuda, Z. Hu, K. Nakano, M. Hamana, and M. Takeichi. Bidirectionalization transformation based on automatic derivation of view complement functions. In International Conference on Functional Programming, Proceedings, pages 47--58. ACM Press, 2007. Google Scholar
Digital Library
- }}K. Matsuda, Z. Hu, K. Nakano, M. Hamana, and M. Takeichi. Bidirectionalizing programs with duplication through complementary function derivation. Computer Software, 26(2):56--75, 2009.Google Scholar
- }}A. Pettorossi. Transformation of programs and use of tupling strategy. In Informatica, Proceedings, pages 1--6, 1977.Google Scholar
- }}J. C. Reynolds. Types, abstraction and parametric polymorphism. In Information Processing, Proceedings, pages 513--523. Elsevier, 1983.Google Scholar
- }}C. Strachey. Fundamental concepts in programming languages. Lecture notes for a course at the International Summer School in Computer Programming, 1967. Reprint appeared in Higher-Order and Symbolic Computation, 13(1-2):11--49, 2000. Google Scholar
Digital Library
- }}J. Voigtländer. Bidirectionalization for free! In Principles of Programming Languages, Proceedings, pages 165--176. ACM Press, 2009. Google Scholar
Digital Library
- }}P. Wadler. Theorems for free! In Functional Programming Languages and Computer Architecture, Proceedings, pages 347--359. ACM Press, 1989. Google Scholar
Digital Library
- }}P. Wadler. Deforestation: Transforming programs to eliminate trees. Theoretical Computer Science, 73(2):231--248, 1990. Google Scholar
Digital Library
Index Terms
Combining syntactic and semantic bidirectionalization
Recommendations
Bidirectionalization for free! (Pearl)
POPL '09A bidirectional transformation consists of a function get that takes a source (document or value) to a view and a function put that takes an updated view and the original source back to an updated source, governed by certain consistency conditions ...
Combining syntactic and semantic bidirectionalization
ICFP '10: Proceedings of the 15th ACM SIGPLAN international conference on Functional programmingMatsuda et al. [2007, ICFP] and Voigtländer [2009, POPL] introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard ...
Incremental updates for efficient bidirectional transformations
ICFP '11A bidirectional transformation is a pair of mappings between source and view data objects, one in each direction. When the view is modified, the source is updated accordingly. The key to handling large data objects that are subject to relatively small ...







Comments