A calculus of expandable stores: Continuation-and-environment-passing style translations
Hugo Herbelin, Étienne Miquey
Abstract
The call-by-need evaluation strategy for the λ-calculus is an evaluation strategy that lazily evaluates arguments only if needed, and if so, shares computations across all places where it is needed. To implement this evaluation strategy, abstract machines require some form of global environment. While abstract machines usually lead to a better understanding of the flow of control during the execution, facilitating in particular the definition of continuation-passing style translations, the case of machines with global environments turns out to be much more subtle.
The main purpose of this paper is to understand how to type a continuation-and-environment-passing style translation, that is to say how to soundly translate in continuationpassing style a calculus with global environment. To this end, we introduce F ϒ , a generic calculus to define the target of such translations. In particular, F ϒ features a data type for typed stores and a mechanism of explicit coercions witnessing store extensions along environment-passing style translations. On the logical side, this broadly amounts to a Kripke forcing-like translation mixed with a negative translation (for the continuation-passing part). Since F ϒ allows for the definition of such translations for different source calculi (call-by-need, call-by-name, call-by-value) with different type systems (simple types, system F), we claim that it precisely captures the computational content of continuationand-environment-passing style translations.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext d0528c7c-e0bb-4b6d-a018-6507a70e70baBuilds on1
Related papers
- Back to Direct Style: Typed and TightMarius Müller, Philipp Schuster, Jonathan Immanuel Brachthäuser, Klaus OstermannOOPSLA 2023 · 3 citations
- Strong Call-by-Value is Reasonable, ImplosivelyBeniamino Accattoli, Andrea Condoluci, Claudio Sacerdoti CoenLICS 2021 · 21 citations
- Polymorphic Reachability Types: Tracking Freshness, Aliasing, and Separation in Higher-Order Generic ProgramsGuannan Wei, Oliver Bracevac, Songlin Jia, Yuyan Bao et al.POPL 2024 · 12 citations
- Trace-based control-flow analysisBenoît Montagu, Thomas P. JensenPLDI 2021 · 13 citations
- Effects and Coeffects in Call-by-Push-ValueCassia Torczon, Emmanuel Suárez Acevedo, Shubh Agrawal, Joey Velez-Ginorio et al.OOPSLA 2024 · 5 citations
