Monadic combinators for "Putback" style bidirectional programming
Monadic combinators for "Putback" style bidirectional programming
dc.contributor.author | Hugo Pereira Pacheco | en |
dc.contributor.author | Hu,Z | en |
dc.contributor.author | Fischer,S | en |
dc.date.accessioned | 2018-01-18T09:50:35Z | |
dc.date.available | 2018-01-18T09:50:35Z | |
dc.date.issued | 2014 | en |
dc.description.abstract | Bidirectional transformations, in particular lenses, are programs with a forward get transformation and a backward putback transformation that keep source and view data types synchronized. Several bidirectional programming languages exist to aid programmers in writing a (sort of) forward transformation, and deriving a backward transformation for free. However, the maintainability offered by such languages comes at the cost of expressiveness and (more importantly) predictability because the ambiguity of synchronization -handled by the putback transformation- is solved by default strategies over which programmers have little control. In this paper, we argue that controlling such ambiguity is essential for bidirectional transformations and propose a novel language in which programmers write a (sort of) putback transformation, and get the unique get transformation for free. Like traditional bidirectional languages, our put-oriented language allows reasoning about the correctness of defined transformations from the properties of their building blocks. But it allows programmers to describe the behavior of a bidirectional transformation much more precisely, while retaining the maintainability of writing a single program. We demonstrate the practical power of the new approach through a series of examples, ranging from simple ones that illustrate traditional lenses to complex ones for which our putback-based approach is central to specifying nontrivial update strategies. Categories and Subject Descriptors D.1.1 [Programming Techniques]: Applicative (Functional) Programming; D.3.1 [Programming Languages]: Formal Definitions and Theory; F.3.2 [Logics and Meanings of Programs]: Semantics of Programming Languages-Algebraic approaches to semantics. | en |
dc.identifier.uri | http://repositorio.inesctec.pt/handle/123456789/6878 | |
dc.identifier.uri | http://dx.doi.org/10.1145/2543728.2543737 | en |
dc.language | eng | en |
dc.relation | 5647 | en |
dc.rights | info:eu-repo/semantics/openAccess | en |
dc.title | Monadic combinators for "Putback" style bidirectional programming | en |
dc.type | conferenceObject | en |
dc.type | Publication | en |
Files
Original bundle
1 - 1 of 1