Defining functions by pattern matching over the arguments is advantageousfor understanding and reasoning, but it tends to expose the implementationof a datatype. Significant effort has been invested in tackling this lossof modularity; however, decoupling patterns from concrete representationswhile maintaining soundness of reasoning has been a challenge. Inspired bythe development of invertible programming, we propose an approach to program refactoring based on a right-invertible 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, while maintaining simple and ...
Abstract. We present a method for automatic program inversion in a first-order functional programmin...
Ornaments provide a way to express transformations of inductive datatypes that reorganize, specializ...
AbstractThis paper formally describes and studies an algorithm for compiling functions defined throu...
Defining functions by pattern matching over the arguments is advantageousfor understanding and reaso...
Defining functions by pattern matching over the arguments is advantageous for understanding and reas...
Pattern matching is advantageous for understanding and reasoning about function definitions, but it ...
Pattern matching is advantageous for understanding and reasoning about function definitions, but it ...
Pattern matching is advantageous for understanding and reasoning about function definitions, but it ...
Functional programs often define functions by pattern matching where patterns may inadvertedly overl...
National audienceProgram transformation is a common practice in computer science, and its many appli...
AbstractThe theory of programming with pattern-matching function definitions has been studied mainly...
The theory of programming with pattern-matching function definitions has been studied mainly in the ...
Abstract. Program inversion has many applications such as in the im-plementation of serialization/de...
Abstract. Program inversion has many applications such as in the im-plementation of serialization/de...
This paper presents matching logic, a first-order logic (FOL) variant forspecifying and reasoning ab...
Abstract. We present a method for automatic program inversion in a first-order functional programmin...
Ornaments provide a way to express transformations of inductive datatypes that reorganize, specializ...
AbstractThis paper formally describes and studies an algorithm for compiling functions defined throu...
Defining functions by pattern matching over the arguments is advantageousfor understanding and reaso...
Defining functions by pattern matching over the arguments is advantageous for understanding and reas...
Pattern matching is advantageous for understanding and reasoning about function definitions, but it ...
Pattern matching is advantageous for understanding and reasoning about function definitions, but it ...
Pattern matching is advantageous for understanding and reasoning about function definitions, but it ...
Functional programs often define functions by pattern matching where patterns may inadvertedly overl...
National audienceProgram transformation is a common practice in computer science, and its many appli...
AbstractThe theory of programming with pattern-matching function definitions has been studied mainly...
The theory of programming with pattern-matching function definitions has been studied mainly in the ...
Abstract. Program inversion has many applications such as in the im-plementation of serialization/de...
Abstract. Program inversion has many applications such as in the im-plementation of serialization/de...
This paper presents matching logic, a first-order logic (FOL) variant forspecifying and reasoning ab...
Abstract. We present a method for automatic program inversion in a first-order functional programmin...
Ornaments provide a way to express transformations of inductive datatypes that reorganize, specializ...
AbstractThis paper formally describes and studies an algorithm for compiling functions defined throu...