一种构建Java语言扩展的编译器框架.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种构建Java语言扩展的编译器框架.pdf

第33卷 第妙期 计 算 机 工 程 2007年10月 Vo L刀 八b.1夕 ComputerEn OCtoberZ栩)7 软件技术与救据库 文章鹅号:1伽“卜气到2侧2007)19一刁肠lse习3 文做标识砚,A 中圈分类号:TP311 一种构建Java语言扩展的编译器框架 张 显 (中国科学技术大学计算机科学技禾系,合肥23002力 摘 共:阉yg城是,种避免代码复制的、高度可扩展的编译器前端框架。用户只需扩展该框架,定义对抽象语法树、语义分析等的必要修 改,即可实现Java语言扩展。为指导用户在Poly目ot上快速开展工作,该文总结Polyglot的主耍流程和类体系,剖析其利用委托、访问者、 抽象工厂等实现可升级扩展的方法,简述了Polyglot的已有应用及应用步骤。 关健侧:可升级扩展;追;访问者;委托 Com PilerFrameworkforBuiIdingJavaLanguageExtensions ZnANGYu (D叩aj.11e山ofCompu姗SCienee 目川注1七d川ofo。、Un是, 1灯ofsc北n沈andTeclll们logyofChilla卜Hefei230027) IA ‘扮歇1】FO妙吕笼011吕a拍9拍,exte璐1悦eco口piler几川1即df怕1”e*诫,whileavm 山ng〔冈eduplicati叨.u姗 功日yexte阔此 台仙lew诫 to 山6叱叨yn昭5田‘)ch日”脚 on曲5妞.口sy们taxl耽e明d胜mal”,can吻滋sfor imPlenlellti昭如guage既.ensi。胎.肠order加d让吧ctu哪 towl,rk 喇ithPolyglotfl忱d%the m目1。几,姗即dc!asshie呼 岭ofl,。】y目ot毗 犯川matIZ曰,朋dthe.祀thodo】09记softhesc哥曲七jcexte幻sibility哪 朋at。功iZed,迈认1云比阮 由leg而眠visitOrs助d曲51田cl阮torl。吮 。nPIOyed.冉。dtheu鸽5比psofP0ly目ot日ndthe 比】atedaPPlication晚5洲ed 迈anut如户,1 IK”叨ords万sc目由比ex比邢ibility;po5:visltOr;delegati二 在软件安全、新型语言设计等研究中,往往需要扩展现 就需要根据扩展需求,定义扩展的AsT并构造扩展的语法分 有的程序设计语言,构造编译器。构造和维护编译器是一项 析器。 繁杂的工作,要快速实现扩展语言比较困难。 Polyglot提供PpG(Polyglotparserge鱿rator)帮助快速建 为支持类Java语言的编译器构造,2佣3年Corn比大学 立语法分析器,它相当于CUP的预处理器,其代码在PPg包 研制了高度可扩展的编译器前端根架Polyglot,并为基语言 中。PPG 提供文法继承,用户只需将扩展语言相对于基语言 Java14实现了一个可扩展编译器11).在该框架下,通过定义 文法的变化集定义成pPg文件输入到PpG运行,即可得到描 对编译过程的必要修改(抽象语法树AST和语义分析等)可实 述该扩展语言完整文法的 ‘uP文件。Ppo文法是对CUP 文法 现语言扩展。Polyglot 的主要目标是可升级扩展(scal沛le 的扩展,增加的命令见表1。根据扩展的AsT,对PPG生成 以记叮而lity),即为实现扩展所需的编码量只与扩展语言和基 的cuP文件中的语义动作等进行修改,再将该文件输入到 语言间的差异成比例. CUP中运行,即可得扩展的语法分析器, 本文通过剖析 氏lyglot源码,总结其设计和实现体系及 襄IP陀文法枯式中

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档