资源描述:
《面向对象的元级程序设计方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象的元级程序设计方法第23卷第5期2005年9月吉林大学学报(信息科学版)JournalofJilinUniversity(InformationScienceEdition)V01.23No.5Sept.2005文章编号:1671-5896(2005)05-0529-06面向对象的元级程序设计方法单郸,刘磊(吉林大学计算机科学与技术学院,长春130012)摘要:传统的面向过程式的元级程序设计系统存在一些弊端,如指针操作容易出错等.尤其当处理的语言文法规则过多时,过于频繁的指针操作会降低系统的稳定性和可靠性.为此,采
2、用面向对象的元程序设计方法,使用基于文法的抽象语法树描述中间表示,将元级操作封装成类,构造了面向对象的元级程序设计系统OOMPS(Object-OrientedMetaprogrammingSystem).该系统利用类的继承机制以及对象与其成员函数之间的关系来代替指针操作,避免了指针带来的各种问题.基于该方法,实现了全系统简明测试语言A,I'I'As(Abbrevi.atedTestLanguageforAllSystems,该语言的文法规则大约有2680条)的元程序设计系统ATLAS—MPS.试验表明,该系统效果优良,并
3、具有稳定性及可扩充性.关键词:元程序设计系统;元程序;目标程序;元级操作;抽象语法树中图分类号:TP301文献标识码:AObject—OrientedMetaprogrammingMethodSHANDan,LIULei(CollegeofComputerScienceandTechnology,JilinUniversity,Changchun130012,China)Abstract:Therearesomedefects,suchaspointeroperationwhicheasilymakesanelTor,in
4、thetraditionalpro?cedure—orientedmetaprogramming.Ifgrammarsofthelanguagehastoomuchrules,over~equenflyoperatingpointerwilldecreasethestabilityandreliabilityofasystem.TheOOMS(Object?OrientedMetaprogrammingSystem)basedontheobject—orientedmetaprogrammingmethodusesabst
5、ractsyntaxtreesbasedongral'nnler8todescribemiddlerepresentations,andencapsulatesmetaoperatingsintoClass.Itsubstitutestheinhetitancemech.anismofclassesandtherelationshipofobjectsanditsmemberfunctionsforpointeroperation,accordinglyavoidsallproblemscausedbypointer.Ba
6、singonthismethod,ametaprogrammingsystemofATLAS(AbbreviatedTestLanguageforAllSystems),ATLAS—MPShasbeenimplemented,whichgran'l/narhasapproximately2680rules.TheexperimentationshowsthatA1rIAS—MPSisexcellentandhaswellstabilityandexpandability.Keywords:metaprogrammingsy
7、stem;metaprogram;objectprogram;metaoperating;abstractsyntaxtree引言近年来,关于元程序设计的研究取得了飞速发展,元程序设计越来越受到广泛关注.元程序设计系统(metaprogrammingsystem)是为元级用户提供元程序设计的一种有效工具.元程序(metaprogram)是操作目标程序(objectprogram)的程序,它可以构造目标程序,可以将目标程序段组合成大的目标程序,可以观察目标程序的结构和其他特性….如编译器,解释器,类型检查器,程序生成器和转换
8、系统等.目标程序是以形式语言书写的一些句子,如人们常见的高级语言程序.元程序设计系统中对目标收稿日期:2004-08-24基金项目:吉林省科技发展计划基金资助项目(20050727)作者简介:单郸(198O一),女,吉林白城人,吉林大学硕士研究生,主要从事编译技术研究,(Te1)86-431-51664