Call-By-Push-Value: A Subsuming Paradigm
Massimo Dentico
m.dentico@galactica.it
Mon, 04 Dec 2000 06:40:38 +0100
Paul Blain Levy, "Call-By-Push-Value: A Subsuming Paradigm"
- http://www.disi.unige.it/conferences/appsem98/proceedings/levy.ps.gz
- http://citeseer.nj.nec.com/357549.html
==================================================================
Abstract. Call-by-push-value is a new paradigm that subsumes the
call-by-name and call-by-value paradigms, in the following sense:
both operational and denotational semantics for those paradigms
can be seen as arising, via translations that we will provide,
from similar semantics for call-by-push-value.
To explain call-by-push-value, we first discuss general
operational ideas, especially the distinction between values and
computations, using the principle that "a value is, a computation
does". Using an example program, we see that the lambda-calculus
primitives can be understood as push/pop commands for an operand-
stack.
We provide operational and denotational semantics for a range of
computational effects and show their agreement. We hence obtain
semantics for call-by-name and call-by-value, of which some are
familiar, some are new and some were known but previously appeared
mysterious.
[...]
10 Practical Issues
CBPV has emerged as a common theoretical foundation for CBN and
CBV. We speculate that, with the addition of suitable syntactic
sugar, it could provide a basis for a practical programming
language. Firstly, the operand-stack interpretation of lambda and
application illustrated in Sect. 2.3 seems fairly intuitive.
Secondly, the separation of the two parts of CBV lambda-
abstraction (viz. thunk and lambda) makes currying of functions -
problematic in CBV (cf. [16]) — as easy as in CBN, because of the
isomorphism
~
(A x A’) -> B = A -> (A’ -> B)
¯ ¯
Furthermore (CBPV gives rise to more equivalences than either
CBN or CBV which could benefit implementers. Specifically, the
comparatively simple continuation semantics of Sect. 6 might allow
efficient compilation along the lines of [3].
[...]
==================================================================
Proceedings of APPSEM'98 (ESPRIT WG APPlied SEMantics)
- http://www.disi.unige.it/conferences/appsem98/proceedings/
Esprit Working Group 26142 - Applied Semantics
- http://www.md.chalmers.se/Cs/Research/Semantics/APPSEM/
--
Massimo Dentico