...
首页> 外文期刊>Theoretical computer science >A concurrent lambda calculus with futures
【24h】

A concurrent lambda calculus with futures

机译:期货的同时Lambda演算

获取原文
获取原文并翻译 | 示例

摘要

We introduce a new lambda calculus with futures, λ(fut), that models the operational semantics of concurrent statically typed functional programming languages with mixed eager and lazy threads such as Alice ML, a concurrent extension of Standard ML. λ(fut) is a minimalist extension of the call-by-value λ-calculus that is sufficiently expressive to define and combine a variety of standard concurrency abstractions, such as channels, semaphores, and ports. Despite its minimality, the basic machinery of λ(fut) is sufficiently powerful to support explicit recursion and call-by-need evaluation. We present a static type system for λ(fut) and distinguish a fragment of λ(fut) that we prove to be uniformly confluent. This result confirms our intuition that reference cells are the sole source of indeterminism. This fragment assumes the absence of so called handle errors that violate the single assignment assumption of λ(fut)'s handled future-construct. Finally, we present a linear type system for λ(fut) by which to prove the absence of handle errors. Our system is rich enough to type definitions of the above mentioned concurrency abstractions. Consequently, these cannot be corrupted in any (not necessarily linearly) well-typed context.
机译:我们引入了一个新的带有期货λ(fut)的lambda演算,该演算使用混合的渴望和惰性线程(例如Alice ML,Standard ML的并发扩展)对并发静态类型函数编程语言的操作语义进行建模。 λ(fut)是按值调用λ演算的极简扩展,它足以表示并定义和组合各种标准并发抽象,例如通道,信号量和端口。尽管极小,但λ(fut)的基本机制仍足以支持显式递归和按需调用评估。我们提出了一个λ(fut)的静态类型系统,并区分了我们证明是均匀融合的λ(fut)片段。该结果证实了我们的直觉,即参考细胞是不确定性的唯一来源。该片段假设不存在所谓的句柄错误,该错误违反了λ(fut)处理的future-construct的单一分配假设。最后,我们提出了一个用于λ(fut)的线性类型系统,通过该系统可以证明没有手柄错误。我们的系统足够丰富,可以键入上述并发抽象的定义。因此,它们不能在任何(不一定是线性的)类型良好的上下文中损坏。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号