6

[2012.13129] Rast: A Language for Resource-Aware Session Types

 2 years ago
source link: https://arxiv.org/abs/2012.13129
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

[Submitted on 24 Dec 2020 (v1), last revised 11 Jan 2022 (this version, v3)]

Rast: A Language for Resource-Aware Session Types

Download PDF

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.

Subjects: Programming Languages (cs.PL); Logic in Computer Science (cs.LO) Cite as: arXiv:2012.13129 [cs.PL]   (or arXiv:2012.13129v3 [cs.PL] for this version)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK