共查询到20条相似文献,搜索用时 15 毫秒
1.
2.
采用扩展的巴科斯范式(EBNF)定义SQL语言的语法规则,提出了一种基于分析器自动生成工具(JavaCC)的SQL语言编译器的设计模型。该模型采用Java语言开发,具有良好的平台无关性;分别从词法、语法和语义分析、信息提取等方面进行编译器的设计与实现。实际运行结果表明:该模型能够快速高效地构建SQL编译器,且具有良好的可扩展性。 相似文献
3.
4.
GCC编译器的窥孔优化及在DCT变换中的应用 总被引:1,自引:0,他引:1
GCC编译器是一种可重定向的编译程序,其开发的目的是提高GNU系统中程序开发的效率。GCC支持C、C++和JAVA等7种源语言,以及MIPS和ARM等36种体系结构。它具有以下特点:清晰的前端语法树结构;高度概括的抽象机中间语言;简洁的机器描述;支持多源语言开发和多平台移植。 相似文献
5.
可视编译器的设计与实现 总被引:1,自引:0,他引:1
通过一个实际的可视编译器开发实例,描述编译器前端的实现方法。这个编译程序除了易于操作的窗口程序外,还包含了标准C语言子集的编译器。这套编译器涵盖了词法分析器、语法分析器、语义分析器、中间代码生成器和简单错误处理器等一整套程序。通过这个实例可以直观地表现词法和语法的构造过程,图文并茂,生动说明编译器中词法器、语法器的功能及其构造过程。 相似文献
6.
Monad作为构造纯函数式语言的工具,能构造出诸如错误处理、状态、IO等非纯函数式语言的特征。该文通过组合状态转换Monad和异常处理Monad来定义纯函数式语言通道系统操作,给出了通道系统操作的操作语义。 相似文献
7.
8.
Polyglot是一种避免代码复制的、高度可扩展的编译器前端框架。用户只需扩展该框架,定义对抽象语法树、语义分析等的必要修改,即可实现Java语言扩展。为指导用户在Polyglot上快速开展工作,该文总结Polyglot的主要流程和类体系,剖析其利用委托、访问者、抽象工厂等实现可升级扩展的方法,简述了Polyglot的已有应用及应用步骤。 相似文献
9.
肖自红 《计算机与数字工程》2011,39(2):90-94
提出了一种基于WEB的C语言教学支持系统.该系统基于.NET平台,并通过客户端脚本与经典的C语言编译器无缝交互功能.利用B/S开发模式中数据交互通道实现了程序的逻辑功能性检测;结合面向对象的工程化设计思想和尝试性的语法语义分析模式对C程序进行语法检错判断.文章还结合工程应用方法分析了系统错误处理的重要性,对出现的各类错... 相似文献
10.
基于IEC61131-3的IL编译器的设计与实现 总被引:1,自引:0,他引:1
为解决目前国内各厂PLC(programmable logic controller)产品的编程语言互不兼容,使得不同系列产品的PLC编译器可重用性很低的问题,设计实现了基于IEC61131-3标准的IL(instruction list)语言编译器.首先设计了编译器的逻辑结构,借助Flex和GNU Bison工具,按照标准IL语言的词法,语法要求,设计并实现了词法、语法分析器,简述了生成目标代码具体实现方法,然后在数控系统中进行了测试运行,实验结果表明,该编译器能正确解释标准IL语言的用户程序,且运行可靠. 相似文献
11.
本文提出一种“语义模式匹配”的语义处理方法。这种方法通过一套语义模式来描述源语言的语义规定,采用为源语言程序的语法树寻找语义匹配的方式来完成语义分析,取代了过程形式的语义分析程序。语义模式匹配方法面向工程应用,方法本身具有通用性和可移植性。我们在757外围机上以FORTRAN Ⅱ为例实现了一个采用语义模式匹配方法的语义处理器SP,并使用SP具体处理了两个例子。 相似文献
12.
同步数据流语言(如Lustre)近年来在航空、高铁、核电等安全攸关领域得到广泛应用.这些领域对相关开发工具本身的安全性有着相当高的要求.为尽力解决好”误编译”问题,近期人们借助reliable-by-construction辅助定理证明器实现常规命令式语言编译器的构造和验证取得了很大的成功,如CompCert C编译器.L2C是基于这种方法开发的可信编译器,它以扩展的Lustre语言为源语言,以Clight (CompCert中的C语言子集)为目标语言.就我们所知,L2C是同类工作中唯一面向实际工业应用的同步数据流语言编译器.本文重点介绍L2C编译器的核心翻译步骤及其设计与实现过程中考虑的主要问题和相关经验. 相似文献
13.
14.
为实现基于TTCN-3的协议一致性测试系统,提出一种通过编译方式将TTCN-3语言转换为C++语言的编译器方案。通过对TTCN-3核心语言的研究分析,运用正则语言解析方法实现词法分析模块;在词法分析输出基础上编写上下文无关文法规则,使用多种方法较为彻底地解决语法冲突问题,实现语法分析模块;实现将TTCN-3语言转换为C++语言的编译器前端模块。该方案可快速实现对TTCN-3源代码的词法分析和语法分析,输出单词符号序列并检查其是否符合预定义的语法规则,对错误进行定位、报错并输出编译结果。 相似文献
15.
编译器是高级语言的工作基础,它本身是一种复杂的程序.文中研究并实现了编译器前端的自动构造技术,能大大提高编译类软件的开发效率.重点讨论了如何合理设置接口,以便综合运用词法、语法分析器的自动构造工具LEX和YACC.提出了预置三级错误陷阱来分别俘获源程序词法、语法、语义错误的思想,能减少错误级联,并能更准确地报告错误的性质.作者已应用该技术编写出一个面向C语言的并行语言编译器前端,验证了该技术是可行的和高效的. 相似文献
16.
编译器前端自动构造的研究与实现 总被引:2,自引:0,他引:2
编译器是高级语言的工作基础,它本身是一种复杂的程序。文中研究并实现了编译器前端的自动构造技术,能大大提高编译类软件的开发效率。重点讨论了如何合理设置接口,以便综合运用词法、语法分析器的自动构造工具LEX和YACC。提出了预置三级错误陷阱来分别俘获源程序词法、语法、语义错误的思想,能减少错误级联,并能更准确地报告错误的性质。作者已应用该技术编写出一个面向C语言的并行语言编译器前端,验证了该技术是可行的和高效的。 相似文献
17.
18.
测试用例的自动生成是实现测试自动化的重要保障,是验证可信软件的基本方法.在分析现有测试用例自动生成方法的基础上,提出了一种基于编译的错误可跟踪的测试用例自动生成方法.该方法以编译器为依托,通过对其语法和语义进行扩展,将测试需求很好地融入到源程序中参与分析,并利用代码生成器在生成目标代码的同时根据相应的分析结果直接生成对应的测试用例.该方法将测试用例和目标代码生成统一到编译器中,避免了独立的测试用例自动生成工具在获得编译器相关分析结果时而导致的接口开销.同时,通过对源程序行号信息的跟踪,使得测试用例在无法通过测试时能够很快定位出错位置,以方便程序开发者修改.最后,通过一个示例程序说明了该方法的具体实现过程,证明了该方法的有效性. 相似文献
19.
程序设计语言的形式规格说明是程序设计语言标准化、编译器自动生成和程序正确性证明的基础。良好的形式规格说明对语言的设计者、实现者和使用者都是有益的。 1.程序设计语言的代数规格说明方法 代数规格说明方法起源于ADJ小组,他们把语言的语法作为初始代数T,语义论域则是同样基调(signature)上的代数A,使得语言的语义由唯一同态f:T→A自动给 相似文献
20.
编译器模糊测试,是测试编译器功能性与安全性的常用技术之一.模糊测试器通过产生语法正确的测试用例,对编译器的深层代码展开测试.近来,基于循环神经网络的深度学习模型被引入编译器模糊测试用例生成过程.针对现有方法生成测试用例的语法正确率不足、生成效率低的问题,提出一种基于前馈神经网络的编译器模糊测试用例生成方法,并设计实现了原型工具FAIR.与现有的基于token序列学习的方法不同,FAIR从抽象语法树中提取代码片段,利用基于自注意力的前馈神经网络捕获代码片段之间的语法关联,通过学习程序设计语言的生成式模型,自动生成多样化的测试用例.实验结果表明,FAIR生成测试用例的解析通过率以及生成效率均优于同类型先进方法.该方法显著提升了检测编译器软件缺陷的能力,已成功检测出GCC和LLVM的20处软件缺陷.此外,该方法具有良好的可移植性,简单移植后的FAIR-JS已在JavaScript引擎中检测到两处软件缺陷. 相似文献