共查询到17条相似文献,搜索用时 46 毫秒
1.
GCC(GNU Compiler Collection)编译器编译C语言源程序所生成的抽象语法树文本中包含大量与源代码无关的冗余信息,若直接进行解析,会严重影响分析效率,降低分析精确度,同时会占用大量存储空间。针对此问题,提出一种基于关键词Trie树的GCC抽象语法树消除冗余算法,其根据包含抽象语法树文本有用信息节点的关键词建立Trie树,可实现对抽象语法树文本无用节点的过滤,从而达到优化编译的效果。相比传统KMP消除冗余算法,关键词Trie树算法可以有效避免去冗余过程中常量、变量等有用信息节点的丢失,确保数据的完整性;同时,关键词Trie树算法可以最大限度地减少重复前缀或后缀字符串的比较次数,节省了时空开销。挑选不同长度的C语言源码文件进行去冗余实验,测试该算法的性能,并将其与传统KMP算法进行对比。实验结果表明,所提算法的去冗效率和查准率均得到了极大的提高。 相似文献
2.
抽象语法树(AST)作为程序的一种中间表示形式,在程序分析等诸多领域有广泛的应用。传统的建立AST的方法是通过词法和语法分析的方法。该文提出了一种利用GCC前端结果建立AST的方法,这种方法将GCC编译源程序产生的AST文件,经过一定的格式转换变为XML文档,然后使用XML文档解析器读取该文档,重新建立AST。 相似文献
3.
一种解析GCC抽象语法树的方法 总被引:6,自引:0,他引:6
介绍了GCC抽象语法树的结构及在编译过程中的作用。给出解析抽象语法树所使用的词法规则和语法规则,提出了解析GCC抽象语法树的方法。 相似文献
4.
5.
规范抽象语法与抽象语法树的直接生成 总被引:1,自引:0,他引:1
抽象语法树在很多应用领域中是一个重要的工具,但是在概念上不一致与不规范。本文提出了抽象语法(树)的设计准则,并引进规范抽象语法的概念。本文还给出了为一个源程序从文法直接生成改进的规范抽象语法树的算法。改进的规范抽象语法树结点数远比通常语法分析树少。内存需求量的剧降与应用软件运行的加速,使语法树有实际的应用价值,也可扩大其应用范围。 相似文献
6.
基于抽象语法树的数组越界的静态检测方法 总被引:1,自引:0,他引:1
针对数组访问越界这一类安全漏洞,以源程序的抽象语法树作为分析对象,提出了一种新的静态解决方案。该方案通过分析数组访问越界安全漏洞的表现,抽象出安全模式,然后根据安全模式以及遍历ast过程中记录的节点属性构建安全规则,最后在安全规则的指导下实现对安全漏洞的检测。 相似文献
7.
8.
基于抽象语法树分析的版本控制分支合并算法 总被引:1,自引:0,他引:1
在软件开发中,并行开发已经成为了现实中标准的开发模式,因此软件开发的版本控制在开发过程中得到了非常广泛的应用.虽然大多数的版本控制工具都能完成分支合并以及将不同版本的更改合并起来,但这些工具往往是以一行一行的代码为单位进行文本比较的合并,在遇到某行被同时修改时,则不能给出满意的合并结果.给出了一种新的合并算法,用来解决文本比较分支合并中的问题,它在传统工具的文本比较出现冲突的代码行,对该代码块建立抽象语法树,根据抽象语法树的分析比较,完成不同分支版本代码的自动合并,减少分支合并中的代码冲突及手动合并的工作量,提高开发效率. 相似文献
9.
《计算机应用与软件》2017,(1)
数据泥团是一种常见的代码味道,它将带来重复代码和维护难度增加等问题。针对大部分已有的代码味道自动检测工具无法检测数据泥团,且检测类型不全面等问题,提出一种基于抽象语法树的数据泥团自动检测方法。该方法在已有检测工具的基础上,增加了新的数据泥团类型,并加入了剔除冗余数据泥团和提取子数据泥团等步骤。通过对4个开源项目进行数据泥团实验,结果表明方法具有较高的精确率,与Stench Blossom、inFusion等工具的数据泥团自动检测功能相比,能够检测出一些其他工具无法检测的数据泥团。同时,该方法具有较好的性能,执行时间与系统规模成正比。 相似文献
10.
随着C++语言标准的不断演进,词法语法解析工具如JavaCC等对于很多扩充的新特性以及复杂的语法结构不能做到完全支持,这可能会导致抽象语法树生成错误且不完整;针对这一问题,提出一个针对抽象语法树生成错误的处理框架;首先,通过对JavaCC的扩充,实现一套可以解析C++语言的词法语法分析器,生成抽象语法树并记录报错行;其次,根据报错行寻找所在函数区间即不支持或不匹配的语法片段;最后,通过注释函数区间的方式来跳过不支持或不匹配的语法片段进行错误处理并迭代生成抽象语法树;实验结果表明,对抽象语法树生成进行错误处理后可以更全面的分析代码,抽象语法树完成率上升37.8%,分析行数提高3.9倍。 相似文献
11.
12.
本文给出了以抽象语法树为基础的软件静态分析工具的体系结构,介绍了该工具中各个模块的设计与实现方法,着重于规则库的设计,以及利用定义好的规则实现自动化的代码检测的过程。 相似文献
13.
本文以面向数据分析为基本思想,同时结合相似度概率评估技术,实现中文问句句法分析。对于输入问句,首先需要经过词汇层与词性层以及句型和疑问词初选得到片段;然后,基于已构建的数据库,对词汇词性序列的子序列搜索片段,进行片段组合;最后,对输入语句与初选结果进行相似性评估,完成输入语句的组合分析过程。为论证方法有效性,基于200句山西旅游问句做实验。实验结果表明,句法分析的准确率达到96%。 相似文献
14.
为了便于代码优化及指令生成,在并行C语言编译器CPCC(Concordia Parallel C Compiler)将源程序的抽象语法树(Abstract Syntax Tree, AST)转换成目标机PAAG(Parallel Array Architecture GPU)处理器的汇编代码时,采用了三地址码作为中间表示形式。基于CPCC AST的结构特点,将AST到三地址码的转换分为三类,即一般表达式的翻译、布尔表达式的翻译以及语句的翻译,并给出了其详细设计思路及是实现方法。实验结果表明,该方案实现了从源码的抽象语法树到三地址码的转换。 相似文献
15.
该文设计了一种面向信息内容安全的不良文本信息过滤模型。该模型采用主题信息过滤和倾向性过滤两级过滤模式,以语句为基本处理单元,采用依存句法获取语句的语义框架,结合基于知网的词汇褒贬倾向性判别,识别文本中的不良信息并予以过滤。实验表明,该模型能够较好地提高文本过滤效率和准确率。 相似文献
16.