首页> 外文期刊>Higher-order and symbolic computation >Call-by-push-value: Decomposing call-by-value and call-by-name
【24h】

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

机译:按值调用:按值分解和按名称分解

获取原文
获取原文并翻译 | 示例
           

摘要

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 present the translations from CBN and CBV to CBPV. All these translations straightforwardly preserve denotational semantics. We also study their operational properties: simulation and full abstraction. We give an equational theory for CBPV, and show it equivalent to a categorical semantics using monads and algebras. We use this theory to formally compare CBPV to Filinski's variant of the monadic metalanguage, as well as to Marz's language SFPL, both of which have essentially the same type structure as CBPV. We also discuss less formally the differences between the CBPV and monadic frameworks.
机译:我们介绍按值调用(CBPV)演算,该演算将类型化的按值调用(CBV)和类型化的按名称调用(CBN)范例分解为细粒度原语。在操作方面,我们为CBPV提供了较大的语义和一个堆栈机,这使CBPV程序的直接推入/弹出读取成为可能。在符号化方面,我们使用cpos为CBPV建模,更广泛地讲,我们使用代数表示强monad。对于存储,我们提出了一种不使用monad的O'Hearn风格的“行为语义”。我们介绍了从CBN和CBV到CBPV的翻译。所有这些翻译都直接保留了指称语义。我们还研究了它们的操作特性:模拟和完全抽象。我们给出了CBPV的方程式理论,并证明了它等效于使用monads和代数的分类语义。我们使用该理论将CBPV与Filinski的单子元语言变体以及Marz的SFPL语言进行形式上的比较,二者的结构基本上与CBPV相同。我们还非正式地讨论了CBPV和monadic框架之间的差异。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号