首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 562 毫秒
1.
利用GNU提供的标准编译器,通过调用词法分析程序生成了C/C++抽象语法树。基于系统崩溃故障模型的软件进行了静态测试,描述了C/C++抽象语法树及其语法和语义分析的具体方法。  相似文献   

2.
为了缩短软件工程生命周期,引入组件、复制的概念,利用抽象语法树(AST)将相同功能的代码设计为一个函数,保留充足的接口参数,利用过程调用开发软件程序,可以提高软件开发效率.  相似文献   

3.
针对传统基于抽象语法树的代码抄袭检测方法中存在的检测准确率不高及无法检测语义层面抄袭的问题,设计了一种基于改进抽象语法树的代码抄袭检测方法,该方法通过TF-IDF加权简化的语法树提高检测准确率.利用加权简化的抽象语法树设计特征提取和相似度计算方法实现对语义抄袭的部分检测,实验结果表明,该改进方法比传统的基于抽象语法树的检测方法的准确率更高,且能有效检测出部分基于语义层面的代码抄袭.  相似文献   

4.
本文介绍一种用于3型文法语言的编程方法,该方法基于约束表达式及扩展FA语法图的概念,吸收了有限状态自动机(FA)和递归子程序调用(RSC)方法的思想,具有程序生成代码少、速度快的特点。  相似文献   

5.
锁志海  赵季中  吕青 《西安交通大学学报》2006,40(12):1397-1399,1409
针对硬件设计的复杂性和自动化效率低等问题,提出了一种基于时钟处理的硬件设计模式.该模式充分考虑了软、硬件模式设计的互通性,并结合元编程技术,将成熟的软件设计模式的思路应用于硬件设计之中.它的核心是:用高速集成电路硬件描述语言(VHDL)解析器分析已知器件的接口,构造语法树,抽取生成器的变量值;将生成器用元程序封装在域实体之中;按照设计模式的作用和具体的变量值生成详细的VHDL代码.应用实例表明,所提模式生成的代码有效性高,设计过程可行性强,可广泛应用于复杂的时钟控制系统的设计领域.  相似文献   

6.
源代码作者身份识别有助于解决恶意代码攻击溯源、代码剽窃、软件侵权等问题,本文提出一种新的基于图匹配网络和抽象语法树的源代码作者身份识别方法.首先,通过删除注释、统一换行符、制表符预处理源代码,消除不同集成开发环境和代码布局的影响;然后,基于数据增强抽象语法树将源代码转换为树结构,添加不同类型的边构建代码特征图,不仅关注语法和句法特征,还提取了代码中数据流和控制流特征;接着使用特征图训练图匹配神经网络,生成源代码的图嵌入特征向量;最后,使用孪生神经网络对输出的两个图嵌入特征向量进行计算,识别源代码作者身份.实验结果表明,本文的方法在包含1000位程序员的Google Code Jam数据集上达到了95.60%的准确率,与现有的源代码作者身份识别方法相比,提高了准确率和扩展性.  相似文献   

7.
Snort规则及规则处理模块分析   总被引:3,自引:0,他引:3  
当前,入侵检测已成为网络安全技术的重要组成部分,开放源代码入侵检测系统Snort是研究入侵检测系统很好的原型。分析了Snort规则语法和规则处理模块,剖析了规则语法树的生成及根据规则语法树进行遍历、查找匹配项的过程,总结了Snort的一些特点。  相似文献   

8.
可编程逻辑控制器(PLC)是工业控制领域中广泛使用的自动控制装置。由于PLC程序缺乏具有普适性的测试工具,开发人员往往只能采用人工方式排查代码错误,导致测试效率低下。工业用户亟需一种标准化PLC代码检测方法,自动完成PLC程序语法检测与分析。该文以IEC61131-3标准为基础,建立基于Backus-Naur范式(BNF)的指令表语法模型。基于该模型构造抽象语法树,进而设计出一种具有线性复杂度的PLC指令表代码语法检测算法。利用2段控制工程中的PLC指令表代码对所提出的算法与商用软件CODESYS Static Analysis进行对比测试,验证了所提算法的可用性。  相似文献   

9.
吕浩音 《甘肃科技》2012,28(21):24-25
函数是C语言程序的重要组成部分,参数在函数的传递和调用中起着举足轻重的作用。讨论了函数的参数和宏参数在使用语法、占用空间、参数替换以及传递方式等方面的区别,并结合程序分析,对C语言中函数的参数以及宏参数的难点进行了探讨。  相似文献   

