支持静态元编程的可扩展式开放编译器的研究与实现

被引量 : 0次 | 上传用户:anlanyuan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在很多情况下,由于受表达机制(语法构造,控制结构,组合手段等)的限制,我们无法用通用编程语言来构建一个清晰、自然和高效的解决方案,而这时针对特定问题的领域特定语言则是一个很好的选择。因此,如果开发人员能够方便地创造适合他们自己需求的领域特定语言将是极有意义的。 本文以动态语言Lua为例,设计并实现了一个支持静态元编程的可扩展式开放Lua编译器——OpenLua,它能够支持程序员在无需改动编译器的情况下扩展语言的语法设施,从而快速地构造出领域特定语言。 文章首先介绍了静态元编程和开放式编译器的基本概念,也简要介绍了标准Lua语言,同时还对OpenLua做了一个概览。 接着详细描述了OpenLua在语言层面对标准Lua所做的扩展,包括OpenLua为了支持静态元编程和自定义语法而为标准Lua语言引入的3个新的语法设施——用户自定义语法,源代码转换子,编译期模块导入。跟着介绍了OpenLua编译器为静态元程序提供的可编程接口和运行环境。 然后详细描述了OpenLua编译器的实现,包括作为OpenLua开放式架构基础的开放式词法分析算法、开放式SLR解析算法以及用户自定义语法的确定性递归下降解析算法等。接着解释了编译器如何处理与静态元编程相关的3个新的语法设施和转换子调用,即它们的语义。然后还深入探讨了编译器提供的可编程接口和元程序运行环境的实现。 随后作者通过给出OpenLua的若干有趣应用来展示开放式架构可以如何支持语言的扩展。也介绍了该领域的相关研究工作,并将OpenLua与它们做了比较,最后分析总结了OpenLua的不足,并提出了相应的改进计划。
其他文献
目的探讨心脏介入患者的心理应激特点及稳心颗粒对焦虑评分的干预效果。方法对126例有心脏介入指征的患者采用改进的焦虑量表(SAS)进行术前评分,随机分为3组,对照组,心理干预
目的探讨难治性枕叶癫痫的术前定位与手术方法。方法对经手术治疗且随访时间6个月以上的9例枕叶癫痫患者的临床资料进行回顾性分析。采用发作症状评估、影像学检查、长程视频
一、选题目的本文以我国货币政策的股票市场传导机制为研究对象,考察了中国人民银行的货币政策通过货币市场影响股票市场价格,进而通过股票市场影响实体经济过程的数量特征。
近年来,PM2.5已成为中国大气污染的首要污染物,危害人体健康。为弥补地基监测站点在空间分布上的局限性,借助卫星遥感技术估算PM2.5浓度已成为研究热点。文章总结了利用卫星
司马迁的生命体验突出地表现在四个方面,即崇高体验、孤独体验、愧疚体验、缺失性体验.<史记>刻画了孔子事业的伟大和人格的高尚、屈原志趣的崇高与气节的可贵、伍子胥弃小义
目的探讨丙泊酚Wada试验对语言功能的定侧价值,并与功能MR(IfMRI)相比较。方法在2010年1月至2012年3月对18例患者进行了丙泊酚Wada试验,对其中有进行语言功能评估且fMRI语言
本论文以目前所能收集到的所有传世与出土的汉代金文(镜铭、印文、币文除外)为研究对象,在借鉴和吸收前人相关研究成果的基础上,运用综合分析及比较等方法从文字学等角度对汉代
学位
偏微分方程的数值求解问题,是通过使用数值离散方法将其转化为对稀疏线性方程组来求解的.常见的两种求解线性方程组为直接法和迭代法,当求解大型稀疏线性方程组时,迭代法中的
徐有玲主任医师认为:慢性肾衰以肾虚为本,浊阻为标。故以益肾泄浊为治疗大法,把活血化瘀贯穿在治疗始终,且时时顾护胃气,对保护和提高肾功,延长患者生命,确有显著效果。