Properties and update semantics of consistent views
ACM Transactions on Database Systems (TODS)
Update semantics of relational views
ACM Transactions on Database Systems (TODS)
On the correct translation of update operations on relational views
ACM Transactions on Database Systems (TODS)
PODS '85 Proceedings of the fourth ACM SIGACT-SIGMOD symposium on Principles of database systems
Shapely Types and Shape Polymorphism
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
Relational lenses: a language for updatable views
Proceedings of the twenty-fifth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
Exploiting schemas in data synchronization
Journal of Computer and System Sciences
Bidirectionalization transformation based on automatic derivation of view complement functions
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Boomerang: resourceful lenses for string data
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A programmable editor for developing structured documents based on bidirectional transformations
Higher-Order and Symbolic Computation
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Algebraic Models for Bidirectional Model Synchronization
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
Bidirectionalization for free! (Pearl)
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bidirectional Transformations: A Cross-Discipline Perspective
ICMT '09 Proceedings of the 2nd International Conference on Theory and Practice of Model Transformations
Supporting automatic model inconsistency fixing
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
CSF '09 Proceedings of the 2009 22nd IEEE Computer Security Foundations Symposium
From state- to delta-based bidirectional model transformations
ICMT'10 Proceedings of the Third international conference on Theory and practice of model transformations
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Gradual refinement: blending pattern matching with data abstraction
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Bidirectional model transformations in QVT: semantic issues and open questions
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LCPC'10 Proceedings of the 23rd international conference on Languages and compilers for parallel computing
Spreadsheet table transformations from examples
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Toward bidirectionalization of ATL with GRoundTram
ICMT'11 Proceedings of the 4th international conference on Theory and practice of model transformations
Incremental updates for efficient bidirectional transformations
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
From state- to delta-based bidirectional model transformations: the symmetric case
Proceedings of the 14th international conference on Model driven engineering languages and systems
Implementation of updateable object views in the ODRA OODBMS
OTM'11 Proceedings of the 2011th Confederated international conference on On the move to meaningful internet systems - Volume Part II
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A framework for the checking and refactoring of crosscutting concepts
ACM Transactions on Software Engineering and Methodology (TOSEM)
Linguistic foundations for bidirectional transformations: invited tutorial
PODS '12 Proceedings of the 31st symposium on Principles of Database Systems
Concurrent model synchronization with conflict resolution based on triple graph grammars
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
Multifocal: a strategic bidirectional transformation language for XML schemas
ICMT'12 Proceedings of the 5th international conference on Theory and Practice of Model Transformations
Three complementary approaches to bidirectional programming
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
Multi-tuple deletion propagation: approximations and complexity
Proceedings of the VLDB Endowment
Semantic bidirectionalization revisited
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Monadic combinators for "Putback" style bidirectional programming
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Bidirectional programming languages are a practical approach to the view update problem. Programs in these languages, called lenses, define both a view and an update policy - i.e., every program can be read as a function mapping sources to views as well as one mapping updated views back to updated sources. One thorny issue that has not received sufficient attention in the design of bidirectional languages is alignment. In general, to correctly propagate an update to a view, a lens needs to match up the pieces of the view with the corresponding pieces of the underlying source, even after data has been inserted, deleted, or reordered. However, existing bidirectional languages either support only simple strategies that fail on many examples of practical interest, or else propose specific strategies that are baked deeply into the underlying theory. We propose a general framework of matching lenses that parameterizes lenses over arbitrary heuristics for calculating alignments. We enrich the types of lenses with "chunks" identifying reorderable pieces of the source and view that should be re-aligned after an update, and we formulate behavioral laws that capture essential constraints on the handling of chunks. We develop a core language of matching lenses for strings, together with a set of "alignment combinators" that implement a variety of alignment strategies.