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
This work is licensed under a Creative Commons Attribution 4.0 International License.
|
|
Download this file (PDF/1MB) |
|
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
|
|
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: | 05 Nov 2024 12:35 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/72625 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):