[论文解读] Galois Connecting Call-by-Value and Call-by-Name
本文提出了一套通用框架,用于在存在计算效应的情况下,基于 Levy 的推-值调用(call-by-push-value, CBPV)演算作为统一基础,推理值调用(call-by-value, CBV)与名称调用(call-by-name, CN)之间的关系。研究表明,在某些关于效应的公理化条件下(如惰性化能力和可丢弃性),CBV 与 CN 解释之间的映射构成 Galois 连接,从而实现对可观测行为的系统性比较。其核心贡献是提出了一条通用推理原则(定理 6.2),用于关联不同求值顺序下程序的执行结果。
We establish a general framework for reasoning about the relationship between call-by-value and call-by-name. In languages with side-effects, call-by-value and call-by-name executions of programs often have different, but related, observable behaviours. For example, if a program might diverge but otherwise has no side-effects, then whenever it terminates under call-by-value, it terminates with the same result under call-by-name. We propose a technique for stating and proving these properties. The key ingredient is Levy’s call-by-push-value calculus, which we use as a framework for reasoning about evaluation orders. We construct maps between the call-by-value and call-by-name interpretations of types. We then identify properties of side-effects that imply these maps form a Galois connection. These properties hold for some side-effects (such as divergence), but not others (such as mutable state). This gives rise to a general reasoning principle that relates call-by-value and call-by-name. We apply the reasoning principle to example side-effects including divergence and nondeterminism.
研究动机与目标
- 开发一种通用技术,用于推理在值调用与名称调用之间切换时,程序可观测行为的变化。
- 识别计算效应的公理化属性,以实现对不同求值顺序的系统性比较。
- 通过 CBPV 演算中的逻辑关系与 Galois 连接,形式化值调用与名称调用之间的关系。
- 通过抽象效应特异性语义,构建一个可重用框架,适用于多种效应,包括发散与非确定性。
提出的方法
- 使用 Levy 的推-值调用(CBPV)演算作为共同语义框架,将表达式翻译为值调用与名称调用形式。
- 定义一组集合论逻辑关系,用于比较不同类型(CBV 与 CN)项的可观测行为。
- 建立一个定理(定理 4.7),在计算效应满足特定条件(如可丢弃性与可重排性)时,关联一个表达式的 CBV 与 CN 翻译。
- 构造类型在值调用与名称调用解释之间的映射,证明在更强条件(如惰性化能力)下,这些映射构成 Galois 连接。
- 将这些 Galois 映射与 CBPV 翻译组合,以实现不同求值顺序下项的直接比较。
- 推导出一条通用推理原则(定理 6.2),可用于证明诸如“若 M 在 CBV 下终止,则其在 CN 下也以相同结果终止”等性质。
实验结果
研究问题
- RQ1在何种计算效应条件下,同一表达式的值调用与名称调用求值会表现出相关的可观测行为?
- RQ2是否可以建立值调用与名称调用类型解释之间的 Galois 连接,以反映表达式的执行行为?
- RQ3如何利用 CBV 与 CN 翻译之间的逻辑关系,推导出关于求值顺序变化的一般定理?
- RQ4哪些效应的公理化属性(如惰性化能力、可丢弃性)是通过 Galois 连接关联 CBV 与 CN 所必需且充分的?
- RQ5该框架是否能统一应用于发散、非确定性及其组合等多样化效应?
主要发现
- 本文证明,在效应具备可丢弃性与可重排性等条件下,表达式的值调用与名称调用翻译通过集合论关系实现逻辑关联(定理 4.7)。
- 对于发散效应,该推理原则表明:若程序在值调用下终止,则其在名称调用下也以相同结果终止。
- 对于非确定性效应,该原则表明:值调用执行的每一个可能结果,都是对应名称调用执行的可能结果之一。
- 当效应具备惰性化能力时,值调用与名称调用类型解释之间的映射构成 Galois 连接,从而在两种求值策略之间建立正式对偶。
- 通用推理原则(定理 6.2)允许通过比较不同求值顺序下的行为,推导出程序的顺序敏感性质。
- 该框架具有通用性,只要其公理化属性满足,即可适用于发散与非确定性等效应的组合。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。