Abstracting models of strong normalization for classical calculi
Modern programming languages have effects and mix multiple calling conventions, and their core calculi should too. We characterize calling conventions by their “substitution discipline” that says what variables stand for, and design calculi for mixing disciplines in a single program. Building on var...
Saved in:
Published in | Journal of logical and algebraic methods in programming Vol. 111; no. C; p. 100512 |
---|---|
Main Authors | , , |
Format | Journal Article |
Language | English |
Published |
Elsevier Inc
01.02.2020
Elsevier |
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | Modern programming languages have effects and mix multiple calling conventions, and their core calculi should too. We characterize calling conventions by their “substitution discipline” that says what variables stand for, and design calculi for mixing disciplines in a single program. Building on variations of the reducibility candidates method, including biorthogonality and symmetric candidates which are both specialized for one discipline, we develop a single uniform framework for strong normalization encompassing call-by-name, call-by-value, call-by-need, call-by-push-value, non-deterministic disciplines, and any others satisfying some simple criteria. We explicate commonalities of previous methods and show they are special cases of the uniform framework and they extend to multi-discipline programs. |
---|---|
Bibliography: | SAND-2019-15278J NA0003525; AC04-94AL85000 USDOE National Nuclear Security Administration (NNSA) |
ISSN: | 2352-2208 |
DOI: | 10.1016/j.jlamp.2019.100512 |