×

使用SafeGen生成静态安全的程序。 (英语) Zbl 1215.68054号

摘要:SafeGen是一种元编程语言,用于编写静态安全的Java程序生成器。如果用SafeGen编写的程序生成器通过了SafeGener编译器的检查,则生成器将只为任何生成器输入生成格式良好的Java程序。换句话说,静态检查生成器可以确保生成的任何程序的正确性,而静态检查通常由常规编译器执行(包括类型安全、超类的存在等)。为了实现这一保证,SafeGen只支持用于在现有格式良好的Java程序上进行反射的语言原语、用于创建程序片段的原语,以及用于迭代、条件操作和名称生成的受限构造集。SafeGen的静态检查算法结合了Java的传统类型检查和对定理证明程序的一系列调用,以检查一阶逻辑语句的有效性,构造这些语句的目的是表示生成的程序在所有输入下的格式良好性。该方法在我们的测试中运行良好,为正确的生成器提供了证据,或者指出了有趣的错误。

MSC公司:

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

参考文献:

[1] Java集合框架网站。http://java.sun.com/j2se/1.4.2/docs/guide/collections/
[2] Andreka,H。;Van Benthem,J。;Nemeti,I.:模态语言和谓词逻辑的有界片段,《哲学逻辑杂志》27,第3期,217-274(1998)·Zbl 0919.03013号 ·doi:10.1023/A:1004275029985
[3] 巴赫拉赫,J。;Playford,K.:Java语法扩展程序(JSE),31-42(2001)
[4] 贝克,J。;Hsieh,W.C.:《玛雅:Java中的多重数据语法扩展》,270-281(2002)
[5] Batory,D。;Lofaso,B。;Smaragdakis,Y.:JTS:实现特定领域语言的工具,143-153(1998)
[6] Batory,D。;Sarvela,J.N。;Rauschmayer,A.:逐步细化,187-197(2003)
[7] 布莱恩特。;Catton,A。;De Volder,K。;Murphy,G.C.:显式编程,10-18(2002)
[8] B.Burke等人。JBoss AOP网站。http://labs.jboss.com/portal/jbossaop(2007年4月访问)
[9] 加尔卡尼奥,C。;塔哈,W。;黄,L。;Leroy,X.:使用asts、gensym和reflection实现多阶段语言,Lncs 2830,57-76(2003)
[10] D.Draheim,C.Lutteroth,G.Weber,反射程序生成器的一种类型系统,收录于:生成编程和组件工程,GPCE,2005年·Zbl 1215.68062号
[11] Fahndrich,M。;卡宾,M。;Larus,J.R.:用模式生成反射程序,275-284(2006)
[12] 弗拉纳根,C。;Leino,K.R.M。;Lillibridge,M。;Nelson,G。;Saxe,J.B。;Stata,R.:Java的扩展静态检查,234-245(2002年6月)
[13] 伽玛,E。;赫尔姆·R。;Johnson,R.:设计模式。可重用面向对象软件的要素,Addison-wesley专业计算系列(1995)
[14] 甘辛格,H。;De Nivelle,H.:具有等式的保护碎片的叠加决策程序,295-304(1999)
[15] J.Gosling等人,《Java语言规范》,GOTOP Information Inc.,台湾台北市南康路三段50弄7号5楼·Zbl 0865.68001号
[16] E.Grädel,一阶和定点逻辑的可判定片段,从前缀词汇类到保护逻辑,收录于:《逻辑和计算机科学卡马尔研讨会论文集》,塞格德,2003年
[17] 黄S.S。;Smaragdakis,Y.:使用元方面的简单语言扩展,865-868(2006)
[18] 黄S.S。;Zook,D。;Smaragdakis,Y.:Cj:用安全类型条件增强Java,185-198(2007)
[19] Kiczales,G。;Hilsdale,E。;胡古宁,J。;克尔斯滕,M。;Palm,J。;Griswold,W.G.:《方面概述》,327-353(2001)·Zbl 0982.68552号
[20] Kiczales,G。;兰平,J。;Menhdhekar,A。;Maeda,C。;Lopes,C。;Loingtier,J.-M。;Irwin,J.:面向方面编程,面向对象编程欧洲会议论文集1241220-242(1997)
[21] M.Mohnen,《Java中默认实现的接口》,载于:《程序设计原则与实践创始会议论文集》,2002年,第35-40页,爱尔兰基尔代尔郡Maynooth,2002年。爱尔兰国立大学
[22] 帕萨利,E。;塔哈,W。;Sheard,T.:打字语言的无标签阶段口译员,218-229(2002)·Zbl 1322.68033号
[23] Sheard,T。;Jones,S.P.:haskell的模板元编程,1-16(2002)
[24] A.Stevens等人,XDoclet网站。http://xdoclet.sourceforge.net网站/(2007年4月访问)
[25] 塔哈,W。;Sheard,T.:带显式注释的多级编程,203-217(1997)·Zbl 0949.68047号
[26] Tilevich,E。;Urbanski,S。;Smaragdakis,Y。;Fleury,M.:Aspectizing server side distribution,(2003年10月)
[27] Visser,E.:使用具体对象语法的元编程,Lncs 2487,299-315(2002)·Zbl 1028.68921号
[28] 沃思,A。;Stanojevic,M。;Millstein,T.:使用扩展器的静态范围对象自适应,37-56(2006)
[29] C.Weidenbach,SPASS 2.0版理论,技术报告,Max-Planck Institute fur Informatik·Zbl 1072.68596号
[30] D.Weise,R.F.Crew,可编程语法宏,载于:SIGPLAN编程语言设计与实现会议,1993年,第156–165页
[31] Zook,D。;黄S.S。;Smaragdakis,Y.:使用meta-aspectj生成aspectj程序,1-18(2004)
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。