License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/OASIcs.SLATE.2013.39
URN: urn:nbn:de:0030-drops-40294
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2013/4029/
Fourtounis, Georgios ;
Papaspyrou, Nikolaos S.
Supporting Separate Compilation in a Defunctionalizing Compiler
Abstract
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. 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 a compiler from a large subset of Haskell to low-level C code, based on the intensional transformation.
BibTeX - Entry
@InProceedings{fourtounis_et_al:OASIcs:2013:4029,
author = {Georgios Fourtounis and Nikolaos S. Papaspyrou},
title = {{Supporting Separate Compilation in a Defunctionalizing Compiler}},
booktitle = {2nd Symposium on Languages, Applications and Technologies},
pages = {39--49},
series = {OpenAccess Series in Informatics (OASIcs)},
ISBN = {978-3-939897-52-1},
ISSN = {2190-6807},
year = {2013},
volume = {29},
editor = {Jos{\'e} Paulo Leal and Ricardo Rocha and Alberto Sim{\~o}es},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2013/4029},
URN = {urn:nbn:de:0030-drops-40294},
doi = {10.4230/OASIcs.SLATE.2013.39},
annote = {Keywords: Defunctionalization, functional programming, modules, separate compilation}
}
Keywords: |
|
Defunctionalization, functional programming, modules, separate compilation |
Collection: |
|
2nd Symposium on Languages, Applications and Technologies |
Issue Date: |
|
2013 |
Date of publication: |
|
05.06.2013 |