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...

Full description

Saved in:
Bibliographic Details
Published inJournal of logical and algebraic methods in programming Vol. 111; no. C; p. 100512
Main Authors Downen, Paul, Johnson-Freyd, Philip, Ariola, Zena M.
Format Journal Article
LanguageEnglish
Published Elsevier Inc 01.02.2020
Elsevier
Subjects
Online AccessGet full text

Cover

Loading…
More Information
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