首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
Android应用程序中存在大量的代码异味,现有的Android代码异味检测工具效率较低.为此,将抽象语法树(AST)进行分层,提出一种基于分层AST的Android异味检测方法 .实例研究表明,与其他方法相比,该方法能检测出更多类型的Android代码异味.  相似文献   

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

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

4.
基于抽象语法树的代码静态自动测试方法研究   总被引:1,自引:0,他引:1  
软件测试是排除软件故障,提高软件质量和可靠性的重要手段。从是否需要执行被测程序角度考虑,软件测试分为静态测试和动态测试。动态测试通过输入测试数据,动态执行程序来发现软件中存在的错误。尽管动态测试能发现部分软件错误,但对于一些特殊类型错误的检测无效。鉴于此,本文采取了一种特殊的静态分析技术来实现对代码的测试。本文首先讨论了传统软件测试方法的缺点和局限性,给出了软件的故障模型,进而提出了基于抽象语法树的静态分析技术,并给出了故障自动检测算法。依据该算法开发了自动化测试工具,给出了实验结果和对比分析,并指出了下一步的研究方向。  相似文献   

5.
软件测试是排除软件故障,提高软件质量和可靠性的重要手段。从是否需要执行被测程序角度考虑,软件测试分为静态测试和动态测试。动态测试通过输入测试数据,动态执行程序来发现软件中存在的错误。尽管动态测试能发现部分软件错误,但对于一些特殊类型错误的检测无效。鉴于此,本文采取了一种特殊的静态分析技术来实现对代码的测试。本文首先讨论了传统软件测试方法的缺点和局限性,给出了软件的故障模型,进而提出了基于抽象语法树的静态分析技术,并给出了故障自动检测算法。依据该算法开发了自动化测试工具,给出了实验结果和对比分析,并指出了下一步的研究方向。  相似文献   

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

7.
目前的源代码漏洞检测方法大多仅依靠单一特征进行检测,表征的维度单一导致方法效率低.针对上述问题提出一种基于结构化文本及代码度量的漏洞检测方法,在函数级粒度进行漏洞检测.利用源代码结构化文本信息及代码度量结果作为特征,通过构造基于自注意力机制的神经网络捕获结构化文本信息中的长期依赖关系,以拟合结构化文本和漏洞存在之间的联系并转化为漏洞存在的概率.采用深度神经网络对代码度量的结果进行特征学习以拟合代码度量值与漏洞存在的关系,并将其拟合的结果转化为漏洞存在的概率.采用支持向量机对由上述两种表征方式获得的漏洞存在概率做进一步的决策分类并获得漏洞检测的最终结果.为验证该方法的漏洞检测性能,针对存在不同类型漏洞的11种源代码样本进行漏洞检测实验,该方法对每种漏洞的平均检测准确率为97.96%,与现有基于单一表征的漏洞检测方法相比,该方法的检测准确率提高了4.89%~12.21%,同时,该方法的漏报率和误报率均保持在10%以内.  相似文献   

8.
基于语法树的程序代码复制检测方法及其评价机制的研究   总被引:3,自引:0,他引:3  
程序代码复制(抄袭)检测是计算机软件理论与计算机应用技术中重要的科学问题之一.深入总结了程序代码复制检测的理论方法和技术发展现状,积极探索程序代码在语法树框架下的各种适用性方法,开展基于语法树的多种复制检测方法及其评价机制研究,并详细地阐述了其中的关键问题.  相似文献   

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

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

11.
为了辅助教师对学生实验代码抄袭检测。根据已有的检测算法,提出一种以多行为单位,对代码进行标准化、数字化、预处理,并使用基于指纹的方式进行比较的方案。该方案不仅能够检测代码的相似度,同时能够给出抄袭的行数。经过实验教学应用,该方法能够检测大部分学生抄袭的情况,能够实际应用。  相似文献   

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

13.
利用GNU提供的标准编译器,通过调用词法分析程序生成了C/C++抽象语法树。基于系统崩溃故障模型的软件进行了静态测试,描述了C/C++抽象语法树及其语法和语义分析的具体方法。  相似文献   

