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

Rast:一种面向资源感知会话类型的语言

Rast: A Language for Resource-Aware Session Types

Ankush Das, Frank Pfenning

AI总结:

Rast是一种开源语言,通过算术细化、ergometric/temporal类型和嵌套参数多态性扩展会话类型,以捕获并发程序的资源与复杂度属性,并借助优化后的Cooper算法进行类型检查。

摘要:

传统会话类型为并发计算规定了双向通信协议,其中类型良好的程序保证遵守这些协议。然而,简单的会话类型无法捕获超出交换消息基本类型之外的属性。为此,近期工作通过线性算术的细化扩展了会话类型,捕获进程和数据的内在属性。这些细化随后在描述会话类型程序的顺序和并行复杂度界限方面发挥核心作用。Rast语言提供了一种开源实现,支持带有算术细化以及ergometric和temporal类型(用于捕获程序执行的工作量和跨度)的会话类型并发程序。为进一步支持泛型编程,Rast还通过最近开发的嵌套参数多态性增强了算术细化的会话类型。类型检查依赖于Cooper算法,用于Presburger算术中的量词消去,并进行了若干重要优化,以及对非线性约束的启发式扩展。Rast还包含一个重建引擎,使得大多数涉及细化和资源层的程序构造自动插入。我们提供了多种示例来展示该语言的表现力。

英文摘要:

Traditional session types prescribe bidirectional communication protocols for concurrent computations, where well-typed programs are guaranteed to adhere to the protocols. However, simple session types cannot capture properties beyond the basic type of the exchanged messages. In response, recent work has extended session types with refinements from linear arithmetic, capturing intrinsic attributes of processes and data. These refinements then play a central role in describing sequential and parallel complexity bounds on session-typed programs. The Rast language provides an open-source implementation of session-typed concurrent programs extended with arithmetic refinements as well as ergometric and temporal types to capture work and span of program execution. To further support generic programming, Rast also enhances arithmetically refined session types with recently developed nested parametric polymorphism. Type checking relies on Cooper's algorithm for quantifier elimination in Presburger arithmetic with a few significant optimizations, and a heuristic extension to nonlinear constraints. Rast furthermore includes a reconstruction engine so that most program constructs pertaining the layers of refinements and resources are inserted automatically. We provide a variety of examples to demonstrate the expressivity of the language.

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

↑