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
Now showing 1 - 1 of 1
Thumbnail Image
Name:
P-00K-HQE.pdf
Size:
382.34 KB
Format:
Adobe Portable Document Format
Description: