arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2002.04607cs.PLcs.LO
收藏

回到期货

Back to Futures

Klaas Pruiksma, Frank Pfenning

AI总结:

本文提出一种基于伴随逻辑Curry-Howard解释的并发语言,通过添加三个原子原语编码顺序组合与同步,统一表达期货、分叉/连接并行和单子并发,并形式化线性期货。

摘要:

并发编程的常见方法始于语义天然顺序的语言,并添加新构造以提供对并发的有限访问,例如期货。这种方法相当成功,但通常不能为并发构造提供令人满意的理论支持,并且可能难以给出良好的语义,使程序员能够同时使用多个这样的构造。我们采用不同的方法,从基于伴随逻辑的Curry-Howard解释的并发语言开始,我们向其添加三个原子原语,使我们能够编码顺序组合和各种形式的同步。由此产生的语言具有高度表达力,使我们能够在同一框架中编码期货、分叉/连接并行和单子并发。值得注意的是,由于我们的语言基于伴随逻辑,我们能够给出线性期货的形式化说明,这些期货已被Blelloch和Reid-Miller用于复杂性分析。这种方法的统一性意味着我们可以类似地以线性方式处理许多其他并发原语,并且我们可以在同一程序中混合多种形式的并发以服务于不同目的。

英文摘要:

Common approaches to concurrent programming begin with languages whose semantics are naturally sequential and add new constructs that provide limited access to concurrency, as exemplified by futures. This approach has been quite successful, but often does not provide a satisfactory theoretical backing for the concurrency constructs, and it can be difficult to give a good semantics that allows a programmer to use more than one of these constructs at a time. We take a different approach, starting with a concurrent language based on a Curry-Howard interpretation of adjoint logic, to which we add three atomic primitives that allow us to encode sequential composition and various forms of synchronization. The resulting language is highly expressive, allowing us to encode futures, fork/join parallelism, and monadic concurrency in the same framework. Notably, since our language is based on adjoint logic, we are able to give a formal account of linear futures, which have been used in complexity analysis by Blelloch and Reid-Miller. The uniformity of this approach means that we can similarly work with many of the other concurrency primitives in a linear fashion, and that we can mix several of these forms of concurrency in the same program to serve different purposes.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