paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Chocola

Chocola:统一 futures、transactions 与 actors 的并发语言
TOPLAS 42(4)2020匹配度 2/10 · 该论文属于程序语言设计中的并发模型组合与形式化语义工作,包含形式化和 Clojure 实现,与用户画像中 PL 部分有微弱关联。但其核心不涉及 AI/LLM、Agentic 程序、静态分析、浮点程序分析或贝叶斯程序分析,因此与研究方向匹配度很低。引用 2 inbox
Janwillem Swalens, Joeri De Koster, Wolfgang De Meuter
dblp: 2026-09-10crossref: 2026-09-10

AI 速览

一句话:提出统一 futures、transactions 与 actors 的并发语言 Chocola,形式化语义并证明其保证。

程序员常在同一程序内混合使用多种并发模型,以在程序各部分选用最合适的模型。Clojure、Scala 和 Java 等语言虽支持这种需求,但组合方式往往是临时的,组合语义也未良定义;朴素组合 futures、transactions 与 actors 会破坏各模型原本提供的保证,违背程序员假设。本文提出统一语言 Chocola,将 futures、transactions 和 actors 整合,并尽可能在组合时维持三者的保证。作者形式化 Chocola 的语义并证明其提供的保证,同时将其实现为 Clojure 扩展。评估表明,该实现能以开发者相对较小的努力提升三个基准应用的性能。

问题
现有语言常以 ad hoc 方式组合 futures、transactions 与 actors,组合语义不明确,朴素组合会破坏各模型通常提供的保证。
方法
提出 Chocola 统一语言,形式化其语义并证明组合后仍尽可能保持三种并发模型的保证,并实现为 Clojure 扩展。
评估
在三个基准应用上评估,显示以较小开发代价获得性能提升。
原文摘要(Abstract)

Programmers often combine different concurrency models in a single program, in each part of the program using the model that fits best. Many programming languages, such as Clojure, Scala, and Java, cater to this need by supporting different concurrency models. However, existing programming languages often combine concurrency models in an ad hoc way, and the semantics of the combinations are not always well defined. This article studies the combination of three concurrency models: futures, transactions, and actors. We show that a naive combination of these models invalidates the guarantees they normally provide, thereby breaking the assumptions of programmers. Hence, we present Chocola : a unified language of futures, transactions, and actors that maintains the guarantees of all three models wherever possible, even when they are combined. We describe and formalize the semantics of this language and prove the guarantees it provides. We also provide an implementation as an extension of Clojure and demonstrated that it can improve the performance of three benchmark applications for relatively little effort from the developer.

链接与引用

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

BibTeX
@article{SwalensKM21,
  title = {Chocola},
  author = {Janwillem Swalens and Joeri De Koster and Wolfgang De Meuter},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {42},
  number = {4},
  year = {2020},
  doi = {10.1145/3427201}
}