2006
DOI: 10.1007/s10990-006-0480-6
|View full text |Cite
|
Sign up to set email alerts
|

Call-by-push-value: Decomposing call-by-value and call-by-name

Abstract: We present the call-by-push-value (CBPV) calculus, which decomposes the typed call-by-value (CBV) and typed call-by-name (CBN) paradigms into fine-grain primitives. On the operational side, we give big-step semantics and a stack machine for CBPV, which leads to a straightforward push/pop reading of CBPV programs. On the denotational side, we model CBPV using cpos and, more generally, using algebras for a strong monad. For storage, we present an O'Hearn-style "behaviour semantics" that does not use a monad.We p… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

1
49
0

Year Published

2009
2009
2022
2022

Publication Types

Select...
7
1

Relationship

0
8

Authors

Journals

citations
Cited by 54 publications
(50 citation statements)
references
References 23 publications
1
49
0
Order By: Relevance
“…The methodology we follow here has its importance: we wish to interpret LJF as a system entirely justified using prooftheoretical arguments, rather than an ad-hoc system for particular strategies. This approach confirms the two natural representations of the most standard strategies -CBN and CBV -in the focused type system, but it also reveals the tight connection between LJF and call-by-push-value [25], in which the two standard strategies can be embedded. The relation between CBPV and focusing was conjectured but still unclear: we establish it in details and discuss their differences.…”
Section: Focusing and Computationsupporting
confidence: 69%
See 1 more Smart Citation
“…The methodology we follow here has its importance: we wish to interpret LJF as a system entirely justified using prooftheoretical arguments, rather than an ad-hoc system for particular strategies. This approach confirms the two natural representations of the most standard strategies -CBN and CBV -in the focused type system, but it also reveals the tight connection between LJF and call-by-push-value [25], in which the two standard strategies can be embedded. The relation between CBPV and focusing was conjectured but still unclear: we establish it in details and discuss their differences.…”
Section: Focusing and Computationsupporting
confidence: 69%
“…Then, we describe an abstract machine implementing cut elimination in the LJF system and show how it relates to the CK-style machine defined in the literature for CBPV [25].…”
Section: Focusing and Computationmentioning
confidence: 99%
“…We can extend both handlers and computations with other call-by-push-value types and terms [11,22]. A problem arises if we introduce thunks: handler terms then contain value terms, which contain thunked computation terms, which contain the handling construct.…”
Section: Computationsmentioning
confidence: 99%
“…For example, using a binary choice operation or : 2, a nondeterministically chosen boolean is given by the term or(return true, return false):F bool, where F σ stands for the type of computations that return values of type σ (we are working in Levy's call-by-push-value (CBPV) framework [11]). The equations of the theory, for example the ones stating that or is a semi-lattice operation, generate the free-model functor, which is used to interpret the type F σ.…”
Section: Introductionmentioning
confidence: 99%
“…-Investigating what semantic structures are needed in general models for effects. Indeed, we see the present work as a pilot study for studying general type theories and models of effects (e.g., [12,19]), in which we identify key ingredients needed for semantic modeling of general first-class references. -Paving the way for developing models of separation logic for ML-like languages with reference types.…”
Section: Introductionmentioning
confidence: 99%