首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 62 毫秒
1.
规范抽象语法与抽象语法树的直接生成   总被引:1,自引:0,他引:1  
张幸儿 《计算机学报》1990,13(12):926-933
抽象语法树在很多应用领域中是一个重要的工具,但是在概念上不一致与不规范。本文提出了抽象语法(树)的设计准则,并引进规范抽象语法的概念。本文还给出了为一个源程序从文法直接生成改进的规范抽象语法树的算法。改进的规范抽象语法树结点数远比通常语法分析树少。内存需求量的剧降与应用软件运行的加速,使语法树有实际的应用价值,也可扩大其应用范围。  相似文献   

2.
消除GCC抽象语法树文本中冗余信息的算法研究   总被引:1,自引:0,他引:1  
由GCC编译器对C语言源程序进行语法分析产生的抽象语法树文本存在大量的冗余信息,如果直接对其进行解析,则会产生解析效率低、产生的抽象语法树会占用大量的存储空间的问题.针对此问题,在深入研究(GDC抽象语法树文本结构和解析过程的基础上,提出了一种高效消除冗余的算法,通过实验证明了算法的正确性和适用性,并提出了GCC抽象语法树解析的数学定义.  相似文献   

3.
在软件同源性检测方法中,基于抽象语法树的比对方法能够有效地检测出基于代码全文拷贝、修改变量名、调整代码顺序等的抄袭手段,被广泛用于抄袭检测工具中。但基于抽象语法树的比对方法对于修改变量类型和添加无意义变量的抄袭手段束手无策。针对这种情况,提出了一种基于抽象语法树的改进思想,该思想通过剪去语法树中影响判断的叶子节点的手段来还原检测原文抄袭,能够达到有效检测修改变量类型和添加无意义变量等抄袭的目的。  相似文献   

4.
GCC(GNU Compiler Collection)编译器编译C语言源程序所生成的抽象语法树文本中包含大量与源代码无关的冗余信息,若直接进行解析,会严重影响分析效率,降低分析精确度,同时会占用大量存储空间。针对此问题,提出一种基于关键词Trie树的GCC抽象语法树消除冗余算法,其根据包含抽象语法树文本有用信息节点的关键词建立Trie树,可实现对抽象语法树文本无用节点的过滤,从而达到优化编译的效果。相比传统KMP消除冗余算法,关键词Trie树算法可以有效避免去冗余过程中常量、变量等有用信息节点的丢失,确保数据的完整性;同时,关键词Trie树算法可以最大限度地减少重复前缀或后缀字符串的比较次数,节省了时空开销。挑选不同长度的C语言源码文件进行去冗余实验,测试该算法的性能,并将其与传统KMP算法进行对比。实验结果表明,所提算法的去冗效率和查准率均得到了极大的提高。  相似文献   

5.
一种解析GCC抽象语法树的方法   总被引:6,自引:0,他引:6  
石峰  刘坚 《计算机应用》2004,24(3):115-116
介绍了GCC抽象语法树的结构及在编译过程中的作用。给出解析抽象语法树所使用的词法规则和语法规则,提出了解析GCC抽象语法树的方法。  相似文献   

6.
基于抽象语法树的软件度量工具的设计与实现   总被引:4,自引:0,他引:4  
为了提高软件质量和控制,改善软件开发过程,文中提出了以抽象语法树为核心的软件度量工具(ASTMT)的体系结构图,介绍了度量工具的功能及特点,详细论述了工具中各个模块的设计与实现方法,着重讨论了抽象语法树的组成及其节点设计。介绍该工具在软件开发中的实际应用,进而验证了工具的实用性与有效性。  相似文献   

7.
源代码漏洞的自动检测是一个重要的研究课题。目前现有的解决方案大多是基于线性模型,依赖于源代码的文本信息而忽略了语法结构信息,从而造成了源代码语法和语义信息的丢失,同时也遗漏了许多漏洞特征。提出了一种基于结构表征的智能化漏洞检测系统Astor,致力于使用源代码的结构信息进行智能化漏洞检测,所考虑的结构信息是抽象语法树(Abstract Syntax Tree,AST)。首先,构建了一个从源代码转化而来且包含源码语法结构信息的数据集,提出使用深度优先遍历的机制获取AST的语法表征。最后,使用神经网络模型学习AST的语法表征。为了评估Astor的性能,对多个基于结构化数据和基于线性数据的漏洞检测系统进行比较,实验结果表明Astor能有效提升漏洞检测能力,降低漏报率和误报率。此外,还进一步总结出结构化模型更适用于长度大,信息量丰富的数据。  相似文献   

8.
软件在生命周期中一直在发生演化,对软件演化的分析可以揭示软件发展的一些基本规律。现有方法通常使用改变的代码行数作为软件演化的指标,但是这项指标不能反映软件架构的变化,也不能帮助理解软件演化的具体情况。使用抽象语法树匹配ATS(Abstract Syntax Tree)进行代码分析能够更清楚地了解软件中发生改变的具体内容。针对Java语言编写的软件,可以了解静态域的添加、删除和类型修改;类的添加、删除、类型修改和方法体修改。这些信息能更好地帮助理解软件演化。  相似文献   

9.
随着C++语言标准的不断演进,词法语法解析工具如JavaCC等对于很多扩充的新特性以及复杂的语法结构不能做到完全支持,这可能会导致抽象语法树生成错误且不完整;针对这一问题,提出一个针对抽象语法树生成错误的处理框架;首先,通过对JavaCC的扩充,实现一套可以解析C++语言的词法语法分析器,生成抽象语法树并记录报错行;其次,根据报错行寻找所在函数区间即不支持或不匹配的语法片段;最后,通过注释函数区间的方式来跳过不支持或不匹配的语法片段进行错误处理并迭代生成抽象语法树;实验结果表明,对抽象语法树生成进行错误处理后可以更全面的分析代码,抽象语法树完成率上升37.8%,分析行数提高3.9倍。  相似文献   

10.
为了便于代码优化及指令生成,在并行C语言编译器CPCC(Concordia Parallel C Compiler)将源程序的抽象语法树(Abstract Syntax Tree, AST)转换成目标机PAAG(Parallel Array Architecture GPU)处理器的汇编代码时,采用了三地址码作为中间表示形式。基于CPCC AST的结构特点,将AST到三地址码的转换分为三类,即一般表达式的翻译、布尔表达式的翻译以及语句的翻译,并给出了其详细设计思路及是实现方法。实验结果表明,该方案实现了从源码的抽象语法树到三地址码的转换。  相似文献   

11.
Two families of conciliation processes for intelligent agentsbased on an iterated merge-then-revise change function for beliefprofiles are introduced and studied. The processes from thefirst family are sceptical in the sense that at any revisionstep, each agent considers that her current beliefs are moreimportant than the current beliefs of the group, while the processesfrom the other family are credulous. Some key features of suchconciliation processes are pointed out for several merging operators;especially, the stationarity issue, the existence of consensusand the properties of the induced iterated merging operatorsare investigated.  相似文献   

12.
基于MC的医学三维等值面的平滑与归并   总被引:12,自引:2,他引:12       下载免费PDF全文
为了提高医学三维图象的重建效果和速度,在对用于构造等值面的MC(Marching Cubes)算法进行分析的基础上,提出了对等值面进行三维空间方向平滑和多边形法形法向归并的方法。等值面方向平滑的方法就是将等值面分解为一个三维坐标场和一个法向矢量场,然后对其法向矢量场作矢量平滑处理;而等值面的多边形法向归并则是根据适当的门限值,将原来由大量小三角面片构成的等值面归并成由较少的多边形面片构成的等值面。实验结果表明,该方法能显著改善三维重建的效果,并能提高三维绘制的速度。  相似文献   

13.
利用贝叶斯网络进行因果关系推理已广泛应用于人工智能领域。基于约束方法从观测数据中构建贝叶斯网络通常得到的是其马尔科夫等价类,因存在无向边而无法进行有效的因果推断。为此,基于贝叶斯网络评分函数,并结合集成学习提出了一种模型融合算法,通过对不同的网络结构加权融合,以减少网络中无向边的个数,进而提高其可推断性。实验结果表明,不仅显著减少了无向边条数,也提高了最终网络结构的学习效果,验证了算法的有效性。  相似文献   

14.
计算和数据分解是分布主存系统中并行编译的关键,在并行优化编译器的并行识别过程中,许多串行代码无法找到全局一致的分解结果。针对这种情况,该文提出一种融合程序控制流的动态分解算法,增加控制流对分解的影响,使生成的分解结果更适合于后端自动生成的并行代码。实验分析结果表明了该方法的有效性。  相似文献   

15.
16.
基于改进快速分水岭变换的图像区域融合   总被引:10,自引:0,他引:10  
提出一种改进的快速分水岭变换算法,可在只增加很小算法复杂度的情况下获得梯度图像的多尺度信息;进而构造了一个新的区域相似性函数,该函数综合考虑了灰度差异、边界强度、融合进度、边界复杂度、纹理信息等多方面因素,并将改进分水岭变换中获得的多尺度信息用作评价边界强度的指标.实验证明,该算法有很好的鲁棒性和适应性.  相似文献   

17.
针对快速排序法在最坏情形下算法效率较低的弊端,提出了一种改进算法,即利用归并法对快速排序进行改造,使其在最坏情况下的性能有了显著的提高。  相似文献   

18.
介绍CPN(Colorea Petri Nets)的基本概念,用CPN建模实现动态的、并发的多路归并外排序算法。算法利用多个缓冲区解决外部文件读入的等待延时,通过调整缓冲区的大小和数量可在不同的机器上获得最佳效果。  相似文献   

19.
郑黎晓  许智武  陈海明 《软件学报》2011,22(11):2564-2576
提出一种上下文无关文法的句子生成算法.对于给定文法,算法生成一个满足该文法分支覆盖准则的句子集.结合长度控制、冗余消除和句子集规模控制等策略,使得生成的句子较短、无冗余、句子集规模较小.考察了算法在基于文法的软件系统的测试数据生成方面的应用情况.实验结果表明,该算法生成的测试数据具有较强的程序揭错能力,并且能够帮助测试人员提高测试速度.  相似文献   

20.
辜卫东  李兵 《计算机科学》2018,45(9):279-282, 293
针对彩色图像分割精度不高的问题,提出了一种具备多尺度空间约束的自动彩色图像分割算法。基于改进的随机区域合并方法,该算法首先实施双边分解并执行基于多通道信息和多尺度梯度的过度分割;然后,在CIE L*a*b*颜色空间中使用规范化的颜色直方图来表示每个子区域,构造一个基于过度分割结果的区域邻接图;最后,在区域邻接图上执行具备空间约束条件的随机区域合并策略,为每个尺度构造一张分割图。在BSDS图像数据库中进行 对比实验,结果表明,在直接视觉对比和量化分析上,相比现有的分割算法,所提方法表现出了更好的分割效果。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号