Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming 2010
DOI: 10.1145/1863543.1863571
|View full text |Cite
|
Sign up to set email alerts
|

Combining syntactic and semantic bidirectionalization

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 mor… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
44
0

Year Published

2011
2011
2018
2018

Publication Types

Select...
6
1

Relationship

3
4

Authors

Journals

citations
Cited by 28 publications
(44 citation statements)
references
References 19 publications
0
44
0
Order By: Relevance
“…Another, more recently active, strand of related work is that in bidirectionalization [17]. This, too, applies in the lens special case of bidirectional transformations.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Another, more recently active, strand of related work is that in bidirectionalization [17]. This, too, applies in the lens special case of bidirectional transformations.…”
Section: Related Workmentioning
confidence: 99%
“…In the lens scenario, giving a get function is equivalent to giving a consistency relation; m is consistent with n iff n = get(m). Key to [17] is a distinction between shape-preserving and shape-changing updates to a model. In the list case considered, the shape of a model is its length, while its content is the actual list elements.…”
Section: Related Workmentioning
confidence: 99%
“…Some approaches [17,22] compromise the expressiveness; others ignore the totality requirement [12,20,21]; others maintain totality, but weaken the round-tripping laws [6]; some relax both totality and round-tripping laws [13,10,9,8]; finally, it also possible to avoid compromising the laws by developing a more refined type system, as proposed in the original lens framework [5]: in order to preserve totality, a powerful semantic type system with invariants was used to specify the exact domain and range of lenses, which allowed the definition of duplication and conditional combinators as total well-behaved lenses. Unfortunately, to retain decidability in the type system, the expressiveness was still restricted by forcing composed lenses to agree not only on types but also on invariants.…”
Section: Application Scenario: Bidirectional Transformationsmentioning
confidence: 99%
“…Most BX approaches rely on more standard and decidable type systems, at the cost of a more limited expressiveness [17,22], by allowing partial transformations [12,20,21] or by assuming both partiality and weaker round-tripping laws [13,10,9,8]. More closely related to our approach, some frameworks derive the backward transformations by calculation, but are less expressive than ours.…”
Section: Related Workmentioning
confidence: 99%
“…Reversible languages include explicit postcondition assertions, the ability to "un-call" a reversible procedure, and the possibility of clean and garbage-free computation of injective functions. Janis Voigtländer described a complement-based approach to bidirectionalization [17] that automatically constructs a backward function from a forward function based on derivation of a constantcomplement. Three methods are introduced: algorithmic generation based on the syntactic representation of the forward function, a semantic approach from a polymorphic forward function using parametricity and free theorems, and an integration of the previous two.…”
Section: Programming Languages (Pl)mentioning
confidence: 99%