En la programación de la teoría del lenguaje , el valor de llamada por empuje ( CBPV ) paradigma, [1] inspirado en mónadas , permite escribir semántica para cálculo lambda sin escribir dos variantes para hacer frente a la diferencia entre la llamada por el nombre y la llamada- por valor . Para ello, CBPV introduce un lenguaje de términos que distingue cálculos y valores, según el lema que es un valor, un cálculo hace ; este término lenguaje tiene un solo orden de evaluación. Sin embargo, para evaluar un término de cálculo lambda de acuerdo con la llamada por nombre ( CBN ) o la llamada por valor ( CBV )estrategia de reducción , se puede traducir el término a CBPV utilizando una estrategia de traducción llamada por nombre o llamada por valor, que dan lugar a términos diferentes. Evaluar el resultado de la traducción de llamada por valor corresponde a evaluar el término original con la estrategia de llamada por valor; evaluar el resultado de la traducción de llamada por nombre corresponde en cambio a evaluar el término original con la estrategia de llamada por nombre.
Esto es especialmente útil cuando se trata de la semántica de diferentes efectos secundarios, como la no terminación, el estado mutable o el no determinismo. En lugar de dar dos variantes de la semántica, una para el orden de evaluación de llamada por nombre y otra para la llamada por valor, se puede simplemente dar una semántica para el lenguaje del término CBPV; uno obtiene dos semánticas para lambda-calculus componiendo esta semántica CBPV con las mismas traducciones CBV y CBN de lambda-calculus.
Referencias
- ^ Paul Blain Levy. "Call-by-Push-Value: un paradigma subsumidor" (PDF) . Cite revista necesita
|journal=
( ayuda )