Call-by-push-value とは

プログラミング言語理論では、モナドに触発されたCBPV(call-by-push-value)パラダイムは、名前による呼び出しとcall-by-valueの違いに対処するための2つの変種を記述することなく、ラムダ計算のセマンティクスを書くことを可能にします。そうするために、CBPVは、計算と値を区別する用語言語を導入します。値はスローガンに応じて計算されます。この用語の言語は単一の評価指図を持っています。しかし、コール・バイ・ネーム(CBN)またはコールバイバリュー(CBV)削減戦略に従ってラムダ計算用語を評価するためには、名前による呼出しまたは呼出しによる呼出しを使用してCBPVにその用語を翻訳することができる。さまざまな用語を生み出す価値ある翻訳戦略です。コールバイバリュー変換の結果を評価することは、コールバイバリュー戦略を用いて元の用語を評価することに相当する。名前による呼び出しの結果を評価することは、名前による呼び出し戦略で元の用語を評価する代わりに対応します。
これは、非終端、可変状態または非決定性など、さまざまな副作用のセマンティクスを扱う場合に特に便利です。コール・バイ・ネームの評価順序とコール・バイ・バリューの評価順序のために、セマンティクスの2つの変種を与える代わりに、単にCBPV用語言語のセマンティクスを与えることができます。このCBPVセマンティクスをラムダ計算からの同じCBVおよびCBN変換で構成することによって、ラムダ計算の2つのセマンティクスを得る。