paperbot · PL 论文追踪

RSS

Chocola

TOPLAS 42(4)2020引用 2
Janwillem Swalens, Joeri De Koster, Wolfgang De Meuter

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(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}
}