14.
针对漏洞检测领域面临的实验平台不统一、数据集异构等问题,研究词向量模型在C/C++函数漏洞检测方面的应用.用5种词向量模型对源代码生成的抽象语法树结构进行知识表示,用6种神经网络模型进行漏洞检测,实验结果表明,函数级代码具有浅层的语义关系,代码块内部联系紧密.  相似文献   

15.
现有的抄袭检测方法大多根据相似度来判定文档间是否存在抄袭.与常见的复制检测不同,在抄袭检测中,占文档很小比例且未加引用的复制文本也将被认定为抄袭.受文档尺寸、复制篇幅和干扰信息的影响,现有方法的检测效果均不理想.针对这种局限性,文中分析了文本语义与指纹排列顺序的关系,提出了语义匹配方法,将指纹向量投影到一个二进制向量,在降低维数的同时保留了指纹的位置信息.在PAN公用语料集上将该方法与Jaccard和Hamming距离法进行了对比测试,发现文中方法的召回率和准确度均更优.  相似文献   

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

17.
对程序代码抄袭检测中多种字符串匹配算法的实现原理进行了描述,给出匹配算法计算相似度的公式以及相对应的时间复杂度。由于字符串匹配算法在程序代码抄袭检测中应用较为广泛,对其中的B-F(Brute-Force)朴素算法、LCS(Longest Common Subsequence)最长公共字串算法、GST(Greedy String Tiling)贪心字符串匹配算法等经典算法的总结比较是一件有意义的研究工作。  相似文献   

18.
软件抄袭检测是软件知识产权保护的关键技术之一。提出了一种新的软件胎记——栈行为动态胎记(stack operation dynamic birthmark,SODB),根据软件在执行过程中函数调用栈的入栈和出栈行为,生成栈深度变化序列标识软件;通过计算不同软件在相同输入条件下栈行为动态胎记的相似性,评估软件功能和执行过程的相似度,判断软件是否存在抄袭。实验中对14种35个版本的开源软件,利用不同编译器、编译条件和混淆工具进行处理,共生成了87个实验样本。试验结果表明本方法可以在缺少源代码情况下,准确识别出存在抄袭的软件,误判率和漏判率仅为6.7%和7%。  相似文献   

19.
学生的编程水平直接反映技术类课程的学习效果,因此教学考察中程序代码作业的比重也越来越大.由于程序代码作业抄袭成本低,导致抄袭现象不同程度地存在于各高校教学中,严重影响了学生能力的培养和教师教学的效果,打击学生学习的积极性乃至损坏学风.为此以智能且自动化方式找出学生作业的相似之处,分析学生抄袭的总体情况为目的,将人工智能算法和数据处理分析技术相结合,提出一种学生作业抄袭检测方法.首先,分析学生提交的程序代码作业的复杂情况,设计作业数据预处理流程.然后,具体提出了基于KR和Winnowing的程序代码作业相似度检测算法,与传统检测方法相比通过代码格式化等改进手段提升了学生作业相似检测的精准度,并在大批量作业检测实践中,研究优化算法增加了不同学生之间作业相似结果的区分度.为了验证相似度计算部分的有效性和实用性,进一步设计了相关的模拟实验流程(包括与JPlag检测系统的对比),给出在相同实验数据集上不同抄袭类型下的相似度计算结果.最后,依托于科大讯飞博思智慧在线学习平台对该研究进行了真实场景的实际应用.实验结果以及实际应用都表明,该程序代码作业抄袭检测方法,对高校学生程序代码作业相似度检测有效...  相似文献   

20.
代码审查是一种高效的程序缺陷检测方法,因为它能够在软件开发的过程中找出程序的错误,这很大程度上降低了改正错误的成本.但是传统的代码审查是一种劳动力密集型的方法,为了提高代码审查的效率,一系列的自动化代码缺陷检测技术和工具已经被提出并得到了广泛的应用.本文介绍了支持代码审查的自动化代码缺陷检测技术的相关内容.结合Java语言的特点对自动代码缺陷检测体系结构和工作的原理做了论述,并引入了缺陷模式树来提高检测的速度;最后通过具体的实验来分析了自动化代码缺陷检测的有效性和高效性.  相似文献   

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

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