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 条
  • [31] Atomicity of batches in stream processing
    K. Vidyasankar
    Journal of Ambient Intelligence and Humanized Computing, 2018, 9 : 19 - 29
  • [32] A stream processing abstraction framework
    Bartolini, Ilaria
    Patella, Marco
    FRONTIERS IN BIG DATA, 2023, 6
  • [33] Atomicity of batches in stream processing
    Vidyasankar, K.
    JOURNAL OF AMBIENT INTELLIGENCE AND HUMANIZED COMPUTING, 2018, 9 (01) : 19 - 29
  • [34] Inferring event stream abstractions
    Kauffman, Sean
    Havelund, Klaus
    Joshi, Rajeev
    Fischmeister, Sebastian
    FORMAL METHODS IN SYSTEM DESIGN, 2018, 53 (01) : 54 - 82
  • [35] Structured Stream Parallelism for Rust
    Pieper, Ricardo
    Griebler, Dalvan
    Fernandes, Luiz Gustavo
    XXIII BRAZILIAN SYMPOSIUM ON PROGRAMMING LANGUAGES, 2019, : 54 - 61
  • [36] On Continuous Queries in Stream Processing
    Vidyasankar, K.
    8TH INTERNATIONAL CONFERENCE ON AMBIENT SYSTEMS, NETWORKS AND TECHNOLOGIES (ANT-2017) AND THE 7TH INTERNATIONAL CONFERENCE ON SUSTAINABLE ENERGY INFORMATION TECHNOLOGY (SEIT 2017), 2017, 109 : 640 - 647
  • [37] A survey on transactional stream processing
    Shuhao Zhang
    Juan Soto
    Volker Markl
    The VLDB Journal, 2024, 33 (2) : 451 - 479
  • [38] Canalis: A Throughput-Optimized Framework for Real-Time Stream Processing of Wireless Communication
    Chen, Kuan-yu
    Nelson, Thomas mason
    Khadem, Alireza
    Fayazi, Morteza
    Singapuram, Sanjay sri vallabh
    Dreslinski, Ronald
    Talati, Nishil
    Kim, Hun-seok
    Blaauw, David
    ACM TRANSACTIONS ON RECONFIGURABLE TECHNOLOGY AND SYSTEMS, 2024, 17 (04)
  • [39] Shape-Constrained Array Programming with Size-Dependent Types
    Bailly, Lubin
    Henriksen, Troels
    Elsman, Martin
    PROCEEDINGS OF THE 11TH ACM SIGPLAN INTERNATIONAL WORKSHOP ON FUNCTIONAL HIGH-PERFORMANCE AND NUMERICAL COMPUTING, FHPNC 2023, 2023, : 29 - 41
  • [40] Capturing Types
    Boruch-Gruszecki, Aleksander
    Odersky, Martin
    Lee, Edward
    Lhotak, Ondrej
    Brachthaeuser, Jonathan
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2023, 45 (04):