×

节省空间的渐进式打字。 (英语) Zbl 1232.68025号

摘要:渐进式系统通过允许类型化和非类型化代码的自由混合,在静态和动态类型之间提供了一个平滑的连续体。这些语言的运行时系统以及具有混合类型检查的其他语言通常通过动态生成函数代理来强制执行函数类型。然而,这种方法可能导致代理数量的无限增长,从而严重影响空间效率并破坏尾部递归。
我们提出了一种渐进式类型的语义,它基于强制项而不是函数代理,并在运行时组合相邻的强制项以限制其空间消耗。我们证明了强制所消耗空间的界限以及类型系统的可靠性,证明了程序员可以安全地混合类型规则,而不会产生不合理的开销。我们的方法还比之前的工作更早地检测到某些错误。

MSC公司:

68甲15 编程语言理论
68问题55 计算理论中的语义学

软件:

清洁塞西尔圣人
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Ahmed,A.,Findler,R.B.,Matthews,J.,Wadler,P.:罪魁祸首。参加:脚本到程序演变研讨会(2009年)·Zbl 1284.68156号
[2] Birtwhille,G.M.等人:Simula Begin。查特韦尔·布拉特有限公司,布罗姆利(1979年)
[3] Blume,M.和McAllester,D.:健全完整的合同模型。J.功能。程序。16(4–5), 375–414 (2006). 编号0956-7968。doi:10.1007/s10990-011-9066-z·Zbl 1122.68019号 ·doi:10.1017/S0956796806005971
[4] Bracha,G.:插入式系统。In:动态语言复兴研讨会,2004年10月
[5] Brus,T.、van Eekelen,M.、vanLeer,M.和Plasmeijer,M.:Clean nnn函数图重写语言。收录:Kahn,G.(编辑)《函数编程语言与计算机体系结构》。计算机科学课堂讲稿,第274卷,第364-384页。柏林施普林格(1987)·Zbl 0633.68003号
[6] Cardelli,L.:琥珀。摘自:LITP关于组合器和函数式编程语言的春季学校,第21-47页(1986年)
[7] Cardelli,L.、Donahue,J.、Glassman,L.,Jordan,M.、Kalsow,B.、Nelson,G.:Modula-3报告(修订版)。技术报告52,DEC SRC(1989)
[8] 钱伯斯,C.:塞西尔语言规范和基本原理:3.0版。华盛顿大学(1998)
[9] Clements,J.:带有连续标记的堆栈的便携式高级访问。东北大学博士论文(2005)
[10] Clements,J.,Felleisen,M.:具有堆叠检查功能的尾部递归机器。ACM事务处理。程序。语言系统。26(6), 1029–1052 (2004) ·Zbl 05459252号 ·doi:10.1145/1034774.10347778
[11] de Oliveira,R.B.:Boo编程语言(2005)
[12] ECMAScript Edition 4组wiki。埃克玛国际(2007)
[13] ECMAScript语言规范。Ecma国际,第5版。(2009). 统一资源定位地址http://www.ecma-international.org/publications/files/ecma-ST/ecma-262.pdf
[14] Findler,R.B.,Blume,M.:合同作为投影对。摘自:函数和逻辑编程国际研讨会(FLOPS)会议记录,第226-241页(2006)·Zbl 1185.68193号
[15] Findler,R.B.,Felleisen,M.:高阶函数的契约。摘自:ACM SIGPLAN函数编程国际会议(ICFP)会议记录,第48–59页,2002年10月·Zbl 1322.68039号
[16] Flanagan,C.:混合型检查。摘自:ACM SIGPLAN-SIGACT编程语言原则研讨会(POPL)会议记录,第245-256页(2006)·Zbl 1370.68202号
[17] Flanagan,C.,Freund,S.N.,Tomb,A.:命令对象的混合类型、不变量和改进。参加:面向对象语言基础和发展国际研讨会(FOOL/WOOD)(2006年)
[18] Ganz,S.E.,Friedman,D.P.,Wand,M.:蹦床风格。在:ACM SIGPLAN国际功能编程会议(ICFP)论文集,第18-27页(1999年)·Zbl 1345.68051号
[19] Greenberg,M.,Pierce,B.,Weirich,S.:合同已明确。摘自:ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL)会议记录(2010年)·Zbl 1312.68133号
[20] Gronski,J.、Knowles,K.、Tomb,A.、Freund,S.N.、Flanagan,C.:Sage:灵活规范的混合检查。In:方案和函数编程研讨会,2006年9月
[21] Guha,A.,Matthews,J.,Findler,R.B.,Krishnamurthi,S.:关系-参数多态性契约。摘自:DLS,第29–40页(2007年)
[22] Henglein,F.:动态类型:句法和证明理论。科学。计算。程序。22(3), 197–230 (1994) ·Zbl 0809.68083号 ·doi:10.1016/0167-6423(94)00004-2
[23] Herman,D.,Tomb,A.,Flanagan,C.:节省空间的渐进式打字。In:函数编程趋势(TFP)(2007)·Zbl 1232.68025号
[24] K.W.Knowles,C.弗拉纳根:混合型检查。ACM事务处理。程序。语言系统。32(2) (2010)
[25] Matthews,J.,Findler,R.B.:多语言程序的操作语义。摘自:ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL)会议记录(2007年)·Zbl 1295.68053号
[26] Meijer,E.,Drayton,P.:尽可能静态键入,必要时动态键入。参加:动态语言复兴研讨会(2005年)
[27] Minamide,Y.,Garrigue,J.:关于类型定向拆箱的运行时复杂性。摘自:ACM SIGPLAN函数编程国际会议(ICFP)会议记录,第1-12页(1998年)·Zbl 1369.68111号
[28] Ou,X.,Tan,G.,Mandelbaum,Y.,Walker,D.:具有依赖类型的动态类型。摘自:IFIP理论计算机科学国际会议论文集,第437-450页(2004)·Zbl 1088.68531号
[29] Pil,M.:一级文件I/O。In:IFL’96:第八届函数式语言实现国际研讨会论文选集,第233-246页,英国伦敦。柏林斯普林格出版社(1997)。印度卢比3-540-63237-9
[30] Siek,J.,Wadler,P.:探索高阶演员的设计空间。摘自:ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL)会议记录(2010年)
[31] Siek,J.,Garcia,R.,Taha,W.:探索高阶造型的设计空间。摘自:《欧洲编程语言与系统研讨会论文集》,第17-31页。柏林施普林格出版社(2009)·Zbl 1234.68060号
[32] Siek,J.G.,Taha,W.:函数式语言的渐进式键入。In:方案和函数编程研讨会,2006年9月
[33] Siek,J.G.,Taha,W.:对象的渐进式键入。摘自:2007年7月于德国柏林举行的欧洲面向对象编程会议(ECOOP)会议记录
[34] Tobin-Hochstadt,S.,Felleisen,M.:语际迁移:从脚本到程序。In:动态语言研讨会,2006年10月
[35] Tobin-Hochstadt,S.,Felleisen,M.:类型化方案的设计和实现。在:ACM SIGPLAN-SIGCT编程语言原理研讨会论文集(POPL),第395–406页(2008)·Zbl 1295.68055号
[36] Wallach,D.S.:移动代码安全的新方法。普林斯顿大学计算机科学系博士论文(1999年)
[37] Wright,A.K.:实用软打字。莱斯大学博士论文(1998年8月)
[38] Xu,D.N.,Peyton Jones,S.L.,Claessen,K.:Haskell的静态合同检查。收录于:POPL,第41–52页(2009年)·Zbl 1315.68107号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。