×

一种用于反射程序生成器的类型系统。 (英语) Zbl 1215.68062号

摘要:我们描述了生成机制的类型系统,它通过将泛型类型的概念与受控形式的反射相结合来概括泛型类型。这种机制使许多代码生成任务成为可能,而仅仅泛型类型是不够的。代码生成功能的功能与其安全性进行了仔细的平衡,这使我们能够对生成器代码执行静态类型检查。这导致了发电机类型安全的广义概念。

MSC公司:

第68页第19页 其他编程范式(面向对象、顺序、并发、自动等)
68号30 软件工程的数学方面(规范、验证、度量、需求等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Aho,A。;Sethi,R。;Ullman,J.:《编译器:原理、技术和工具》(1986)
[2] 阿塔迪,G。;Cisternino,A.:通过模板元编程实现反射支持,Lncs 2186(2001)·Zbl 1029.68647号
[3] 阿塔迪,G。;Cisternino,A.:将对象接口模板元编程到关系表,Lncs 2192(2001)·Zbl 1038.68625号
[4] L.Augusson,Cayenne–一种具有依赖类型的语言,收录于:ICFP'98:第三届ACM SIGPLAN函数式编程国际会议论文集,1998年,第239-250页·兹比尔1369.68085
[5] G.Bracha,N.Cohen,C.Kemper,S.Marx,M.Odersky,S.E.Panitz,D.Stoutamire,K.Thorup,P.Wadler,《向java编程语言添加泛型:参与者规范草案》,技术代表,SUN Microsystems,2001年4月。
[6] Bracha,G。;Odersky,M。;斯塔塔迈尔,D。;Wadler,P.:为过去保障未来:为Java编程语言添加泛型,(1998)
[7] 加尔卡尼奥,C。;塔哈,W。;黄,L。;Leroy,X.:使用asts、gensym和reflection实现多阶段语言,计算机科学课堂讲稿2830(2003)
[8] Cardelli,L.:类型系统,计算机科学与工程手册,2208-2236(1997)
[9] Chiba,S.:C++的元对象协议,(1995)
[10] Czarnecki,K。;美国艾森内克:生成性编程——方法、工具和应用,(2000)
[11] D.Draheim,C.Lutteroth,G.Weber,《工厂:泛型和反射的静态类型安全集成》,载于《第四届软件工程、人工智能、网络和并行/分布式计算国际会议论文集》,ACIS,2003年。
[12] D.Draheim,C.Lutteroth,G.Weber,《生成性编程技术的分析比较》,技术代表B-04-02,柏林弗雷大学计算机科学研究所,2004年1月。http://www.inf.fu-berlin.de/inst/pubs/tr-b-04-02.abstra.html。
[13] D.Draheim,C.Lutteroth,G.Weber,《C#生成性编程》,ACM SIGPLAN Not。40 (8). ·Zbl 1215.68062号
[14] D.Draheim,C.Lutteroth,G.Weber,《将代码生成器集成到C#语言中》,收录于:ICITA 2005年会议记录:第三届信息技术与应用国际会议,IEEE出版社,2005年·Zbl 1215.68062号
[15] Draheim,D。;Lutteroth,C。;Weber,G.:使用面向表单的用户界面创建强大的内容,(2005年)
[16] Draheim,D。;Weber,G.:面向表单的分析——一种新的基于表单的应用程序建模方法,(2004)·Zbl 1058.68117号
[17] Fähndrich,M。;卡宾,M。;Larus,J.R.:用模式生成反思性程序(2006)
[18] Frost,R.A.:使用记忆来实现非确定性自顶向下解析器的纯功能可执行规范的多项式复杂性,SIGPLAN不是。29,第4期,23-30(1994年)
[19] 加布里埃尔·R·G。;Bobrow,D.G。;White,J.L.:面向对象编程——CLOS视角,(1993)
[20] 伽玛,E。;赫尔姆·R。;约翰逊,R。;Vlissides,J.:设计模式:可重用面向对象软件的元素,(1995)·Zbl 0887.68013号
[21] 吕克,R。;Jørgensen,J.:多层次专业化,部分评估。,326-337 (1999)
[22] Hinze,R。;Jeuring,J.:《通用haskell:应用》,Lncs 2793(2003)·Zbl 1274.68050号
[23] Hinze,R。;Jeuring,J.:《通用哈斯克尔:实践与理论》,Lncs 2793(2003)·兹比尔1274.68049
[24] S.Huang,D.Zook,Y.Smaragdakis,《使用SafeGen生成静态安全程序》,载于:GPCE’05:第四届生成性编程和组件工程国际会议论文集,2005年,第309-326页·Zbl 1215.68054号
[25] 黄S.S。;Smaragdakis,Y.:使用morphj进行表达性和安全的静态反射,(2008)
[26] 黄S.S。;Zook,D。;Smaragdakis,Y.:Cj:使用安全类型条件增强Java,(2007)
[27] M.Kay,XSL转换(XSLT)2.0版,候选推荐反馈,W3C,2005年11月。
[28] G.Kiczales,AspectJ概述,载于:ECOOP'01:《面向对象编程欧洲会议论文集》,载于LNCS,第2072卷,匈牙利布达佩斯,2001年·Zbl 0982.68552号
[29] Kiczales,G。;Rivières,J.Des:元对象协议的艺术(1991)
[30] 科尔贝克尔,E。;弗里德曼,D.P。;Felleisen,M。;Duba,B.:《卫生宏观扩张》(1986)
[31] X.Leroy,D.Doligez,J.Garrigue,D.Rémy,J.Vouillon,目标凸轮系统3.08版-文档和用户手册,技术代表,国家信息与自动化研究所,2004年7月。
[32] Lutterth,C.:AP1:基于模型的软件工程平台,(2006)
[33] B.McNamara,Y.Smaragdakis,C++中的静态接口,摘自:《C++模板编程第一次研讨会论文集》,NetObjectDays 2000年,2000年。
[34] Michie,D.:备忘录功能和机器学习,《自然》21819-22(1968)
[35] Neverov,G。;Roe,P.:隐喻:一种多阶段、面向对象的编程语言,Lncs 3286(2004)·Zbl 1100.68532号
[36] Nizhegorodov,D.:Jasper:Java中基于类型安全的MOP语言扩展和反射模板处理,(2000)
[37] Nizhegorodov,D.:jasper的代码生成方面,一个反射元编程和源代码转换处理器,(2002)
[38] Norvig,P.:无上下文解析应用程序的自动记忆技术,计算。语言学家。17,第1期,91-98(1991)
[39] 对象管理小组,元对象设施(MOF)2.0查询/查看/转换规范,2005年11月。
[40] 对象管理组,MOF 2.0/XMI映射规范2.1版,2005年9月。
[41] 佩奇,R。;Koenig,S.:可计算表达式的有限差分,ACM trans。程序。语言系统4,第3期,402-454(1982)·Zbl 0484.68009号 ·数字对象标识代码:10.1145/357172.357177
[42] Pierce,B.C.:类型和编程语言(2002)·Zbl 0995.68018号
[43] Sheard,T.:元程序设计的成就和研究挑战,(2001)·Zbl 1030.68536号
[44] J.Siek,A.Lumsdaine,概念检查:C++中的绑定参数多态性,载于:C++模板编程第一次研讨会论文集,NetObjectDays 20002000。
[45] Smith,B.C.:LISP中的反射和语义,(1984)
[46] Smith,D.R.:面向方面编程的生成方法,Lncs 3286(2004)
[47] D.Stemple、R.Stanton、T.Sheard、P.Philbrow、R.Morrison、G.Kirby、L.Fegaras、R.Cooper、R.Connor、M.Atkinson等人,《类型安全语言反射:生成器技术》,ESPRIT BRA项目3070。
[48] 塔哈,W。;Sheard,T.:带显式注释的多级编程(1997)·Zbl 0949.68047号
[49] 塔哈,W。;Sheard,T.:带显式注释的Metaml和多级编程,Theoret。计算。科学。248,第1-2号,211-242(2000)·Zbl 0949.68047号 ·doi:10.1016/S0304-3975(00)00053-0
[50] Von Dincklage,D.:用元编程明确模式,Lncs 2830(2003)
[51] Zólyomi,I。;Porkoláb,Z.:走向通用模板自省库,Lncs 3286(2004)
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。