×

跑步者在行动。 (英语) Zbl 1508.68050号

Müller,Peter(编辑),《编程语言和系统》。2020年4月25日至30日在爱尔兰都柏林举行的第29届欧洲编程研讨会(ESOP 2020),是欧洲软件理论与实践联合会议(ETAPS 2020)的一部分。诉讼程序。查姆:斯普林格。莱克特。注释计算。科学。12075, 29-55 (2020).
摘要:代数效应的运行器(也称为comodels)提供了资源管理的数学模型。我们表明,它们还产生了一个编程概念,该概念对顶级外部资源进行建模,并允许程序员模块化地定义自己的中间“虚拟机”。我们在等式演算(lambda_{mathsf{coop}})中捕获了使用跑步者进行编程的核心思想,我们为其配备了一个合理且连贯的指称语义,以确保资源的线性使用和终结代码的执行。我们在(\lambda_{\mathsf{coop}})中附带了运行程序的示例,在中提供了一个原型语言实现OCaml公司,以及哈斯克尔基于\(\lambda{\mathsf{coop}}\)的库。
关于整个系列,请参见[Zbl 1496.68030号].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
68甲18 函数编程和lambda演算
68问题55 计算理论中的语义学

软件:

github;效率
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] Ahman,D.:哈斯克尔库普图书馆。可在https://github.com/danelahman/haskell-coop (2019)
[2] Ahman,D.,Fournet,C.,Hritcu,C.,Maillard,K.,Rastogi,A.,Swamy,N.:回顾一个见证:单调状态的基础和应用。PACMPL 2(POPL),65:1-65:30(2018)
[3] Bauer,A.,Pretnar,M.:代数效果和处理程序的效果系统。计算机科学中的逻辑方法10(4)(2014)·兹比尔1448.68203
[4] Bauer,A.,Pretnar,M.:使用代数效果和处理程序进行编程。J.日志。阿尔盖布。方法。程序。84(1), 108-123 (2015) ·兹比尔1304.68025
[5] 鲍尔:什么是代数效应和处理程序的代数?CoRR abs/1807.05923(2018)
[6] Bauer,A.:编程语言合作社。可在https://github.com/andrejbauer/coop (2019)
[7] Benton,N.,Kennedy,A.:异常语法。函数编程杂志11(4),395-410(2001)·Zbl 0994.68030号
[8] Delignat-Lavaud,A.、Fournet,C.、Kohlweiss,M.、Protzenko,J.、Rastogi,A.、Swamy,N.、Zanella-Beguelin,S.、Bhargavan,K.、Pan,J.和Zinzindohoue,J.K.:实施和证明tls 1.3记录层。2017年IEEE Symp。安全与隐私(SP)。第463-482页(2017年)
[9] Dolan,S.、Eliopoulos,S.,Hillerström,D.、Madhavapedy,A.、Sivaramakrishnan,K.C.、White,L.:具有效果处理程序的并发系统编程。摘自:Wang,M.,Owens,S.(编辑)《函数编程趋势》。第98-117页。施普林格国际出版公司,Cham(2018)
[10] Foster,J.N.,Greenwald,M.B.,Moore,J.T.,Pierce,B.C.,Schmitt,A.:双向树转换的组合器:视图更新问题的语言学方法。ACM事务处理。程序。语言系统。29(3) (2007) ·Zbl 1369.68136号
[11] Hyland,M.,Plotkin,G.,Power,J.:组合效应:总和和张量。西奥。计算。科学。357(1-3), 70-99 (2006) ·Zbl 1096.68088号
[12] Kammar,O.,Lindley,S.,Oury,N.:Handlers正在行动。In:程序。第18届ACM SIGPLAN功能编程国际会议,ICFP 2013。ACM(2013)·Zbl 1323.68126号
[13] Katsumata,S.,Rivas,E.,Uustalu,T.:单体和共鸣体的相互作用规律。CoRR abs/1912.13477(2019)·Zbl 1499.68065号
[14] Kiselyov,O.,Ishii,H.:自由单子,更具扩展性的效果。In:程序。2015年ACM SIGPLAN Symp。在Haskell身上。第94-105页。Haskell’15,ACM(2015)
[15] Koopman,P.,Fokker,J.,Smetsers,S.,van Eekelen,M.,Plasmeijer,R.:《清洁中的函数编程》。奈梅亨大学(1998),初稿
[16] Leijen,D.:具有代数效应的结构化异步。附:第二届ACM SIGPLAN类型驱动开发国际研讨会会议记录,ICFP处的TyDe2017年9月3日,英国牛津。第16-29页。ACM(2017)
[17] Leijen,D.:具有资源和深度终结的代数效果处理程序。技术代表MSR-TR-2018-10,Microsoft Research(2018年4月)
[18] Leijen,D.:使用隐式值、函数和控件进行编程(或者,隐式函数:使用词汇范围的动态绑定)。技术代表MSR-TR-2019-7,Microsoft Research(2019年3月)
[19] Levy,P.B.:Call-By-Push-Value:功能/命令合成,计算中的语义结构,第2卷。斯普林格(2004)·Zbl 1070.68017号
[20] Miltner,A.,Maina,S.,Fisher,K.,Pierce,B.C.,Walker,D.,Zdancewic,S.:合成对称透镜。程序。ACM计划。语言3(ICFP),95:1-95:28(2019)
[21] Mögelberg,R.E.,Staton,S.:状态的线性用法。计算机科学中的逻辑方法10(1)(2014)·Zbl 1326.68070号
[22] Moggi,E.:计算lambda-calculus和monad。In:程序。第四交响曲。计算机科学中的逻辑,LICS 1989。第14-23页。IEEE(1989)·Zbl 0716.03007号
[23] Moggi,E.:计算和单数的概念。Inf.计算。93(1), 55-92 (1991) ·Zbl 0723.68073号
[24] 奥康纳(O’Connor,R.):Functor对于透镜来说就像适用于双平板一样:引入倍增。CoRR abs/1103.2841(2011)
[25] Plotkin,G.,Power,J.:代数运算的语义。In:程序。第17届编程语义数学基础大会,MFPS XVII。ENTCS,第45卷,第332-345页。Elsevier(2001)·Zbl 1260.68220号
[26] Plotkin,G.,Power,J.:代数运算和泛型效应。申请。类别。结构。(1), 69-94 (2003) ·Zbl 1023.18006号
[27] Plotkin,G.,Power,J.:操作语义的共模型和模型张量。In:程序。第24届编程语义数学基础大会,MFPS XXIV。ENTCS,第218卷,第295-311页。爱思唯尔(2008)·兹比尔1286.68303
[28] Plotkin,G.D.,Power,J.:计算概念决定单子。In:程序。第五届国际软件科学与计算结构基础会议,FOSSACS 2002。LNCS,第2303卷,第342-356页。斯普林格(2002)·Zbl 1077.68676号
[29] 普洛金,G.D.,普雷特纳,M.:代数效应的逻辑。In:程序。IEEE交响乐团。计算机科学中的逻辑,LICS 2008。第118-129页。IEEE(2008)
[30] Plotkin,G.D.,Pretnar,M.:处理代数效应。计算机科学中的逻辑方法9(4:23)(2013)·Zbl 1314.68191号
[31] Power,J.,Shkaravska,O.:从comodels到coalebras:状态和数组。选举人。理论注释。计算。科学。106, 297-314 (2004) ·Zbl 1271.18006号
[32] Power,J.:丰富了Lawvere理论。理论应用。类别6(7),83-93(1999)·Zbl 0943.18003号
[33] Pretnar,M.:代数效应的逻辑和处理。爱丁堡大学信息学院博士论文(2010年)
[34] Saleh,A.H.,Karachalias,G.,Pretnar,M.,Schrijvers,T.:显性效应亚型。In:程序。第27届欧洲规划研讨会,2018年ESOP。第327-354页。LNCS,施普林格(2018)·Zbl 1418.68065号
[35] Uustalu,T.:有效计算的状态管理器。选举人。理论注释。计算。科学。319, 403-421 (2015) ·Zbl 1351.68104号
[36] Wadler,P.:函数式编程的本质。收录:Sethi,R.(编辑)Proc。ACM SIGPLAN-SIGACT交响乐团。《程序设计语言原理》,1992年。第1-14页。ACM(1992)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。