Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2008
DOI: 10.1145/1328438.1328487
|View full text |Cite
|
Sign up to set email alerts
|

Boomerang

Abstract: A lens is a bidirectional program. When read from left to right, 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 the output, the items in the output list and the chunks of t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
19
0

Year Published

2012
2012
2024
2024

Publication Types

Select...
7
2

Relationship

0
9

Authors

Journals

citations
Cited by 110 publications
(20 citation statements)
references
References 20 publications
1
19
0
Order By: Relevance
“…Narcissus has a similar motivation to bidirectional programming languages [Bohannon et al 2008;Mu et al 2004] in which programs can be run łin reversež to map target values to the source values that produced them. The bidirectional programming language Boomerang adopts a similar combinator-based approach to deriving transformations between target and source values.…”
Section: 3: Decodermentioning
confidence: 99%
See 1 more Smart Citation
“…Narcissus has a similar motivation to bidirectional programming languages [Bohannon et al 2008;Mu et al 2004] in which programs can be run łin reversež to map target values to the source values that produced them. The bidirectional programming language Boomerang adopts a similar combinator-based approach to deriving transformations between target and source values.…”
Section: 3: Decodermentioning
confidence: 99%
“…Boomerang [Bohannon et al 2008] is a bidirectional programming language for projecting transformations on a data view back to the original source data; in contrast to Narcissus, Boomerang does not require that the original source values can be recovered from a target view. Boomerang programs are built using a collection of lens combinators, which include get, put, and create operations for transporting modifications between source and target representations.…”
Section: Related Workmentioning
confidence: 99%
“…Synchronization tools are normally built on some underlying algebraic theory [28,53,40,5,2,41,30], and many such tools (the first five amongst those cited above) use algebraic theories based on state-based rather than delta-based operations. The state-based version of the propagation scenario in Fig.…”
Section: Bx: Delta-based Vs State-basedmentioning
confidence: 99%
“…As mentioned above, understanding the semantics of model synchronization procedures is important, both theoretically and practically. Synchronization tools are normally built on some underlying algebraic theory [28,53,40,4,1,41,30], and many such tools (the first five amongst those cited above) use algebraic theories based on state-based rather than delta-based operations. The state-based version of the propagation scenario in Fig.…”
Section: Bx: Delta-based Vs State-basedmentioning
confidence: 99%