跳到主要内容
研究文章
开放式访问

流类型

出版:2024年6月20日 出版历史记录
  • 获取引文提醒
  • 摘要

    我们提出了类型化数据流和流转换器的丰富基础理论,这是由两个高级目标驱动的。首先,流的类型应该能够表示复杂的顺序模式随着时间的推移发生的事件。其次,它应该描述内部平行结构支持并行和分布式系统上的确定性流处理。为此,我们引入流类型,运算符捕获顺序组合、并行组合和迭代,再加上核心演算λ装货单属于变压器超类型流,自然支持许多常见的流习惯用法,包括标点符号、窗口和并行分区,作为一级结构。λ装货单利用Curry-Howard-like通信与捆绑蕴涵逻辑的有序变体进行组合式流编程,并使用Brzozowski样式派生来启用增量、基于前缀的操作语义。说明丰富的λ类型所支持的编程风格装货单,我们给出了一些用Delta编写的示例,Delta是一种基于λ的原型高级语言设计装货单.

    工具书类

    [1]
    丹尼尔·J·阿巴迪、亚尼夫·艾哈迈德、玛格达莱娜·巴拉津斯卡、乌尔·切滕特梅尔、米奇·切尔尼亚克、黄正恩、沃尔夫冈·林德纳、安努拉格·马斯基、亚历克斯·拉辛、埃丝特·赖夫基纳、内西姆·塔布、英星和斯坦利·兹多尼克。2005.北极光流处理引擎的设计。在第二届创新数据系统研究双年度会议上。
    [2]
    丹尼尔·J·阿巴迪、唐·卡尼、尤尔·切滕特梅尔、米奇·切尔尼亚克、克里斯蒂安·卡利、桑顿·李、迈克尔·斯通布拉克、内西姆·塔特布尔和斯坦·兹多尼克。2003年,Aurora:数据流管理的新模型和架构。VLDB杂志,12,2(2003),https://doi.org/10.1007/s00778-003-0095-z
    [3]
    Rajeev Alur、Phillip Hilliard、Zachary G Ives、Konstantinos Kallas、Konstandinos Mamouras、Filip Niksic、Caleb Stanford、Val Tannen和Anton Xue。2021.同步方案。受邀贡献,数据库系统原理。
    [4]
    卡罗琳·简·安德森(Carolyn Jane Anderson)、内特·福斯特(Nate Foster)、阿琼·古哈(Arjun Guha)、珍妮·巴蒂斯特·珍妮(Jean-Baptiste Jeannin)、德克斯特·科赞(Dexter Kozen)、科尔·施莱辛格(Cole Schlesinger。2014.NetKAT:网络的语义基础。Acm sigplan通知,49,1(2014),113-126。
    [5]
    Arvind Arasu、Brian Babcock、Shivnath Babu、John Cieslewicz、Mayur Datar、Keith Ito、Rajeev Motwani、Utkarsh Srivastava和Jennifer Widom。2004年。STREAM:斯坦福数据流管理系统。斯坦福信息实验室。
    [6]
    Arvind Arasu、Shivnath Babu和Jennifer Widom。2003.CQL:一种用于对流和关系进行连续查询的语言。在数据库编程语言国际研讨会上。
    [7]
    Arvind Arasu、Shivnath Babu和Jennifer Widom。2006.CQL连续查询语言:语义基础和查询执行。VLDB杂志,15,2(2006),https://doi.org/10.1007/s00778-004-0147-z
    [8]
    Patrick Bahr、Christian Uldal Graulund和Rasmus Ejlers Morgelberg,2019年。Simply RaTT:一种适用于无空间泄漏的反应式编程的Fitch-Style模态演算。程序。ACM计划。Lang.,3,ICFP(2019),第109条,7月,27页。https://doi.org/10.1145/3341713
    [9]
    Patrick Bahr、Christian Uldal Graulund和Rasmus Ejelles Mögelberg,2021年。钻石不是永远的:带保护递归的反应式编程的活力。程序。ACM计划。Lang.,5,POPL(2021),第2条,1月,28页。https://doi.org/10.1145/3434283
    [10]
    Patrick Bahr和Rasmus Ejles-Mogelberg,2023年。异步模态FRP。arxiv:2303.03170。
    [11]
    Edmon Begoli、Tyler Akidau、Fabian Hueske、Julian Hyde、Kathryn Knight和Kenneth Knowles。2019年,一个SQL将统领一切——一种高效且语法上惯用的流和表管理方法。在国际数据管理会议(SIGMOD)上。
    [12]
    阿尔伯特·本文尼斯特(Albert Benveniste)、保罗·卡斯皮(Paul Caspi)、斯蒂芬·爱德华兹(Stephen A Edwards)、尼古拉斯·哈布瓦赫(Nicolas Halbwachs)、保尔·勒格尼奇(Paule Le Guernic)和罗伯。2003年。12年后的同步语言。程序。IEEE,91,1(2003)。
    [13]
    Véronique Benzaken、Giuseppe Castagna和Alain Frisch。CDuce:一种以XML为中心的通用语言。在ACM SIGPLAN国际函数编程会议(ICFP)上。51–63.编号:1-58113-756-7
    [14]
    杰拉德·贝瑞和乔治·戈蒂尔。1992年。Esterel同步编程语言:设计、语义、实现。计算机程序设计科学,19,2(1992),87-152。发行号:0167-6423https://doi.org/10.1016/0167-6423(92)90005-V
    [15]
    詹姆斯·布罗瑟斯顿。2005.带归纳定义的一阶逻辑的循环证明。《使用分析表和相关方法进行自动推理》,Bernhard Beckert(Ed.)(计算机科学讲稿)。施普林格,柏林,海德堡。78–92。国际标准编号:978-3-540-31822-4https://doi.org/10.1007/11554554_8
    [16]
    Janusz A Brzozowski。1964.正则表达式的导数。J.ACM,11,4(1964)。
    [17]
    威廉·H·伯格(William H Burge),1975年。流处理功能。IBM研究与开发杂志,19,1(1975)。
    [18]
    帕里斯·卡博尼(Paris Carbone)、阿斯特里奥斯·卡西福迪莫斯(Asterios Katsifodimos)、斯蒂芬·埃文(Stephan Ewen)、沃尔克·马尔克尔(Volker Markl)、塞夫·哈里迪(Seif Haridi)和科斯塔斯·祖马(Kostas Tz。2015年,Apache Flink:单一引擎中的流和批处理。IEEE计算机学会数据工程技术委员会公报,36,4(2015)。
    [19]
    安德鲁·凯夫(Andrew Cave)、弗朗西斯科·费雷拉(Francisco Ferreira)、普拉卡什·帕南加登(Prakash Panangaden)和布里吉特·皮恩特卡(Brigitte Pientka)。2014.公平反应式编程。第41届ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL’14)会议记录。计算机械协会,美国纽约州纽约市361–372。编号:9781450325448https://doi.org/10.1145/2535838.2535881
    [20]
    马丁·塞雷萨、费利佩·戈洛斯蒂亚加和塞萨尔·萨切斯。2020年。声明性流运行时验证(hLola)。程序中。第18届亚洲程序设计语言与系统研讨会(APLAS’20)(LNCS,第12470卷)。施普林格,25-43岁。国际标准编号:978-3-030-64436-9https://doi.org/10.1007/978-3-030-64437-6_2
    [21]
    Sirish Chandrasekaran、Owen Cooper、Amol Deshpande、Michael J Franklin、Joseph M Hellerstein、Wei Hong、Sailesh Krishnamurthy、Samuel R Madden、Fred Reiss和Mehul A Shah。2003.TelegraphCQ:连续数据流处理。在ACM SIGMOD国际数据管理会议(SIGMOD.668–668)上。
    [22]
    约瑟夫·卡特勒(Joseph W.Cutler)、克里斯托弗·沃森(Christopher Watson)、菲利普·希利亚德(Phillip Hilliard)、哈里森·戈尔茨坦(Harrison Goldstein)、卡莱布·斯坦福(Caleb Stanford)和本杰明·。2023.河流类型。arxiv:2307.09553。
    [23]
    B.D'Angelo、S.Sankaranarayanan、C.Sanchez、W.Robinson、B.Finkbeiner、H.B.Sipma、S.Mehrotra和Z.Manna。2005.LOLA:同步系统的运行时监控。第十二届时间表征与推理国际研讨会(TIME'05)。166–174. https://doi.org/10.109/TIME.2005.26
    [24]
    Farzaneh Derakhshan。2021.会话型递归过程和循环证明。博士论文。卡瑞吉梅隆大学。https://www.andrew.cmu.edu/user/fderakhs/publications/Dissertation_Farzaneh.pdf
    [25]
    Philip Dexter、Yu David Liu和Kenneth Chiu。2022.在线数据处理的本质。《美国计算机学会程序设计语言会议录》,6,OOPSLA2(2022),899–928。
    [26]
    Volker Diekert和Grzegorz Rozenberg,1995年。《痕迹之书》。世界科学。https://doi.org/10.1142/2563
    [27]
    科纳尔·埃利奥特和保罗·哈达克。1997年。功能性反应动画。在第二届ACM SIGPLAN功能编程国际会议(ICFP)上。
    [28]
    彼得·费蒙维尔(Peter Faymonville)、伯恩德·芬克贝纳(Bernd Finkbeiner)、马尔特·施莱德耶夫斯基(Malte Schledjewski)、马克西米利安·施温格(Maximilian Schwenger)、马文·斯坦格(Marvin Stenger),利安德·腾特鲁普(Leander Tent。2019.StreamLAB:基于流的网络物理系统监测。在计算机辅助验证中,Isil Dillig和Serdar Tasiran(编辑)。施普林格国际出版公司,421-431。国际标准编号:978-3-030-25540-4
    [29]
    杰罗姆·福蒂尔和路易吉·桑托卡纳莱。2013.循环证明的裁剪:语义和裁剪消除。《计算机科学逻辑2013》(CSL 2013),Simona Ronchi Della Rocca(编辑)(莱布尼茨国际信息学论文集,第23卷)。达格斯图尔宫——德国达格斯图莱布尼兹·泽特鲁姆·福尔·Informatik。248–262. 国际标准编号:978-3-939897-60-6https://doi.org/10.4230/LIPIcs.CSL.2013.248国际标准编号:1868-8969
    [30]
    Apache软件基金会。2019.阿帕奇·弗林克。https://flink.apache.org/(2022年7月访问。)
    [31]
    Apache软件基金会。2019.Apache Heron(原推特Heron)。https://heron.incumbor.apache.org/(2022年7月访问。)
    [32]
    Apache软件基金会。2019.阿帕奇萨姆扎。https://samza.apache.org/(2022年7月访问。)
    [33]
    Apache软件基金会。2019.Apache Spark流媒体。https://spark.apache.org/流媒体/(2022年7月访问。)
    [34]
    Apache软件基金会。2019.阿帕奇风暴。https://storm.apache.org/(2022年7月访问。)
    [35]
    Apache软件基金会。2021.阿帕奇光束。https://beam.apache.org/(查阅日期:2022年7月。)
    [36]
    阿兰·弗里希(Alain Frisch)、朱塞佩·卡斯塔尼亚(Giuseppe Castagna)和维罗妮克·本扎肯(Veronique Benzaken)。2002.语义分类。计算机科学中的逻辑(LICS)。
    [37]
    丹·弗鲁明(Dan Frumin)、伊曼纽尔·德奥斯瓦多(Emanuele D’Osualdo)、巴斯·范登·胡维尔(Bas van den Heuvel)和豪尔赫·佩雷斯(Jorge A.Pérez)。2022.一组会话:一个命题作为会话,对基于信道的并发中的一组含义进行解释。程序。ACM计划。Lang.,6,OOPSLA2(2022),第155条,10月,29页。https://doi.org/10.1145/3563318
    [38]
    加布里埃拉·冈萨雷斯。2022.管道。https://hackage.haskell.org/package/pipes
    [39]
    加布里埃拉·冈萨雷斯。2024。折叠。https://hackage.haskell.org/package/foldl
    [40]
    费利佩·戈洛斯蒂亚加和塞萨尔·桑切斯。2021.HStriver:用于实时事件流运行时验证的功能强大的可扩展工具。程序中。第24届国际交响乐团。形式方法(FM'21)(LNCS,第13047卷)。施普林格,563-580。https://doi.org/10.1007/978-3-030-90870-6_30
    [41]
    费利佩·戈洛斯蒂亚加和塞萨尔·桑切斯。2021.使用Striver语言对实时事件流进行流运行时验证。《国际技术转让软件工具杂志》,23(2021),157-183。https://doi.org/10.1007/s10009-021-00605-3
    [42]
    马丁·赫泽尔、罗伯特·索莱、斯科特·施奈德、布拉·盖迪克和罗伯特·格林。2014.流处理优化目录。ACM计算调查(CSUR),46,4(2014)。
    [43]
    CAR(Tony)Hoare、Bernhard Möller、Georg Struth和Ian Wehrman。2009.并行克莱纳代数。CONCUR 2009-货币理论:第20届国际会议,CONCUR 2009,意大利博洛尼亚,2009年9月1-4日。程序20。399–414.
    [44]
    本田小平、吉田信子和卡博尼。2008.多方异步会话类型。第35届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录。273–284.
    [45]
    哈里·侯赛亚(Haruo Hosoya)、杰罗姆·沃伊隆(Jéróme Vouillon)和本杰明·皮尔斯(Benjamin C.Pierce)。2005.XML的正则表达式类型。《美国计算机学会编程语言与系统学报》(TOPLAS),第27期,第1期(2005年),1月,46–90日。ICFP 2000中的初步版本
    [46]
    Namit Jain、Shailendra Mishra、Anand Srinivasan、Johannes Gehrke、Jennifer Widom、Hari Balakrishnan、U'ur Co etintemel、Mitch Cherniack、Richard Tibbetts和Stan Zdonik。2008年。面向流式SQL标准。VLDB捐赠会议记录,1,2(2008年)。
    [47]
    阿兰·杰弗里。2012.LTL类型FRP:线性时间时序逻辑命题作为类型,证明作为功能反应程序。在第六届编程语言研讨会会议记录中,遇到了程序验证(PLPV’12)。计算机械协会,美国纽约州纽约市49–60。编号:9781450311250https://doi.org/10.1145/203776.2103783
    [48]
    西奥多·约翰逊(Theodore Johnson)、尚穆加维莱乌萨姆·穆图克里希南(Shanmugavelayutham Muthukrishnan)、弗拉迪斯拉夫·什卡本尤克(Vladislav Shkapenyuk)和奥利弗·斯帕茨切克(Oliver Spat。2005.一种心跳机制及其在Gigascope中的应用。在第31届国际超大数据库会议(VLDB)上。
    [49]
    吉尔斯·卡恩(Gilles Kahn)。1974.并行编程简单语言的语义。信息处理,74(1974)。
    [50]
    Konstantinos Kallas、Filip Niksic、Caleb Stanford和Rajeev Alur。2020年。DiffStream:流处理程序的差异输出测试。《美国计算机学会程序设计语言会议录》,第4期,OOPSLA(2020年)。
    [51]
    Konstantinos Kallas、Filip Niksic、Caleb Stanford和Rajeev Alur。2022.依赖引导同步的流处理。《并行编程原理与实践》(PPoPP)。
    [52]
    托比亚斯·卡佩(Tobias Kappé)、保罗·布鲁特(Paul Brunet)、巴斯·卢蒂克(Bas Luttik)、亚历山大·席尔瓦(Alexandra Silva)和法比奥·扎纳西(Fabio Zanasi)。2019.关于系列并列的pomset语言:合理性、上下文无关性和自动机。《程序设计中的逻辑和代数方法杂志》,103(2019),130-153。发行编号:2352-2208https://doi.org/10.1016/j.glamp.2018.12.001
    [53]
    奥列格·基塞利约夫。2012年。迭代。在函数和逻辑编程中,Tom Schrijvers和Peter Thiemann(编辑)。施普林格-柏林-海德堡,柏林,海德堡。166-181。国际标准编号:978-3-642-29822-6
    [54]
    内拉坎坦·R·克里希纳斯瓦米(Neelakantan R.Krishnaswami)。2013.无时空泄漏的高阶功能反应式编程。在第18届ACM SIGPLAN函数编程国际会议(ICFP’13)的会议记录中。计算机械协会,美国纽约州纽约市,221–232。国际标准化组织:9781450323260https://doi.org/10.1145/2500365.2500588
    [55]
    Lars Kroll、Klas Segeljakt、Paris Carbone、Christian Schulte和Seif Haridi。2019.Arc:用于批处理和流编程的IR。第17届ACM SIGPLAN数据库编程语言国际研讨会(DBPL 2019)会议记录。美国纽约州纽约市计算机协会53–58。编号:9781450367189https://doi.org/10.1145/3315507.3330199
    [56]
    爱德华·A·李和大卫·G·梅塞施密特。1987.同步数据流。程序。IEEE,75,9(1987)。
    [57]
    塞缪尔·马登(Samuel Madden)、梅胡尔·沙阿(Mehul Shah)、约瑟夫·海勒斯坦(Joseph M Hellerstein)和维杰珊卡·拉曼(Vijayshankar Raman)。2002.流上的连续自适应连续查询。在ACM SIGMOD国际数据管理会议(SIGMOD)上。12页。https://doi.org/10.1145/564691.564698
    [58]
    康斯坦蒂诺斯·马穆拉斯。2020年,确定性数据流和流处理的语义基础。《编程语言与系统》,彼得·米勒(Ed.)。施普林格国际出版公司,Cham。394–427. 国际标准编号:978-3-030-44914-8
    [59]
    Konstantinos Mamouras、Caleb Stanford、Rajeev Alur、Zachary G Ives和Val Tannen。2019.分布式流处理系统的数据跟踪类型。在第40届ACM SIGPLAN编程语言设计与实现(PLDI)会议上。
    [60]
    安东尼·马祖基维奇(Antoni Mazurkiewicz)。1986.痕迹理论。在Petri网高级课程中。
    [61]
    罗宾·米尔纳。1978年,编程中的类型多态理论。J.计算。系统科学。,17, 3 (1978), 348–375. 编号:0022-0000https://doi.org/10.1016/0022-0000(78)90014-4
    [62]
    Shadi A Noghabi、Kartik Paramasivam、Yi Pan、Navina Ramesh、Jon Bringhurst、Indranil Gupta和Roy H Campbell。2017年,Samza:LinkedIn的状态可扩展流处理。VLDB捐赠会议记录,10,12(2017)。
    [63]
    Peter W O'Hearn和David J Pym。1999.捆绑暗示的逻辑。符号逻辑公报,5,2(1999),215-244。
    [64]
    詹妮弗·佩金(Jennifer Paykin)、尼拉坎坦·R·克里斯纳斯瓦米(Neelakantan R.Krishnaswami)和史蒂夫·兹丹塞维奇(Steve Zdancewic)。2016。事件驱动编程的本质。
    [65]
    阿米尔·普努利。1977.程序的时序逻辑。第18届计算机科学基础年度研讨会(sfcs 1977)。46–57.
    [66]
    约翰·雷诺兹。2002.分离逻辑:用于共享可变数据结构的逻辑。第17届IEEE计算机科学逻辑年会论文集。55–74.
    [67]
    斯科特·施奈德(Scott Schneider)、马丁·赫泽尔(Martin Hirzel)、布埃拉·盖迪克(Bura Gedik)和吴坤龙(Kun-Long Wu)。2013.通用流媒体的安全数据并行性。IEEE传输。计算。,64, 2 (2013).
    [68]
    迈克尔·斯诺曼。2023.导管。https://hackage.haskell.org/package/conduit(https://hackage.haskell.org/package/conduit)
    [69]
    罗伯特·苏莱(Robert Soulé)、马丁·赫泽尔(Martin Hirzel)、罗伯特·格林(Robert Grimm)、布埃拉·盖迪克(Bura Gedik)、恩里克·安德拉德(Henrique Andrade)、维博尔·库马尔(Vibhore Kumar)和吴坤龙(Kun-Long Wu)。2010年。流处理语言的通用微积分。在欧洲规划研讨会(ESOP)上。斯普林格。
    [70]
    卡勒布·斯坦福。2022.分布式流安全编程。博士论文。宾夕法尼亚大学。
    [71]
    罗伯特·斯蒂芬斯。1997年。流处理调查。《信息学报》,34,7(1997)。
    [72]
    Composewell Technologies公司。2023年,StreamLy。https://hackage.haskell.org/package/streamly-core
    [73]
    威廉·蒂斯(William Thies)、米歇尔·卡奇马雷克(Michal Karczmarek)和萨曼·阿马拉辛格(Saman Amarasinghe)。2002.StreamIt:一种用于流应用程序的语言。在编译器构造国际会议上。
    [74]
    何塞·曼纽尔·卡尔德隆·特里拉(Jose Manuel Calderon Trilla)。2024.个人沟通。
    [75]
    Peter A.Tucker、David Maier、Tim Sheard和Leonidas Fegaras。2003.在连续数据流中开发标点语义。IEEE传输。在Knowl上。和Data Eng.,15,3(2003),3月,555–568。发行编号:1041-4347https://doi.org/10.1109/TKDE.2003.1198390
    [76]
    Peter A Tucker、David Maier、Tim Sheard和Leonidas Fegaras。2003.在连续数据流中开发标点符号语义。IEEE知识与数据工程汇刊,15,3(2003)。
    [77]
    Jana Wagemaker、Nate Foster、Tobias Kappé、Dexter Kozen、Jurriaan Rot和Alexandra Silva。2022.并发NetKAT:建模和分析有状态的并发网络。在欧洲编程研讨会上。575–602.
    [78]
    马泰·扎哈里亚(Matei Zaharia)、如来·达斯(Tathagata Das)、李浩源(Haoyuan Li)、蒂莫西·亨特(Timothy Hunter)、斯科特·申克(Scott Shenker)和伊恩·斯托伊卡(Ion。2013.离散流:大规模容错流计算。第24届操作系统原理研讨会(SOSP)。https://doi.org/10.1145/2517349.2522737

    建议

    评论

    信息和贡献者

    问询处

    发布于

    封面图片美国计算机学会编程语言会议录
    美国计算机学会程序设计语言会议录 第8卷,发行PLDI
    2024年6月
    2198页
    EISSN公司:2475-1421
    内政部:10.1145/3554317
    • 编辑:
    • 迈克尔·希克斯
    期刊目录
    本作品根据Creative Commons Attribution International 4.0许可证授权。

    出版商

    计算机协会

    美国纽约州纽约市

    出版历史记录

    出版:2024年6月20日
    在PACMPL中发布体积8,问题PLDI公司

    权限

    请求对此文章的权限。

    检查更新

    作者标记

    1. 捆绑式含义
    2. 有序逻辑
    3. 流处理
    4. 类型系统

    限定符

    • 研究文章

    贡献者

    其他指标

    文献计量学和引文

    文献计量学

    文章指标

    • 0
      引文总数
    • 40
      总下载次数
    • 下载次数(过去12个月)40
    • 下载次数(最近6周)40

    其他指标

    引文

    视图选项

    查看选项

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

    使用联机查看电子阅读器.

    电子阅读器

    获取访问权限

    登录选项

    完全访问权限

    媒体

    数字

    其他

    桌子

    分享

    分享

    共享此出版物链接

    在社交媒体上分享