×

直接类型异步可观测值的约简语义。 (英语) Zbl 1423.68097号

摘要:异步编程变得越来越重要,这不仅是因为多核处理器等硬件开发,还因为客户端Web编程和大规模Web应用程序中普遍存在异步性。然而,异步编程具有挑战性。例如,与同步上下文相比,异步上下文中的控制流管理和错误处理要复杂得多。使用异步事件流进行编程尤其困难:当使用Java等广泛使用的语言时,表示异步流的生产者和消费者需要以连续传递方式的显式状态机。
为了应对这一挑战,最近的语言设计(如Google的Dart)引入了异步生成器,允许以熟悉的阻塞样式表达复杂的异步程序,同时在后台使用高效的非阻塞并发控制。然而,有几个问题仍未解决,包括将类似结构集成到静态类型语言中,以及重要正确性属性的形式化和证明。
本文介绍了Scala异步流生成器的设计,从而将Scala中以前的异步编程工具从任务/未来扩展到异步流。我们基于约简语义和静态类型系统给出了编程模型的完整形式化。在形式化模型的基础上,我们提供了一个完整的类型稳健性证明,以及主题约简定理的证明,该定理建立了编程模型对异步流执行一个重要的状态转换协议。

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
68问题55 计算理论中的语义学
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Agha,Gul A.,ACTORS:分布式系统中的并发计算模型,Artif。智力。(1986),麻省理工学院出版社:麻省理工学院出版社,马萨诸塞州剑桥
[2] 古尔·A·阿加。;伊恩·梅森(Ian A.Mason)。;斯科特·史密斯。;Carolyn L.Talcott,《演员计算基础》,J.Funct。程序。,7、1、1-72(1997年1月)·Zbl 0870.68091号
[3] Armstrong,J.,Erlang-语言及其工业应用调查,(INAP’96-第九届Prolog工业应用展览会和研讨会。INAP’96-第九届Prolog工业应用展览会和研讨会,日本东京日野(1996年10月)),16-18
[4] 乔·阿姆斯特朗(Joe Armstrong);罗伯特·维丁;维克斯特罗姆,克莱斯;Williams,Mike,Erlang并发编程(1996),Prentice Hall·Zbl 0869.68026号
[5] 凯文·比尔霍夫;内尔斯·贝克曼(Nels E.Beckman)。;Aldrich,Jonathan,《具有访问权限的实用API协议检查》,(Drossopoulou,Sophia,ECOOP.ECOOP,Lect.Notes Compute.Sci.,第5653卷(2009),Springer),195-219
[6] 加文·比尔曼;马修·帕金森;安德鲁·皮特斯(Andrew Pitts,MJ):《Java和Java的强制性核心微积分及其效果》(2003年4月),剑桥大学计算机实验室,技术报告UCAM-CL-TR-563
[7] 加文·M·比尔曼。;拉索,克劳迪奥五世。;大陆,杰弗里;埃里克·梅杰尔;Torgersen,Mads,Pause‘n’play:形式化异步C#,(ECOOP(2012),Springer),233-257
[8] Gilad Bracha,《飞镖编程语言》(The Dart Programming Language)(2015),艾迪森·韦斯利:马萨诸塞州波士顿市
[9] Burmako、Eugene、Scala宏:让我们的力量结合起来!,(第四届Scala研讨会论文集(2013),ACM),3:1-3:10
[10] 德波尔(Frank S.de Boer)。;戴夫·克拉克(Dave Clarke);Johnsen,Einar Broch,《未来的完整指南》(De Nicola,Rocco,ESOP.ESOP,Lect.Notes Compute.Sci.,第4421卷(2007年),Springer),316-330·Zbl 1475.68045号
[11] Robert DeLine;Fähndrich,Manuel,对象的类型状态,(Odersky,Martin,ECOOP.ECOOP,Lect.Notes Compute.Sci.,第3086卷(2004),Springer),465-490
[12] 托比约恩·埃克曼;Hedin,Görel,Java非空类型的可插入检查和推断,J.Object Technol。,6, 9, 455-475 (2007)
[13] 埃里克森,马吕斯,你的服务器作为一个功能,Oper。系统。版次:48、1、51-57(2014)
[14] Lea、Doug、JSR166:并发实用程序
[15] Patrick Th.尤格斯特。;费伯(Felber),帕斯卡(Pascal);拉希德·格拉乌伊(Rachid Guerraoui);Kermarrec、Anne-Marie、发布/订阅的多方面、ACM Compute。调查。,35, 2, 114-131 (2003)
[16] 曼努埃尔·Fähndrich;Leino,K.Rustan M.,《在面向对象语言中声明和检查非空类型》(Crocker,Ron;Steele,Guy L.,OOPSLA(2003),ACM),302-312
[17] 马修·弗拉特(Matthew Flatt);克里希纳穆提(Krishnamurthi,Shriram);Felleisen,Matthias,《类和混合的程序员简化语义》,(Alves-Foss,Jim,《Java的形式语法和语义》,Java的形式句法和语义,Lect.Notes Compute.Sci.,第1523卷(1999),Springer),241-269
[18] 斯特芬·福克曼;托马斯·彼得里切克(Tomas Petricek);莱利(Ryan Riley);毛里西奥·谢弗;福克斯、杰克、FSharp。控制。AsyncSeq库
[19] Fornet,塞德里克;Le Fessant,Fabrice公司;Luc Maranget;Schmitt,Alan,JoCaml:并发分布式和移动编程语言,(Jeuring,Johan;Jones,Simon L.Peyton,《高级函数编程》,Lect.Notes Compute Sci.,第2638卷(2002),Springer),129-158
[20] Fornet,塞德里克;乔治·戈蒂尔(Georges Gonthier),《反身CHAM和联合演算》(The reflective CHAM and The join-calculus),(博姆(Boehm),汉斯·尤根(Hans-Juergen);斯蒂尔(Steele),盖伊·L。,《流行文学》(1996),美国医学杂志(ACM),第372-385页
[21] (2015年4月),反应流工作组。无功流1.0
[22] 菲利普·哈勒(Philipp Haller),《论演员模型在主流技术中的整合:Scala的视角》(Agha,Gul A.;Bordini,Rafael H.;Marron,Assaf;Ricci,Alessandro,AGERE!@SPLASH(2012),ACM),1-6
[23] 菲利普·哈勒;Tom Van Cutsem,《使用可扩展模式匹配实现连接》(COORDINATION(2008),Springer),135-152
[24] 菲利普·哈勒;Odersky,Martin,《Scala actors:统一基于线程和基于事件的编程》,Theor。计算。科学。,410, 2-3, 202-220 (2009) ·Zbl 1162.68396号
[25] 菲利普·哈勒;阿列克桑达尔·普罗科佩克;希瑟·米勒;巴生,维克多;罗兰·库恩(Roland Kuhn);Jovanovic、Vojin、SIP-14:期货与承诺(2012)
[26] 菲利普·哈勒;Jason Zaugg,SIP-22:异步(2013)
[27] (安德斯·海尔斯伯格;麦德斯·托格森;斯科特·威尔塔穆斯;彼得·戈尔德,《C#编程语言》(2011),艾迪森·韦斯利)
[28] Carl,Hewitt,将控制结构视为传递消息的模式,Artif。智力。,8, 3, 323-364 (1977)
[29] 霍尔,C.A.R.,通信顺序过程(1985),普伦蒂斯·霍尔·Zbl 0637.68007号
[30] 本田、Kohei;Tokoro,Mario,异步通信的对象演算,(America,Pierre,ECOOP.ECOOP,Lect.Notes Compute.Sci.,vol.512(1991),Springer),133-147
[31] 本田、Kohei;吉田、Nobuko;Carbone,Marco,多方异步会话类型,J.ACM,63,1,9:1-9:67(2016)·Zbl 1426.68047号
[32] Atsushi Igarashi;本杰明·皮尔斯(Benjamin C.Pierce)。;Wadler,Philip,Featherweight Java:Java和GJ的最小核心演算,ACM Trans。程序。语言系统。,23, 3, 396-450 (2001)
[33] 国际,Ecma,Dart编程语言规范(2015),第4版(Ecma-408)
[34] 吉姆·特雷弗;莫里塞特,J.格雷戈里;Dan Grossman;迈克尔·W·希克斯。;詹姆斯·切尼;王燕玲,《旋风:C的一种安全方言》,(埃利斯,卡拉·施拉特,USENIX年度技术会议,通用轨道(2002),USENIX),275-288
[35] 约翰森(Einar Broch Johnsen);雷纳·Hähnle;Schäfer,一月;鲁道夫·施拉特(Rudolf Schlatte);Steffen,Martin,ABS:抽象行为规范的核心语言,(FMCO(2010),Springer),142-164
[36] 约翰森(Einar Broch Johnsen);Owe,Olaf,分布式并发对象的异步通信模型,Softw。系统。型号。,6, 1, 39-58 (2007)
[37] 约翰逊·R·E。;Foote,B.,《设计可重用类》,J.面向对象程序。,1, 2, 22-35 (1988)
[38] Halstead,Robert H.,Multilisp:一种用于并发符号计算的语言,ACM Trans。程序。语言系统。,第7、4、501-538页(1985年)·Zbl 0581.68037号
[39] Karmani,Rajesh K。;阿明·沙利;Agha,Gul,《JVM平台的演员框架:比较分析》(Stephenson,Ben;Probst,Christian W.,PPPJ(2009),ACM),11-20
[40] 巴巴拉·利斯科夫;Shrra,Liuba,Promises:分布式系统中高效异步过程调用的语言支持,(Wexelblat,Richard L.,PLDI(1988),ACM),260-267
[41] Meijer,Erik,你的鼠标是一个数据库,Commun。ACM,55,5,66-73(2012)
[42] 埃里克·梅杰尔;凯文·米利金;Bracha,Gilad,《有副作用的调味飞镖》,ACM Queue,13,3,40(2015)
[43] 希瑟·米勒;菲利普·哈勒;Odersky,Martin,《Spores:并发和分发时代基于类型的闭包基础》(Jones,Richard,ECOOP.ECOOP,Lect.Notes Compute.Sci.,vol.8586(2014),Springer),308-333
[44] 罗宾·米尔纳,《通信和移动系统——Pi-Calculus》(1999),剑桥大学出版社·Zbl 0942.68002号
[45] 莫里塞特,J.格雷戈里;大卫·沃克(David Walker);卡尔·克里;Neal Glew,《从系统F到类型化汇编语言》,ACM Trans。程序。语言系统。,21, 3, 527-568 (1999)
[46] 马丁·奥德斯基(Martin Odersky);勺子,莱克斯;Bill Venners,《Scala编程》(2010),Artima
[47] 塞米·奥库;坎苏埃尔多安;Dig,Danny,《将并行代码从低级抽象转换为高级抽象》,(Jones,Richard,ECOOP.ECOOP,Lect.Notes Compute.Sci.,vol.8586(2014),Springer),515-540
[48] 约翰·奥斯特隆德;Wrigstad,Tobias,中量级爪哇(TOOLS(48)(2010),Springer),97-116
[49] Ousterhout,John K。;阿格拉瓦尔,帕拉格;大卫·埃里克森;科兹拉基斯,克里斯托斯;雅各布·利维里奇(Jacob Leverich);大卫·马齐埃尔(David Mazières);密特拉语,Subhasish;阿拉文·纳拉亚南;Diego Ongaro;Parulkar,大师M。;孟德尔·罗森布鲁姆;斯蒂芬·M·隆布尔(Stephen M.Rumble)。;埃里克·斯特拉曼;Ryan Stutsman,RAMCloud案件,Commun。ACM,第54页,第7121-130页(2011年)
[50] 托马斯·佩特里切克;Syme,Don,F#计算表达式动物园,(Flatt,Matthew;Guo,Hai Feng,PADL.PADL,Lect.Notes Comput.Sci.,vol.8324(2014),Springer),33-48
[51] 本杰明·皮尔斯(Benjamin C.Pierce),《类型和编程语言》(2002),麻省理工学院出版社·Zbl 0995.68018号
[52] Schäfer,一月;Poetzsch-Heffter,Arnd,JCobox:将活动对象推广到并发组件,(D'Hondt,Theo,ECOOP.ECOOP,Lect.Notes Compute.Sci.,第6183卷(2010),Springer),275-299
[53] 约瑟夫·斯托(Joseph E.Stoy),《指称语义学:编程语言理论的斯科特-斯特拉奇方法》(1977),麻省理工学院出版社:麻省理学院出版社剑桥·Zbl 0503.68059号
[54] 唐·赛姆;托马斯·彼得里切克(Tomas Petricek);Lomov,Dmitry,《F#异步编程模型》(Rocha,Ricardo;Launchbury,John,PADL(2011),Springer),175-189
[55] 冯·贝伦,J.罗伯特;杰里米·康迪特;Eric A.Brewer,《为什么事件是个坏主意(对于高并发服务器)》(Jones,Michael B.,HotOS(2003),USENIX),19-24
[56] 安德鲁·赖特(Andrew K.Wright)。;Felleisen,Matthias,《类型稳健性的句法方法》,Inf.Comput。,115、1、38-94(1994年11月)·Zbl 0938.68559号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。