License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.CSL.2018.21
URN: urn:nbn:de:0030-drops-96886
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2018/9688/
Downen, Paul ;
Ariola, Zena M.
Beyond Polarity: Towards a Multi-Discipline Intermediate Language with Sharing
Abstract
The study of polarity in computation has revealed that an "ideal" programming language combines both call-by-value and call-by-name evaluation; the two calling conventions are each ideal for half the types in a programming language. But this binary choice leaves out call-by-need which is used in practice to implement lazy-by-default languages like Haskell. We show how the notion of polarity can be extended beyond the value/name dichotomy to include call-by-need by only adding a mechanism for sharing and the extra polarity shifts to connect them, which is enough to compile a Haskell-like functional language with user-defined types.
BibTeX - Entry
@InProceedings{downen_et_al:LIPIcs:2018:9688,
author = {Paul Downen and Zena M. Ariola},
title = {{Beyond Polarity: Towards a Multi-Discipline Intermediate Language with Sharing}},
booktitle = {27th EACSL Annual Conference on Computer Science Logic (CSL 2018)},
pages = {21:1--21:23},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-088-0},
ISSN = {1868-8969},
year = {2018},
volume = {119},
editor = {Dan Ghica and Achim Jung},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2018/9688},
URN = {urn:nbn:de:0030-drops-96886},
doi = {10.4230/LIPIcs.CSL.2018.21},
annote = {Keywords: call-by-need, polarity, call-by-push-value, control}
}
Keywords: |
|
call-by-need, polarity, call-by-push-value, control |
Collection: |
|
27th EACSL Annual Conference on Computer Science Logic (CSL 2018) |
Issue Date: |
|
2018 |
Date of publication: |
|
29.08.2018 |