Stream Types

We propose a rich foundational theory of typed data streams and stream transformers, motivated by two high-level goals. First, the type of a stream should be able to express complex sequential patterns of events over time. And second, it should describe the internal parallel structure of the stream,...

Full description

Saved in:
Bibliographic Details
Published inProceedings of ACM on programming languages Vol. 8; no. PLDI; pp. 1412 - 1436
Main Authors Cutler, Joseph W., Watson, Christopher, Nkurumeh, Emeka, Hilliard, Phillip, Goldstein, Harrison, Stanford, Caleb, Pierce, Benjamin C.
Format Journal Article
LanguageEnglish
Published New York, NY, USA ACM 20.06.2024
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:We propose a rich foundational theory of typed data streams and stream transformers, motivated by two high-level goals. First, the type of a stream should be able to express complex sequential patterns of events over time. And second, it should describe the internal parallel structure of the stream, to support deterministic stream processing on parallel and distributed systems. To these ends, we introduce stream types, with operators capturing sequential composition, parallel composition, and iteration, plus a core calculus λST of transformers over typed streams that naturally supports a number of common streaming idioms, including punctuation, windowing, and parallel partitioning, as first-class constructions. λST exploits a Curry-Howard-like correspondence with an ordered variant of the Logic of Bunched Implication to program with streams compositionally and uses Brzozowski-style derivatives to enable an incremental, prefix-based operational semantics. To illustrate the programming style supported by the rich types of λST, we present a number of examples written in Delta, a prototype high-level language design based on λST.
ISSN:2475-1421
2475-1421
DOI:10.1145/3656434