Stream Types
Joseph W. Cutler, Christopher Watson, Emeka Nkurumeh, Phillip Hilliard, Harrison Goldstein, Caleb Stanford, Benjamin C. Pierce
Abstract
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-Howardlike 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 .
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 3743ccaa-1190-4427-a7a1-98d52c3f2732Cited by top-tier papers5
- Flo: A Semantic Foundation for Progressive Stream ProcessingShadaj Laddad, Alvin Cheung, Joseph M. Hellerstein, Mae MilanoPOPL 2025 · 3 citations
- Let It Flow: A Formally Verified Compilation Framework for Asynchronous DataflowZhengyao Lin, Yi Cai, Milijana SurbatovichPLDI 2026 · 1 citation
- Functional Meaning for Parallel StreamingNick Rioux, Steve ZdancewicPLDI 2025 · 1 citation
- Borrowing from Session TypesHannes Saffrich, Janek Spaderna, Peter Thiemann, Vasco T. VasconcelosOOPSLA 2025
- Homomorphism Calculus for User-Defined AggregationsZiteng Wang, Ruijie Fang, Linus Zheng, Dixin Tang et al.OOPSLA 2025
Builds on6
- DiffStream: differential output testing for stream processing programsKonstantinos Kallas, Filip Niksic, Caleb Stanford, Rajeev AlurOOPSLA 2020 · 18 citations
- Diamonds are not forever: liveness in reactive programming with guarded recursionPatrick Bahr, Christian Uldal Graulund, Rasmus Ejlers MøgelbergPOPL 2021 · 16 citations
- HStriver: A Very Functional Extensible Tool for the Runtime Verification of Real-Time Event StreamsFelipe Gorostiaga, César SánchezFM 2021 · 10 citations
- A bunch of sessions: a propositions-as-sessions interpretation of bunched implications in channel-based concurrencyDan Frumin, Emanuele D'Osualdo, Bas van den Heuvel, Jorge A. PérezOOPSLA 2022 · 6 citations
- Stream processing with dependency-guided synchronizationKonstantinos Kallas, Filip Niksic, Caleb Stanford, Rajeev AlurPPoPP 2022 · 4 citations
Related papers
- StreamQL: a query language for processing streaming time seriesLingkun Kong, Konstantinos MamourasOOPSLA 2020 · 8 citations
- Graphical Language with Delayed Trace: Picturing Quantum Computing with Finite MemoryTitouan Carette, Marc de Visme, Simon PerdrixLICS 2021 · 7 citations
- Monoidal Streams for Dataflow ProgrammingElena Di Lavore, Giovanni de Felice, Mario RománLICS 2022 · 10 citations
- The essence of online data processingPhilip Dexter, Yu David Liu, Kenneth ChiuOOPSLA 2022 · 3 citations
- The leaky semicolon: compositional semantic dependencies for relaxed-memory concurrencyAlan Jeffrey, James Riely, Mark Batty, Simon Cooksey et al.POPL 2022 · 21 citations
