Modular polymorphic defunctionalization

G Fourtounis, NS Papaspyrou… - Computer Science and …, 2014 - doiserbia.nb.rs
Defunctionalization is generally considered a whole-program transformation and thus
incompatible with separate compilation. In this paper, we formalize a modular variant of …

Supporting separate compilation in a defunctionalizing compiler

G Fourtounis, NS Papaspyrou - 2nd Symposium on Languages …, 2013 - drops.dagstuhl.de
Defunctionalization is generally considered a whole-program transformation and thus
incompatible with separate compilation. In this paper, we formalize a modular variant of …

Refactoring functional programs with ornaments

A Williams - 2020 - inria.hal.science
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 …

[PDF][PDF] Shortcut deforestation in calculational form

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 …

Polymorphic typed defunctionalization and concretization

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 …

Tool support for refactoring functional programs

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 …

[PDF][PDF] Partial vectorisation of Haskell programs

MMT Chakravarty, R Leshchinskiy, SP Jones… - Proc ACM Workshop on …, 2008 - Citeseer
Vectorisation for functional programs, also called the flattening transformation, relies on
drastically reordering computations and restructuring the representation of data types. As a …

Generic programming with multiple parameters

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 …

Program fusion with paramorphisms

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 …

[PDF][PDF] Catamorphism-based program transformations for non-strict functional languages

L Németh - 2000 - theses.gla.ac.uk
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 …