Abstract
We develop a session types based framework for implementing and validating rate-based message passing systems in Internet of Things (IoT) domains. To model the indefinite repetition present in many embedded and IoT systems, we introduce a timed process calculus with a periodic recursion primitive. This allows us to model rate-based computations and communications inherent to these application domains. We introduce a definition of rate based session types in a binary session types setting and a new compatibility relationship, which we call rate compatibility. Programs which type check enjoy the standard session types guarantees as well as rate error freedom - - meaning processes which exchanges messages do so at the same rate. Rate compatibility is defined through a new notion of type expansion, a relation that allows communication between processes of differing periods by synthesizing and checking a common superperiod type. We prove type preservation and rate error freedom for our system, and show a decidable method for type checking based on computing superperiods for a collection of processes. We implement a prototype of our type system including rate compatibility via an embedding into the native type system of Rust. We apply this framework to a range of examples from our target domain such as Android software sensors, wearable devices, and sound processing.
| Original language | English |
|---|---|
| Pages (from-to) | 1589-1617 |
| Number of pages | 29 |
| Journal | Proceedings of the ACM on Programming Languages |
| Volume | 7 |
| Issue number | OOPSLA2 |
| DOIs | |
| State | Published - Oct 16 2023 |
Keywords
- rate-based systems
- session types
- type systems
Fingerprint
Dive into the research topics of 'Validating IoT Devices with Rate-Based Session Types'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver