×

具有过程分离的特定类型的阶段式编程。 (英语) Zbl 1256.68022号

摘要:分段是一种功能强大的语言构造,允许处于某个计算阶段的程序操作并专门化要在稍后阶段执行的程序。
我们提出了一种新的分段语言演算(langleMLrangle),它从两个方向扩展了分段语言的可编程性。首先,\(langleML\rangle\)支持动态类型专门化:类型可以动态构造、抽象并作为参数传递,同时通过系统\(F_{leq}\)样式语义与限制形式的\(lambda_{omega}\)类型运行时类型构造相结合,保留可判定的类型检查。通过动态类型专门化,可以通过分段优化程序的数据结构布局。第二,(langle ML rangle)在不同进程空间中执行不同计算阶段的上下文中工作,我们称之为阶段进程分离。处于不同阶段的程序可以通过内置的序列化规程直接以\(\langle ML\rangle\)格式通信程序数据。
语言(langle ML rangle)被赋予了一种元理论,包括类型保存、类型安全和可判定性,这一点通过健全的类型检查算法得到了建设性的证明。虽然我们的语言设计是通用的,但我们对资源约束和嵌入式系统中分段的未来应用特别感兴趣:这些系统的代码和数据空间有限,CPU时间也有限,专门为手头的特定部署编写代码可以提高所有这些方面的效率。
动态类型专门化和跨进程分段的结合大大提高了这些领域中分段编程的实用性。我们通过无线传感器网络编程示例来说明这一点。

理学硕士:

68甲15 编程语言理论
68米14 分布式系统
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Aiken,A.,Wimmers,E.L.,Lakshman,T.K.:使用条件类型的软类型。摘自:第二十届美国计算机学会编程语言原理年会会议记录,第163-173页(1994年)
[2] Barendregt,H.:广义类型系统简介。J.功能。程序。1(2), 125–154 (1991) ·Zbl 0931.03019号
[3] Bove,A.,Dybjer,P.,Norell,U.:agda的简要概述——一种具有依赖类型的函数语言。In:Berghofer,S.,Nipkow,T.,Urban,C.,Wenzel,M.(编辑)《高阶逻辑中的定理证明》。计算机科学课堂讲稿,第5674卷,第73-78页。柏林施普林格出版社(2009)·Zbl 1252.68062号
[4] Brady,E.:Irdis:一种具有依赖类型的语言。http://www.idris-lang.org (2009)
[5] Brady,E.,Hammond,K.:经过验证的分段解释器是经过验证的编译器。摘自:GPCE’06:第五届生成程序设计和组件工程国际会议论文集,第111-120页。ACM,纽约(2006)
[6] Calcagno,C.,Moggi,E.,Taha,W.:封闭类型是安全命令式多阶段编程的简单方法。摘自:ICALP’00:第27届国际自动化学术讨论会会议记录,语言与编程,第25-36页。施普林格,伦敦(2000)·Zbl 0973.68037号
[7] Cardelli,L.:程序片段、链接和模块化。收录于:POPL'97会议记录:第24届ACM SIGPLAN-SIGACT编程语言原理研讨会,第266-277页(1997)
[8] Cardelli,L.,Wegner,P.:关于理解类型、数据抽象和多态性。ACM计算机。Surv公司。17(4), 471–523 (1985) ·数字对象标识代码:10.1145/6041.6042
[9] Chen,C.,Xi,H.:通过类型化代码表示进行元编程。In:ICFP'03(2003)·Zbl 1315.68038号
[10] Chen,C.,Xi,H.:将编程与定理证明相结合。摘自:第十届ACM SIGPLAN函数编程国际会议记录,ICFP'05,第66-77页。ACM,纽约(2005)·Zbl 1302.68241号
[11] Consel,C.,Hornof,L.,Marlet,R.,Muller,G.,Thibault,S.,Volanschi,E.-N.,Lawall,J.,Noyé,J.:Tempo:专业化系统应用及其他。ACM计算机。调查。,19(1998年)
[12] Coquand,T.,Huet,G.:结构微积分。Inf.计算。76(2-3),95-120(1988)·Zbl 0654.03045号 ·doi:10.1016/0890-5401(88)90005-3
[13] Coquand,T.、Huet,G.等人:Coq证明助理。http://coq.inia.fr
[14] Crary,K.,Weirich,S.,Morrisett,G.:类型擦除语义中的意向多态性。J.功能。程序。12(6), 567–600 (2002) ·Zbl 1040.68059号
[15] Davies,R.,Pfenning,F.:阶段计算的模态分析。《美国临床医学杂志》48(3),555-604(2001)·Zbl 1323.68107号 ·doi:10.1145/382780.382785
[16] Dreyer,D.:用于基础良好的递归的类型系统。摘自:第31届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,POPL'04,第293–305页(2004)·Zbl 1325.68046号
[17] Eifrig,J.,Smith,S.,Trifonov,V.:递归约束类型的类型推断及其在OOP中的应用。收录于:编程语言语义的数学基础(MFPS)。计算机科学电子讲稿,第1卷(1995年)·Zbl 0910.68143号
[18] Flatt,M.,Felleisen,M.:单位:HOT语言的酷模块。摘自:ACM SIGPLAN’98编程语言设计与实现会议记录,第236-248页(1998年)
[19] Fogarty,S.,Pasalic,E.,Siek,J.,Taha,W.:Concoqtion:立即索引类型!摘自:2007年ACM SIGPLAN部分评估和基于语义的程序操作研讨会论文集,2007年PEPM,第112-121页。ACM,纽约(2007)
[20] Ganz,S.E.、Sabry,A.、Taha,W.:宏作为多阶段计算:MacroML中的类型安全、生成、绑定宏。摘自:ICFP'01:第六届ACM SIGPLAN函数编程国际会议记录,第74-85页。ACM,纽约(2001)·Zbl 1323.68116号
[21] Gay,D.,Levis,P.,von Behren,R.,Welsh,M.,Brewer,E.,Culler,D.:nesC语言:网络化嵌入式系统的整体方法。摘自:PLDI’03:ACM SIGPLAN 2003编程语言设计与实现会议记录,第1-11页。ACM,纽约(2003)
[22] Ghelli,G.,Pierce,B.:有界存在和最小类型。西奥。计算。科学。193(1–2), 75–96 (1998) ·Zbl 0909.03017号 ·doi:10.1016/S0304-3975(96)00300-3
[23] Gillenwater,J.、Malecha,G.、Salama,C.、Zhu,A.Y.、Taha,W.、Grundy,J.和O'Leary,J.:可合成的高级硬件描述:使用静态类型的两级语言来保证verilog的可合成性。摘自:2008年ACM SIGPLAN部分评估和基于语义的程序操作研讨会论文集,PEPM’08,第41-50页。ACM,纽约(2008)
[24] Harper,R.、Mitchell,J.C.、Moggi,E.:高阶模和相位差。在:第十七届ACM程序设计语言原理研讨会,第341–354页。ACM出版社,纽约(1990)
[25] Harper,R.,Morrisett,G.:使用内涵型分析编译多态性。摘自:第二十届ACM编程语言原理研讨会,第130-141页。纽约ACM出版社(1995)
[26] Hill,J.、Szewczyk,R.、Woo,A.、Hollar,S.、Culler,D.E.、Pister,K.S.J.:网络传感器的系统体系结构方向。In:编程语言和操作系统的体系结构支持,第93–104页(2000)
[27] Honsell,F.,Mason,I.A.,Smith,S.,Talcott,C.:效应的变量类型逻辑。Inf.计算。119, 55–90 (1993) ·Zbl 0832.68009号 ·doi:10.1006/inco.1995.1077
[28] Kameyama,Y.,Kiselyov,O.,Shan,C.-C.:转移舞台:用分隔控制进行舞台。摘自:PEPM’09:2009年ACM SIGPLAN部分评估和程序操作研讨会会议记录,第111-120页。ACM,纽约(2009)·Zbl 1248.68132号
[29] Kiselyov,O.,Swadi,K.N.,Taha,W.:生成验证组合电路的方法。摘自:《第四届ACM嵌入式软件国际会议论文集》,EMSOFT'04,第249-258页。ACM,纽约(2004)
[30] Krishnamurthi,S.,Felleisen,M.,Duba,B.F.:从宏到可重用的生成性编程。摘自:生成性和基于组件的软件工程国际研讨会,《计算机科学讲义》,第1799卷,第105-120页。柏林施普林格(1999)
[31] Leroy,X.:适用函子和完全透明的高阶模。收录于:POPL,第142-153页(1995年)
[32] Leroy,X.:模块化模块系统。J.功能。程序。10(3), 269–303 (2000) ·Zbl 0957.68026号 ·doi:10.1017/S0956796800003683
[33] Liu,Y.D.,Skalka,C.,Smith,S.:具有过程分离的类型特定的阶段式编程。In:通用编程研讨会(WGP 09),苏格兰爱丁堡(2009)·Zbl 1256.68022号
[34] MacQueen,D.:标准ML模块。In:ACM Lisp和函数编程会议记录,第409-423页(1984年)
[35] Madden,S.、Franklin,M.J.、Hellerstein,J.M.、Hong,W.:标签:用于自组织传感器网络的微型聚合服务。SIGOPS操作。系统。第36版(SI),131-146(2002)·数字对象标识代码:10.1145/844128.844142
[36] 大陆,G.、莫里塞特,G.和威尔士,M.:烧瓶:传感器网络的阶段性功能编程。In:第13届ACM SIGPLAN功能编程国际会议(ICFP 2008),2008年9月
[37] Martin-Löf,P.:直觉主义类型理论:表语部分。在:Rose,H.F.,Shepherdson,J.C.(编辑)逻辑学术讨论会’73,第73-118页。荷兰北部,阿姆斯特丹(1973年)
[38] Moggi,E.,Fagorzi,S.:一种单音节多阶段元语言。收录:Gordon,A.D.(编辑)FoSSaCS。计算机科学课堂讲稿,第2620卷,第358-374页。施普林格,柏林(2003)·Zbl 1029.68042号
[39] Moggi,E.,Taha,W.,El abiline Benaissa,Z.,Sheard,T.:理想化的MetaML:更简单,更具表现力。摘自:欧洲编程研讨会(ESOP),第193-207页。柏林施普林格(1999)
[40] Monnier,S.,Shao,Z.:内联为分段计算。J.功能。程序。13(3), 647–676 (2003) ·Zbl 1036.68018号 ·网址:10.1017/S095679680204616
[41] Murphy VII,T.,Crary,K.,Harper,R.,Pfenning,F.:分布式计算的对称模态lambda演算。收录于:LICS’04:第19届IEEE计算机科学逻辑研讨会论文集,第286-295页。IEEE计算机协会,华盛顿(2004)
[42] Nanevski,A.:具有名称和必要性的元编程。收录于:ICFP'02:第七届ACM SIGPLAN函数编程国际会议记录,第206-217页。ACM,纽约(2002)·Zbl 1322.68045号
[43] Nanevski,A.,Morrisett,G.,Shinnar,A.,Govereau,P.,Birkedal,L.:Ynot:命令式程序的依赖类型。In:ICFP’08:第13届ACM SIGPLAN函数编程国际会议记录(2008)·Zbl 1323.68142号
[44] Newton,R.、Morrisett,G.、Welsh,M.:团宏编程系统。In:IPSN'07:第六届传感器网络信息处理国际会议记录,第489–498页(2007)
[45] Pasalic,E.,Taha,W.,Sheard,T.,Tim,S.:类型化语言的无标签阶段口译员。摘自:函数式编程国际会议(ICFP'02),第218-229页。ACM,纽约(2002)·Zbl 1322.68033号
[46] Pottier,F.:一个通用的基于约束的类型推理系统。Nord.J.计算。7(4), 312–347 (2000) ·Zbl 0970.68017号
[47] Salama,C.,Malecha,G.,Taha,W.,Grundy,J.,O'Leary,J.:verilog线互连的静态一致性检查:使用依赖类型检查verilog-描述的健全性。摘自:2009年ACM SIGPLAN部分评估和程序操作研讨会会议记录,PEPM’09,第121-130页。ACM,纽约(2009)
[48] Schurgers,C.、Kulkarni,G.、Srivastava,M.B.:无线传感器网络中的分布式按需地址分配。IEEE传输。平行配送系统。13(10),1056–1065(2002)·doi:10.1109/TPDS.2002.1041881
[49] Shi,R.,Chen,C.,Xi,H.:分布式元编程。摘自:GPCE’06:第五届生成程序设计和组件工程国际会议记录,第243-248页(2006)
[50] Taha,W.:多阶段编程简介。In:Lengauer,C.,Batory,D.,Consel,C.,Odersky,M.(编辑)领域特定程序生成。计算机科学课堂讲稿,第3016卷,第30-50页。施普林格,柏林(2004)。doi:10.1007/978-3-540-25935-03
[51] Taha,W.:资源软件编程。作者:Wu,Z.,Chen,C.,Guo,M.,Bu,J.(编辑)ICESS。计算机科学课堂讲稿,第3605卷,第38-43页。施普林格,柏林(2004)
[52] Taha,W.,El-abidine Benaissa,Z.,Sheard,T.:多阶段编程:公理化和类型安全(扩展抽象)。摘自:第25届国际自动化、语言和编程学术讨论会,第918-929页。柏林施普林格(1998)
[53] Taha,W.,Ellner,S.,Xi,H.:在函数设置中生成堆边界程序。收录于:EMSOFT,第340-355页。柏林施普林格出版社(2003)
[54] Taha,W.等人:MetaOCaml:一种编译的、类型安全的多级编程语言。http://www.metaocaml.org/
[55] Taha,W.,Nielsen,M.F.:环境分类器。收录:POPL'03(2003)·Zbl 1321.68175号
[56] Taha,W.,Sheard,T.:带有显式注释的多级编程。摘自:PEPM’97:1997年ACM SIGPLAN部分评估和基于语义的程序操作研讨会论文集,第203-217页(1997)·Zbl 0949.68047号
[57] Wan,Z.,Hudak,P.:从第一原理出发的函数反应式编程。摘自:PLDI’00:ACM SIGPLAN 2000编程语言设计与实现会议记录,第242-252页。ACM,纽约(2000年)
[58] Xi、H.、Chen、C.、Chen和G.:保护递归数据类型构造函数。收录于:POPL'03:第30届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,第224-235页。ACM,纽约(2003)·Zbl 1321.68161号
[59] Xi,H.,Pfenning,F.:实际编程中的依赖类型。摘自:第26届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,POPL'99,第214-227页。ACM,纽约(1999)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。