Chocola

Chocola
复制标题

巧克力

DOI:
--
复制
发表时间:
2021
影响因子:
1.3
通讯作者:
W. Meuter
W. Meuter
中科院分区:
计算机科学2区
文献类型:
--
作者:
Janwillem Swalens;Joeri De Koster;W. Meuter

文献摘要

参考文献

被引文献

相似文献

程序员经常在单个程序中组合不同的并发模型,在程序的每个部分使用最适合的模型。许多编程语言,如Clojure、Scala和Java,通过支持不同的并发模型来迎合这一需求。然而,现有的编程语言通常以特别的方式组合并发模型,并且组合的语义并不总是被很好地定义。本文研究了三种并发模型的组合:期货、交易和参与者。我们表明,这些模型的天真组合使它们通常提供的保证无效,从而打破了程序员的假设。因此,我们提出了Chocola:期货、交易和参与者的统一语言,尽可能维护所有这三种模型的保证,即使它们组合在一起也是如此。我们描述和形式化了这种语言的语义,并证明了它所提供的保证。我们还提供了一个实现作为Clojure的扩展,并演示了它可以用相对较少的开发人员工作来提高三个基准应用程序的性能。
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: 10.1145/3133876
发表时间: 2016-02
影响因子: --
作者:
Edd Barrett;Carl Friedrich Bolz-Tereick;Rebecca Killick;S. Mount;L. Tratt
通讯作者: Edd Barrett;Carl Friedrich Bolz-Tereick;Rebecca Killick;S. Mount;L. Tratt