Modular Polymorphic Defunctionalization
Computer Science and Information Systems, Tome 11 (2014) no. 4
Cet article a éte moissonné depuis la source Computer Science and Information Systems website
Defunctionalization is generally considered a whole-program transformation and thus incompatible with separate compilation. In this paper, we formalize a modular variant of defunctionalization which can support separate compilation for a functional programming language with parametric polymorphism. Our technique allows modules in a Haskell-like language to be separately defunctionalized and compiled, then linked together to generate an executable program. We provide a prototype implementation of our modular defunctionalization technique and we discuss the experiences of its application in compiling a large subset of Haskell to low-level C code, based on the intensional transformation.
Keywords:
defunctionalization, separate compilation, polymorphism, Haskell
@article{CSIS_2014_11_4_a11,
author = {Georgios Fourtounis and Nikolaos S. Papaspyrou and Panagiotis Theofilopoulos},
title = {Modular {Polymorphic} {Defunctionalization}},
journal = {Computer Science and Information Systems},
year = {2014},
volume = {11},
number = {4},
url = {http://geodesic.mathdoc.fr/item/CSIS_2014_11_4_a11/}
}
Georgios Fourtounis; Nikolaos S. Papaspyrou; Panagiotis Theofilopoulos. Modular Polymorphic Defunctionalization. Computer Science and Information Systems, Tome 11 (2014) no. 4. http://geodesic.mathdoc.fr/item/CSIS_2014_11_4_a11/