Skip to main content
Kent Academic Repository

Composing bidirectional programs monadically

Xia, Li-Yao, Orchard, Dominic A., Wang, Meng (2019) Composing bidirectional programs monadically. Lecture Notes in Computer Science, 11423 . pp. 147-175. ISSN 0302-9743. (doi:10.1007/978-3-030-17184-1_6) (KAR id:72625)

PDF Publisher pdf
Language: English


Download this file
(PDF/1MB)
[thumbnail of Composing Bidirectional Programs Monadically.pdf]
Request a format suitable for use with assistive technology e.g. a screenreader
PDF Author's Accepted Manuscript
Language: English

Restricted to Repository staff only
Contact us about this Publication
[thumbnail of paper.pdf]
Official URL:
https://doi.org/10.1007/978-3-030-17184-1_6

Abstract

Software frequently converts data from one representation to another and vice versa. Naively specifying both conversion directions separately is error prone and introduces conceptual duplication. Instead, bidirectional programming techniques allow programs to be written which can be interpreted in both directions. However, these techniques often employ unfamiliar programming idioms via restricted, specialised combinator libraries. Instead, we introduce a framework for composing bidirectional programs monadically, enabling bidirectional programming with familiar abstractions in functional languages such as Haskell. We demonstrate the generality of our approach applied to parsers/printers, lenses, and generators/predicates. We show how to leverage compositionality and equational reasoning for the verification of round-tripping properties for such monadic bidirectional programs.

Item Type: Article
DOI/Identification number: 10.1007/978-3-030-17184-1_6
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Funders: Organisations -1 not found.
Depositing User: Dominic Orchard
Date Deposited: 19 Feb 2019 15:44 UTC
Last Modified: 10 Jan 2024 21:38 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/72625 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.