Update semantics of relational views
ACM Transactions on Database Systems (TODS)
Derivatives of Regular Expressions
Journal of the ACM (JACM)
Finite-State Language Processing
Finite-State Language Processing
Lineage tracing for general data warehouse transformations
The VLDB Journal — The International Journal on Very Large Data Bases
Embedding an interpreted language using higher-order functions and types
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
A programmable editor for developing structured documents based on bidirectional transformations
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
FUNCTIONAL PEARL Pickler combinators
Journal of Functional Programming
PADS: a domain-specific language for processing ad hoc data
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Journal of Functional Programming
There and back again: arrows for invertible programming
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Relational lenses: a language for updatable views
Proceedings of the twenty-fifth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
biXid: a bidirectional transformation language for XML
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
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
Information Systems
Multi-language synchronization
ESOP'07 Proceedings of the 16th European conference on Programming
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 13th ACM SIGPLAN international conference on Functional programming
Towards an Algebraic Theory of Bidirectional Transformations
ICGT '08 Proceedings of the 4th international conference on Graph Transformations
Transforming Data by Calculation
Generative and Transformational Techniques in Software Engineering II
A Landscape of Bidirectional Model Transformations
Generative and Transformational Techniques in Software Engineering II
Bidirectionalization for free! (Pearl)
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Foundations for Bidirectional Programming
ICMT '09 Proceedings of the 2nd International Conference on Theory and Practice of Model Transformations
Bidirectional Transformations: A Cross-Discipline Perspective
ICMT '09 Proceedings of the 2nd International Conference on Theory and Practice of Model Transformations
Collateral evolution of applications and databases
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Combining syntactic and semantic bidirectionalization
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Matching lenses: alignment and view update
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Component adaptation and assembly using interface relations
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
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
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Calculating with lenses: optimising bidirectional transformations
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Model synchronization: mappings, tiles, and categories
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Dagstuhl seminar on bidirectional transformations (BX)
ACM SIGMOD Record
Incremental updates for efficient bidirectional transformations
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal network packet processing with minimal fuss: invertible syntax descriptions at work
PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
GRoundTram: An integrated framework for developing well-behaved bidirectional model transformations
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
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
A core calculus for provenance
POST'12 Proceedings of the First international conference on Principles of Security and Trust
Bidirectional model transformation with precedence triple graph grammars
ECMFA'12 Proceedings of the 8th European conference on Modelling Foundations and Applications
Three complementary approaches to bidirectional programming
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
Reconciling exhaustive pattern matching with objects
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Science of Computer Programming
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
A core calculus for provenance
Journal of Computer Security - Security and Trust Principles
Hi-index | 0.00 |
A lens is a bidirectional program. When read from left toright, it denotes an ordinary function that maps inputs to outputs. When read from right to left, it denotes an ''update translator'' that takes an input together with an updated output and produces a new input that reflects the update. Many variants of this idea have been explored in the literature, but none deal fully with ordered data. If, for example, an update changes the order of a list in theoutput, the items in the output list and the chunks of the input that generated them can be misaligned, leading to lost or corrupted data. We attack this problem in the context of bidirectional transformations over strings, the primordial ordered data type. We first propose a collection of bidirectional string lens combinators, based on familiar operations on regular transducers (union, concatenation, Kleene-star) and with a type system based on regular expressions. We then design anew semantic space of dictionary lenses, enriching the lenses of Foster et al. (2007) with support for two additional combinators for marking ''reorderable chunks'' andtheir keys. To demonstrate the effectiveness of these primitives, we describe the design and implementation of Boomerang, a full-blown bidirectional programming language with dictionary lenses at its core. We have used Boomerang to build transformers for complex real-world data format sincluding the SwissProt genomic database. We formalize the essential property of resourcefulness-the correct use of keys to associate chunks in the input and output-by defining a refined semantic space of quasi-oblivious lenses. Several previously studied properties of lenses turn out to have compact characterizations in this space.