Stream Types

被引:0
|
作者
Cutler, Joseph W. [1 ]
Watson, Christopher [1 ]
Nkurumeh, Emeka [2 ]
Hilliard, Phillip [1 ]
Goldstein, Harrison [1 ]
Stanford, Caleb [3 ]
Pierce, Benjamin C. [1 ]
机构
[1] Univ Penn, Philadelphia, PA 19104 USA
[2] CALTECH, Pasadena, CA USA
[3] Univ Calif Davis, Davis, CA USA
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2024年 / 8卷 / PLDI期
关键词
Type Systems; Stream Processing; Ordered Logic; Bunched Implication; SEMANTIC-FOUNDATIONS; LANGUAGE; LOGIC;
D O I
10.1145/3656434
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 Curry-Howard-like of transformers over typed streams that naturally supports a number of common streaming idioms, including punctuation, windowing, and parallel partitioning, as first-class constructions. lambda(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 lambda(ST), we present a number of examples written in Delta, a prototype high-level language design based on lambda(ST).
引用
收藏
页数:25
相关论文
共 50 条
  • [1] Rate Types for Stream Programs
    Bartenstein, Thomas W.
    Liu, Yu David
    ACM SIGPLAN NOTICES, 2014, 49 (10) : 213 - 232
  • [2] Data-Trace Types for Distributed Stream Processing Systems
    Mamouras, Konstantinos
    Stanford, Caleb
    Alur, Rajeev
    Ives, Zachary G.
    Tannen, Val
    PROCEEDINGS OF THE 40TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '19), 2019, : 670 - 685
  • [3] Rewriting for Sound and Complete Union, Intersection and Negation Types
    Pearce, David J.
    ACM SIGPLAN NOTICES, 2017, 52 (12) : 117 - 130
  • [4] Types of naming errors in chronic post-stroke aphasia are dissociated by dual stream axonal loss
    McKinnon, Emilie T.
    Fridriksson, Julius
    Basilakos, Alexandra
    Hickok, Gregory
    Hillis, Argye E.
    Spampinato, M. Vittoria
    Gleichgerrcht, Ezequiel
    Rorden, Chris
    Jensen, Jens H.
    Helpern, Joseph A.
    Bonilha, Leonardo
    SCIENTIFIC REPORTS, 2018, 8
  • [5] A Catalog of Stream Processing Optimizations
    Hirzel, Martin
    Soule, Robert
    Schneider, Scott
    Gedik, Bugra
    Grimm, Robert
    ACM COMPUTING SURVEYS, 2014, 46 (04)
  • [6] Autopipelining for Data Stream Processing
    Tang, Yuzhe
    Gedik, Bugra
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2013, 24 (12) : 2344 - 2354
  • [7] Pragmatic phenomenological types
    Goranson, Ted
    Cardier, Beth
    Devlin, Keith
    PROGRESS IN BIOPHYSICS & MOLECULAR BIOLOGY, 2015, 119 (03): : 420 - 436
  • [8] A Comprehensive Survey on Parallelization and Elasticity in Stream Processing
    Roeger, Henriette
    Mayer, Ruben
    ACM COMPUTING SURVEYS, 2019, 52 (02)
  • [9] Logical Types for Untyped Languages
    Tobin-Hochstadt, Sam
    Felleisen, Matthias
    ICFP 2010: PROCEEDINGS OF THE 2010 ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2010, : 117 - 128
  • [10] Lightweight Linear Types in System F°
    Mazurak, Karl
    Zhao, Jianzhou
    Zdancewic, Steve
    TLDI '10: PROCEEDINGS OF THE 2010 ACM SIGPLAN WORKSHOP ON TYPES IN LANGUAGE DESIGN AND IMPLEMENTATION, 2010, : 77 - 88