Synthesizing bijective lenses
Abstract
Bidirectional transformations between different data representations occur frequently in modern software systems. They appear as serializers and deserializers, as parsers and pretty printers, as database views and view updaters, and as a multitude of different kinds of ad hoc data converters. Manually building bidirectional transformations---by writing two separate functions that are intended to be inverses---is tedious and error prone. A better approach is to use a domain-specific language in which both directions can be written as a single expression. However, these domain-specific languages can be difficult to program in, requiring programmers to manage fiddly details while working in a complex type system.
Document Details
- Document Type
- Pub Defense Publication
- Publication Date
- Dec 27, 2017
- Source ID
- 10.1145/3158089
Entities
People
- Anders Miltner
- Benjamin C. Pierce
- David Walker
- Kathleen Fisher
- Steve Zdancewic
Organizations
- Defense Advanced Research Projects Agency
- Office of Naval Research
- Princeton University
- Tufts University
- University of Pennsylvania