首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到10条相似文献,搜索用时 46 毫秒
1.
《软件》2019,(11):4-8
为了检测出数据库实验课程中结构化查询语言(StructuredQueryLanguage,SQL)语句代码的抄袭行为,发现因SQL语句篇幅较短,使用现有的技术进行代码检测却没有得到预期的结果,于是提出了一种基于编码习惯的SQL语句抄袭检测算法。获取学生历史的编码数据并分类,判定待检测代码的类别并将其与之类别相同的代码依照学生的编码习惯进行特征提取,进而得到特征矩阵并对比代码之间的相似程度,对涉嫌抄袭的代码进行过滤,判断该代码是否为该学生编写。实验结果表明,该算法能够有效地判断出学生的抄袭行为,同时也解决因编码篇幅较短而带来的难以检测是否为抄袭代码这一问题。  相似文献   

2.
近年来,随着不同编程语言代码自动转换工具的出现,跨语言的代码抄袭检测问题受到了越来越多的关注.现有跨语言代码抄袭检测主要包括传统的基于中间特征的检测方法和近年来出现的基于机器学习的检测方法,后者在检测模型训练完成之后具有更好的检测速度,是当前跨语言代码抄袭检测的研究热点.然而,现有的基于机器学习的跨语言抄袭检测方法大多将代码作为文本来处理,未考虑代码的结构特征.结合代码基于抽象语法树的结构特征,本文提出了一个基于伪孪生神经网络框架的跨语言抄袭检测工具CLPDetector.该工具将训练数据中的源代码对转换成对应的抽象语法树,基于抽象语法树生成代码的向量表示,然后将结合BiLSTM、CNN和Attention的深度神经网络嵌入到伪孪生网络架构中训练抄袭检测模型,从而实现了跨语言代码抄袭的检测.为了提高检测精度,首先,在训练检测模型前,利用基于抽象语法树的skip-gram算法对词向量进行了预训练,并基于程序依赖图删除了训练数据集代码中的冗余代码.其次,在代码抄袭检测阶段,提出了一个基于属性计数的过滤器,用以排除不可能抄袭的代码对,提高检测效率.实验中基于一个开源的数据集,以Java代码和...  相似文献   

3.
使用神经网络进行漏洞检测的方案大多基于传统自然语言处理的思路,将源代码当作序列样本处理,忽视了代码中所具有的结构性特征,从而遗漏了可能存在的漏洞。提出了一种基于图神经网络的代码漏洞检测方法,通过中间语言的控制流图特征,实现了函数级别的智能化代码漏洞检测。首先,将源代码编译为中间表示,进而提取其包含结构信息的控制流图,同时使用词向量嵌入算法初始化基本块向量提取代码语义信息;然后,完成拼接生成图结构样本数据,使用多层图神经网络对图结构数据特征进行模型训练和测试。采用开源漏洞样本数据集生成测试数据对所提方法进行了评估,结果显示该方法有效提高了漏洞检测能力。  相似文献   

4.
程序代码相似性的识别是利用一定的检测识别手段,判断两个源程序代码之间的相似性,并度量两个程序代码之间的相似程度。代码抄袭是程序设计课程中频繁出现的一种作弊行为,检测源代码的抄袭对验证学生程序作业的独创性非常重要。本文针对计算机教学考核中对程序设计客观性和真实性的要求,应用最长公共子序列算法来对比两个源程序文件在结构上的相似性,同时设计可用于教学考核的程序代码相似度评判系统。  相似文献   

5.
针对开源软件漏洞,提出一种基于深度聚类算法的软件源代码漏洞检测方法。该方法利用代码图模型构造开源软件代码属性图,遍历得到关键代码节点并提取出应用程序编程接口(API)序列,将其嵌入向量空间,以关键代码为中心进行聚类,根据聚类结果计算每个函数的异常值,生成检测报告并匹配漏洞库,从而检测出源代码中的漏洞。实验结果表明,该方法能够定位开源软件中漏洞所在的关键代码段并检测出相应漏洞。  相似文献   

6.
一种基于静态词法树的程序相似性检测方法*   总被引:1,自引:0,他引:1  
传统的程序相似性检测工具并不能有效地检测出一些常见的高级词法、语义理解变换的抄袭方式。首先归纳了学生常用的三类抄袭手段,然后给出了基于词法树的程序相似性检测方法。以C语言为例,总结了生成词法树的结构体,并对程序的词法树进行主数据流、结构控制流和时序流分析后得出结构体依赖图;使用形式化的图同型方法来判断代码是否相似,还给出了一个聚类方法以获得彼此相似的程序子集。通过与JPlag、BuaaSim系统针对一组典型的抄袭样本集进行评测结果对比,本方法具有更好的检测效果。  相似文献   

7.
在如今的软件开发中, 开源软件的使用越来越普遍, 但是对大型开源软件的理解和维护仍然是一项复杂的工作. 开源软件通常缺乏完善的文档和注释, 想要完整的理解开源系统难度较大, 研究界产生了一种通过分析大型开源软件的源代码, 进而深入理解系统, 发现和修复系统漏洞的软件分析型任务. 源代码分析注释是软件分析型任务的一项重要产出, 它是一种以注释形式存在的细粒度代码分析报告, 数量庞大, 难以快速做出质量评价. 在传统的软件质量评价中, 对注释的评价通常局限于覆盖度和文本长度, 不能满足源代码分析注释质量评价的要求. 为了更好的评价源代码分析注释的质量, 本文结合现有的对代码注释质量评价的研究以及信息质量领域的评价方法, 提出了一种综合考虑客观质量属性和主观质量属性的质量评价框架. 结合实际的项目数据分析, 本文的方法可以更有效的检测出注释中的冗余以及无关内容, 发现相关质量问题, 从而对源代码分析注释进行更全面的质量评价.  相似文献   

8.
现行的论文检测系统,只针对文字部分进行判定,无法判断论文中所包含的代码的独创性.理工科学生的毕业论文,通常包含的大量代码.因现行系统对代码默视为原创,而最终影响了对论文整体抄袭比例的判定,使准确性大打折扣.文章尝试探讨在现行的检测系统中,添加一个针对代码检测判定的模块,提高对理工科学生毕业论文抄袭判定的准确性.  相似文献   

9.
基于XML的C代码抄袭检测算法   总被引:3,自引:0,他引:3       下载免费PDF全文
主要研究一种基于XML文本的C代码抄袭检测算法。将C程序源代码转化为XML文本,提取XML文本各行标记的属性,计算XML文本行的相似值,得到程序对的相似度。并对抄袭检测算法实行分类测试:按十二种抄袭手段分类;按复杂语义和复杂数据结构分类。测试结果对比验证了抄袭检测算法的有效性。  相似文献   

10.
为满足Java静态分布式检测系统对Java程序源代码解耦分包的需求,解决代码检测单节点单进程运行耗时过长问题,实现分布式检测系统单任务多节点并行运行的目的,本文提出了Java源代码文件间依赖性分析方法.该方法以生成源代码文件抽象语法树的方式抽取文件文本信息,遍历分析抽象语法树,获取文件与其他源代码文件类依赖关系,再通过定位类所在的文件方式得到文件与文件之间依赖关系.同时,以无入边顶点的带环有向图表示文件间依赖关系图,本文提出的方法基于该图进行了文件间解耦的分析.最后,通过对示例程序逐步剖析的实验以及对数个开源工具源代码解耦拆分的实验,验证了本文提出的文件间依赖性分析方法的可行性.  相似文献   

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

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