首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 859 毫秒
1.
针对程序代码相似性检测度量忽略程序语义、出现无效度量的问题, 提出一种基于抽象语法树(AST:Abstract Syntax Tree)的程序代码相似性度量方法。通过预处理去除生成AST时的冗余信息, 再进行词法语法分析, 得到相应的AST; 然后通过自适应阈值的选取方式, 利用AST遍历得到的程序属性、 方法序列, 对AST进行相似度计算, 最终判定是否抄袭, 生成相似度检测报告。实验结果表明, 该方法能有效检测Java程序代码的多种抄袭行为。  相似文献   

2.
针对大规模在线开放课程环境下C/C++语言学习者人数众多、自动评阅准确率低的问题,提出一种基于多特征综合分析的编程题自动评分方法。通过对源程序编译预处理剔除提示性信息,用词法分析和抽象语法树(AST)分别抽取学生程序和标准模板程序的多种特征并计算特征相似度,再根据程序编译是否通过,采用不同策略综合分析多种特征相似度进行自动评分。特征相似度包括多项测试用例运行结果的相似度、AST抽取的各项特征的相似度和源程序代码相似度。如果学生程序编译失败,在计算AST特征相似度的同时需进行源程序代码相似度分析。实验结果表明:相对于仅基于测试用例运行结果的动态测试方法和传统静态分析方法,所提方法的平均准确率分别提高了18.48%和14.17%,评价结果与人工评分高度相关且无需借助人工辅助分析。该方法适用于大规模在线开放课程教学。  相似文献   

3.
针对C程序提出一种生成标记字符串的方法,即用XML文本表示C程序.首先格式化源程序,从C语言全集中挑选出部分能代表程序结构的关键结构,并用正则表达式进行识别,然后将C程序中容易发生抄袭的结构信息存储到XML文本中,最后对实验系统进行了测试.测试结果表明,该方法能快速找到程序中发生抄袭的代码,从而提高相似度比较的速度和准确性.  相似文献   

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

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

6.
程序代码相似度的自动度量不仅可以检测程序代码的抄袭问题.还可以辅助实现作业批改的自动化或试卷评阅的自动化.介绍了程序代码相似度自动度量技术.以及国外的几个程序抄袭检测系统的设计与实现方法.  相似文献   

7.
论文抄袭一直是学术领域重点关注和研究的问题。为了有效的检测出抄袭的情况,本文结合模式匹配算法研究设计了论文抄袭检测方法。提出采用模式匹配中的基于字符串匹配的相似度算法,通过添加、删除、替换等操作还原文档,并计算文档间的相似距离,根据相似距离获得文档相似度,从而判断文档的抄袭比例。反抄袭算法的研究实现为遏制进一步恶化的抄袭现象,净化学术风气提供了有效的监控技术。  相似文献   

8.
刘炜  李明  杨合立 《甘肃科技》2011,27(22):42-45
基于前人在TDT中对语义矢量的相似性计算研究,以及本体和语法结构在文本相似性研究方面的应用成果,提出了以词频分析作为辅助手段,将新闻中的关键要素归纳为时间、空间、参与事件的主客体、行为等几个语义类;借助WordNet与本体技术计算文档特征词的相似度,并且结合文本的语法结构特点,共同应用于文本的相似度计算,并以此作为新事件检测中相似度计算的基础,提高新事件检测的准确性。  相似文献   

9.
基于结构特征聚类的相似代码检索方法   总被引:1,自引:1,他引:0  
针对基于图的相似代码检测方法复杂度高、对代码多样化识别能力有限等问题,提出基于结构特征聚类的方法。首先将代码表示为控制依赖树,在此基础上执行代码标准化,消除代码表达方式的多样化,以便识别语法表示不同,而语义相似的代码;然后采用特征向量描述程序的结构信息,将复杂的图的相似度求解问题转换为简单的相似向量的聚类问题,快速提取可能相似的候选代码。实验结果表明,方法与Gabel等人提出的方法相比,可以识别更多的代码多样化。  相似文献   

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

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

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

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

14.
使用FTP服务器收集考生上传的VB源码时,由于不能限制用户下载,容易导致被动抄袭现象发生,影响了考试的公平性。使用PHP语言设计了一种基于LAMP环境的VB程序语言源代码采集系统,可以有效保护考生上传源码的安全,同时具备了文件分类存放和初步雷同检测功能。  相似文献   

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

16.
在很多大型C、C++程序中,内存泄漏是一种十分常见的问题.内存泄漏是很难识别的,因为它唯一的特征就是内存消耗的增长.对内存泄漏产生的原因进行了分析,并且提出了一种基于可执行源码的静态分析方法.对可执行源码进行预处理,生成抽象语法树和控制流图,并且计算出所有可达路径,然后在每条可达路径上进行内存泄漏故障的检测和分析.此方法已在缺陷检测系统(DTS)中进行验证,通过对大量GCC开源工程的测试,证实本方法有效的检测出内存泄漏的故障.  相似文献   

17.
软件测试是软件工程的重要组成部分,程序静态分析技术是软件测试中静态测试的基础,该技术通过对程序源代码进行分析以发现其中的错误.文章提出了一种程序静态分析方法,建立了一个树形结构的模型PAT(Program Analysis Tree)形式化描述了Java程序,准确地描述了Java程序的逻辑结构.最后给出了一个基于此模型的程序分析方法.  相似文献   

18.
在软件开发过程中绝大多数克隆代码集中在函数内部,为了更加快速有效地检测出克隆代码,提出了一种基于函数内部特征矩阵的代码克隆检测算法。该算法通过提取函数内部特征,从而达到将具体代码的比较转化为对特征矩阵进行相似度计算。实验结果表明,该算法可以检测出所有克隆函数,并与基于字符串代码克隆检测算法和基于串匹配的程序代码相似性识别方法相比,该算法在运行时间及精度上均优于基于字符串代码克隆检测算法和基于串匹配的程序代码相似性识别方法。其次,通过使用N-grams算法对函数名进行相似度检测,使得该算法在运行效率上得到了显著提升。  相似文献   

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

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