TL;DR
Rast is a language that extends session types with arithmetic refinements, temporal types, and polymorphism to specify and verify resource usage and complexity bounds in concurrent programs.
Contribution
It introduces Rast, an open-source language combining session types with resource-aware refinements, temporal types, and polymorphism, along with an optimized type checking and reconstruction engine.
Findings
Supports resource and complexity analysis in session-typed programs
Demonstrates expressivity through various examples
Provides an open-source implementation with automated type reconstruction
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
