License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.FSCD.2022.32
URN: urn:nbn:de:0030-drops-163138
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2022/16313/
McDermott, Dylan ;
Mycroft, Alan
Galois Connecting Call-by-Value and Call-by-Name
Abstract
We establish a general framework for reasoning about the relationship between call-by-value and call-by-name.
In languages with side-effects, call-by-value and call-by-name executions of programs often have different, but related, observable behaviours. For example, if a program might diverge but otherwise has no side-effects, then whenever it terminates under call-by-value, it terminates with the same result under call-by-name. We propose a technique for stating and proving these properties. The key ingredient is Levy’s call-by-push-value calculus, which we use as a framework for reasoning about evaluation orders. We construct maps between the call-by-value and call-by-name interpretations of types. We then identify properties of side-effects that imply these maps form a Galois connection. These properties hold for some side-effects (such as divergence), but not others (such as mutable state). This gives rise to a general reasoning principle that relates call-by-value and call-by-name. We apply the reasoning principle to example side-effects including divergence and nondeterminism.
BibTeX - Entry
@InProceedings{mcdermott_et_al:LIPIcs.FSCD.2022.32,
author = {McDermott, Dylan and Mycroft, Alan},
title = {{Galois Connecting Call-by-Value and Call-by-Name}},
booktitle = {7th International Conference on Formal Structures for Computation and Deduction (FSCD 2022)},
pages = {32:1--32:19},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-233-4},
ISSN = {1868-8969},
year = {2022},
volume = {228},
editor = {Felty, Amy P.},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/opus/volltexte/2022/16313},
URN = {urn:nbn:de:0030-drops-163138},
doi = {10.4230/LIPIcs.FSCD.2022.32},
annote = {Keywords: computational effect, evaluation order, call-by-push-value, categorical semantics}
}
Keywords: |
|
computational effect, evaluation order, call-by-push-value, categorical semantics |
Collection: |
|
7th International Conference on Formal Structures for Computation and Deduction (FSCD 2022) |
Issue Date: |
|
2022 |
Date of publication: |
|
28.06.2022 |