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 条
  • [41] Energy Types
    Cohen, Michael
    Zhu, Haitao Steve
    Emgin, Senem Ezgi
    Liu, Yu David
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 831 - 849
  • [42] Reachability Types: Tracking Aliasing and Separation in Higher-Order Functional Programs
    Bao, Yuyan
    Wei, Guannan
    Bracevac, Oliver
    Jiang, Yuxuan
    He, Qiyang
    Rompf, Tiark
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2021, 5 (OOPSLA):
  • [43] Towards Evaluating Stream Processing Autoscalers
    Siachamis, George
    Kanis, Job
    Koper, Wybe
    Psarakis, Kyriakos
    Fragkoulis, Marios
    van Deursen, Arie
    Katsifodimos, Asterios
    2023 IEEE 39TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING WORKSHOPS, ICDEW, 2023, : 95 - 99
  • [44] Arc: An IR for Batch and Stream Programming
    Kroll, Lars
    Segeljakt, Klas
    Carbone, Paris
    Schulte, Christian
    Haridi, Seif
    PROCEEDINGS OF THE 17TH ACM SIGPLAN INTERNATIONAL SYMPOSIUM ON DATABASE PROGRAMMING LANGUAGES (DBPL '19), 2019, : 53 - 58
  • [45] A middleware for efficient stream processing in CUDA
    Nakagawa, Shinta
    Ino, Fumihiko
    Hagihara, Kenichi
    COMPUTER SCIENCE-RESEARCH AND DEVELOPMENT, 2010, 25 (1-2): : 41 - 49
  • [46] Cyclone: Unified Stream and Batch Processing
    Harvan, Matus
    Locher, Thomas
    Sima, Ana Claudia
    PROCEEDINGS OF 45TH INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING WORKSHOPS (ICPPW 2016), 2016, : 220 - 229
  • [47] A Reliable Replica Mechanism for Stream Processing
    Ding, Weilong
    Zhao, Zhuofeng
    Han, Yanbo
    COLLABORATE COMPUTING: NETWORKING, APPLICATIONS AND WORKSHARING, COLLABORATECOM 2016, 2017, 201 : 397 - 407
  • [48] Resilient Stream Processing in Edge Computing
    Xu, Jinlai
    Palanisamy, Balaji
    Wang, Qingyang
    21ST IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND INTERNET COMPUTING (CCGRID 2021), 2021, : 504 - 513
  • [49] River: an intermediate language for stream processing
    Soule, Robert
    Hirzel, Martin
    Gedik, Bugra
    Grimm, Robert
    SOFTWARE-PRACTICE & EXPERIENCE, 2016, 46 (07) : 891 - 929
  • [50] ESPBench: The Enterprise Stream Processing Benchmark
    Hesse, Guenter
    Matthies, Christoph
    Perscheid, Michael
    Uflacker, Matthias
    Plattner, Hasso
    PROCEEDINGS OF THE ACM/SPEC INTERNATIONAL CONFERENCE ON PERFORMANCE ENGINEERING (ICPE '21), 2021, : 201 - 212