Content deleted Content added
m fixed sentence |
m style |
||
Line 1:
{{technical|date=December 2014}}
In [[programming language theory]], the '''call-by-push-value''' ('''CBPV''') paradigm,<ref>{{cite journal|title=Call-by-Push-Value: A Subsuming Paradigm|author=Paul Blain Levy}}</ref> inspired by [[Monad (functional programming)|monads]], allows writing semantics for lambda-calculus without writing two variants to deal with the difference between '''call-by-name''' and '''call-by-value'''. To do so, CBPV
This is especially useful when dealing with the semantics of different side effects, such as nontermination, mutable state or nondeterminism. Instead of giving two variants of the semantics, one for the call-by-name evaluation order and one for the call-by-value one, one can simply give a semantics for the CBPV term language; one gets two semantics for lambda-calculus by composing this CBPV semantics with the same CBV and CBN translations from lambda-calculus.
|