Gradual Refinement Blending Pattern Matching with Data Abstraction
| Citations: | 3 - 2 self |
BibTeX
@MISC{Wang_gradualrefinement,
author = {Meng Wang and Jeremy Gibbons and Kazutaka Matsuda and Zhenjiang Hu},
title = {Gradual Refinement Blending Pattern Matching with Data Abstraction},
year = {}
}
OpenURL
Abstract
Abstract. Pattern matching is advantageous for understanding and reasoning about function definitions, but it tends to tightly couple the interface and implementation of a datatype. Significant effort has been invested in tackling this loss of modularity; however, decoupling patterns from concrete representations while maintaining soundness of reasoning has been a challenge. Inspired by the development of invertible programming, we propose an approach to abstract datatypes based on a rightinvertible language rinv—every function has a right (or pre-) inverse. We show how this new design is able to permit a smooth incremental transition from programs with algebraic datatypes and pattern matching, to ones with proper encapsulation (implemented as abstract datatypes), while maintaining simple and sound reasoning.