10.
廖兴  尹俊文  蔡放 《长沙大学学报》2004,18(4):50-53,57
抽象语法树(Abstract Syntax Tree ,AST)作为程序的一种中间表示形式,在程序分析等诸多领域有广泛的应用.利用抽象语法树可以方便地实现多种源程序处理工具,比如源程序浏览器、智能编辑器、语言翻译器等.本文作者介绍了抽象语法树涉及的原理及解释器的设计方案,针对Java语言,利用设计模式理论提出了创建和遍历抽象语法树的思路,并给出较为详细的代码说明.  相似文献   

11.
提出了一种消除抽象语法树文本中冗余的方法,借助Knuth-Morris-Pratt(KMP)算法,设计核心算法,对抽象语法树进行简化,并选出几个经典的代码片段进行实验,对算法的性能做了相应验证.实验结果表明,算法在消除冗余方面的简化率达到90%以上.  相似文献   

12.
Petri网适合于异步并发系统建模,将Petri网转换成硬件描述语言,就可以通过EDA工具来实现Petri网控制器.文中给出了Petri网-VHDL编译程序的构造方法.使用CONPAR语言对Petri网进行描述,获得Petri网的CONPAR格式文本文件;由编译软件FLEX生成的词法分析程序产生相应的单词,并将单词传给BYACC程序;再由BYACC程序识别出这些单词,并以自底向上的方式进行归约,形成一棵抽象语法树;最后,自顶向下遍历这棵抽象语法树,将Petri网的CONPAR格式文本转换为VHDL代码.文中给出了一个实例,将编译获得的VHDL代码,通过EDA软件工具MAX PLUSⅡ编译、仿真、综合并下载到系统可编程器件中,仿真波形和试验结果都证明了这个编译程序的正确性.  相似文献   

13.
基于分层思想的变量类型提取方法   总被引:1,自引:0,他引:1  
提出了一种基于分层思想的,并且无需构造具体语法树的变量类型提取方法。目的是为高级语言的类型信息的提取提供一般方法,从而降低类型系统实现的难度以及产生程序错误的可能性,并且简化高级语言的中间表示,便于后端的代码生成和优化。  相似文献   

14.
基于AST的克隆序列与克隆类识别   总被引:2,自引:0,他引:2  
为了减少代码冗余,改善程序结构,提出一种新的基于抽象语法的代码克隆识别方法,归纳出常见的代码克隆形式并给出相应的重构技术.用二叉树表示源程序的抽象语法(BAST),逐条判断各语句BAST子树的同构性,识别出相似的语句序列作为克隆序列;根据子树同构识别一元克隆类,然后通过克隆类的连接操作,逐步识别二元及任意元数的克隆类.实验分析了多个开源软件,识别出了其中的克隆序列以及克隆类,从中归纳出4种常见的代码克隆,其基本特征分别为:相同的程序点访问同类对象的不同属性、部分变量名不同、针对不同的数据类型实施相同的操作、修改克隆区域外定义的变量,并对这4种代码有效地实施了重构.  相似文献   

15.
针对代码抄袭及软件盗版现象, 研究了3种传统基于程序结构相似性检测方法, 并提出一种基于语法树的程序相似度检测方法。该方法先对源程序进行语法分析得到其语法树, 然后基于语法树重点分析源程序的语法结构并计算其相似度, 从语法结构的角度消除高级抄袭手段所带来的干扰。实验结果表明, 基于语法树的程序相似度检测方法可以较好地检测增加冗余语句、 控制结构的等价替换等10种抄袭手段。  相似文献   

16.
属性是语义分析中非常重要的一个概念,因为它使得语法符号和结构有了意义,而这种意义最终将被计算机接收。属性计算是一个复杂的过程,原因在于属性间的依赖关系的紧密性以及存储结构的复杂性。抽象语法树是语法树的简化,是属性计算中很有效的一种存储结构。本文首先阐述抽象语法树的意义、结构及构造,然后对属性及相关问题作了介绍,最后根据属性文法的种类,给出相应语法结构的属性计算算法。  相似文献   

17.
JavaScript是一种动态脚本语言,被用于提高网页的交互能力.然而攻击者利用它的动态性在网页中执行恶意代码,构成了巨大威胁.传统的基于静态特征的检测方式难以检测经过混淆后的恶意代码,而基于动态分析检测的方式存在效率低等问题.本文提出了一种基于语义分析的静态检测模型,通过提取抽象语法树的词法单元序列特征,使用word2vec训练词向量模型,将生成的序列向量特征输入到LSTM网络中检测恶意JavaScript脚本.实验结果表明,该模型能够高效检测混淆的恶意JavaScript代码,模型的精确率达99.94%,召回率为98.33%.  相似文献   

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

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