paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Call-by-Unboxed-Value

按未装箱值调用(Call-by-Unboxed-Value)
ICFP 8(ICFP)2024匹配度 2/10 · 该论文属于程序语言理论与编译方向,讨论求值序、未装箱值与表示多态,但未涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析,与用户当前以 PL×AI 和程序分析为核心的研究画像基本无关。引用 0 inbox
Paul Downen
dblp: 2026-09-10crossref: 2026-09-10

AI 速览

一句话:提出 Call-by-Unboxed-Value,以原子/复合与装箱/未装箱两轴统一求值序与表示多态,支持未装箱值与多态混用并指导表示无关编译。

Call-By-Push-Value 通过值/计算区分统一了传名与传值。本文引入 Call-By-Unboxed-Value,在值/计算之外进一步沿“原子/复合”正交轴分解程序,从而显式表达值的装箱与未装箱表示,使函数可直接传递未装箱输入输出。该演算允许多态与未装箱类型不受限混合,为基于表示无关性的多态编译技术提供基础。作者用其独立于类型形式化表示多态,首次编译无类型表示多态代码,同时在到机器的整个过程中保持类型信息。

问题
如何在统一求值序理论中表达值的装箱/未装箱表示,并支持多态与未装箱类型的混合,进而为表示无关编译奠基。
方法
提出 Call-By-Unboxed-Value,在值/计算之外引入原子/复合正交分解,显式区分 boxed/unboxed 表示,并独立于类型形式化表示多态。
评估
以形式化构造和编译流程说明其能力:可首次编译无类型表示多态代码,并在到机器的整个过程中保持类型信息。
原文摘要(Abstract)

Call-By-Push-Value has famously subsumed both call-by-name and call-by-value by decomposing programs along the axis of “values” versus “computations.” Here, we introduce Call-By-Unboxed-Value which further decomposes programs along an orthogonal axis separating “atomic” versus “complex.” As the name suggests, these two dimensions make it possible to express the representations of values as boxed or unboxed, so that functions pass unboxed values as inputs and outputs. More importantly, Call-By-Unboxed-Value allows for an unrestricted mixture of polymorphism and unboxed types, giving a foundation for studying compilation techniques for polymorphism based on representation irrelevance . In this regard, we use Call-By-UnboxedValue to formalize representation polymorphism independently of types; for the first time compiling untyped representation-polymorphic code, while nonetheless preserving types all the way to the machine.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@article{Downen24,
  title = {Call-by-Unboxed-Value},
  author = {Paul Downen},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {ICFP},
  year = {2024},
  doi = {10.1145/3674654}
}