Translucent Abstraction: Safe Views through Invertible Programming (Extended version)

Pattern matching is advantageous for understanding and reasoning about function definitions, but it tends to tightly couple the interface and implementation of a datatype. Since Wadler's \"views\" proposal two decades ago, significant effort has been invested in tackling this non-modu...

Ausführliche Beschreibung

Bibliographische Detailangaben
Hauptverfasser: Wang, M, Gibbons, J, Matsuda, K
Format: Conference item
Veröffentlicht: 2009
_version_ 1826293606839746560
author Wang, M
Gibbons, J
Matsuda, K
author_facet Wang, M
Gibbons, J
Matsuda, K
author_sort Wang, M
collection OXFORD
description Pattern matching is advantageous for understanding and reasoning about function definitions, but it tends to tightly couple the interface and implementation of a datatype. Since Wadler's \"views\" proposal two decades ago, significant effort has been invested in tackling this non-modularity; however, decoupling views from representations while maintaining soundness of reasoning has been a challenge. Inspired by the development of invertible (bidirectional) programming, we propose a design of views based on a right-invertible language. The language is sufficiently expressive to capture many of the existing and some novel view applications, with simple and sound reasoning: views can be manipulated as if they were datatypes, and the manipulation preserves operational behaviour.
first_indexed 2024-03-07T03:32:44Z
format Conference item
id oxford-uuid:bb452621-991b-4996-b533-c1923c63d78f
institution University of Oxford
last_indexed 2024-03-07T03:32:44Z
publishDate 2009
record_format dspace
spelling oxford-uuid:bb452621-991b-4996-b533-c1923c63d78f2022-03-27T05:15:42ZTranslucent Abstraction: Safe Views through Invertible Programming (Extended version)Conference itemhttp://purl.org/coar/resource_type/c_5794uuid:bb452621-991b-4996-b533-c1923c63d78fDepartment of Computer Science2009Wang, MGibbons, JMatsuda, KPattern matching is advantageous for understanding and reasoning about function definitions, but it tends to tightly couple the interface and implementation of a datatype. Since Wadler's \"views\" proposal two decades ago, significant effort has been invested in tackling this non-modularity; however, decoupling views from representations while maintaining soundness of reasoning has been a challenge. Inspired by the development of invertible (bidirectional) programming, we propose a design of views based on a right-invertible language. The language is sufficiently expressive to capture many of the existing and some novel view applications, with simple and sound reasoning: views can be manipulated as if they were datatypes, and the manipulation preserves operational behaviour.
spellingShingle Wang, M
Gibbons, J
Matsuda, K
Translucent Abstraction: Safe Views through Invertible Programming (Extended version)
title Translucent Abstraction: Safe Views through Invertible Programming (Extended version)
title_full Translucent Abstraction: Safe Views through Invertible Programming (Extended version)
title_fullStr Translucent Abstraction: Safe Views through Invertible Programming (Extended version)
title_full_unstemmed Translucent Abstraction: Safe Views through Invertible Programming (Extended version)
title_short Translucent Abstraction: Safe Views through Invertible Programming (Extended version)
title_sort translucent abstraction safe views through invertible programming extended version
work_keys_str_mv AT wangm translucentabstractionsafeviewsthroughinvertibleprogrammingextendedversion
AT gibbonsj translucentabstractionsafeviewsthroughinvertibleprogrammingextendedversion
AT matsudak translucentabstractionsafeviewsthroughinvertibleprogrammingextendedversion