Defunctionalization is generally considered a whole-program transformation and thus incompatible with separate compilation. In this paper, we formalize a modular variant of …
Ornaments provide a way to express transformations of inductive datatypes that reorganize, specialize, and add fields to already existing datatypes. From such a transformation, we …
A Takano, E Meijer - … of the seventh international conference on …, 1995 - dl.acm.org
In functional programming, intermediate data structures are often used to “glue” together small programs. Deforestation is a program transformation to remove these intermediate …
F Pottier, N Gauthier - Higher-Order and Symbolic Computation, 2006 - Springer
Defunctionalization is a program transformation that eliminates functions as first-class values. We show that defunctionalization can be viewed as a type-preserving transformation …
H Li, C Reinke, S Thompson - Proceedings of the 2003 ACM SIGPLAN …, 2003 - dl.acm.org
Refactorings are source-to-source program transformations which change program structure and organisation, but not program functionality. Documented in catalogues and supported …
Vectorisation for functional programs, also called the flattening transformation, relies on drastically reordering computations and restructuring the representation of data types. As a …
JP Magalhaes - International Symposium on Functional and Logic …, 2014 - Springer
Generic programming, a form of abstraction in programming languages that serves to reduce code duplication by exploiting the regular structure of algebraic datatypes, has been …
F Domínguez, A Pardo - Workshop on Mathematically Structured …, 2006 - scienceopen.com
The design of programs as the composition of smaller ones is a wide spread approach to programming. In functional programming, this approach raises the necessity of creating a …
In functional languages intermediate data structures are often used as glue to connect separate parts of a program together. These intermediate data structures are useful because …