程序代码相似度度量研究

来源 :内蒙古师范大学 | 被引量 : 0次 | 上传用户:ddcrow
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
计算机程序代码相似度的自动度量,不仅可以帮助教师检查学生作业中的抄袭现象,还可以辅助实现作业批改或试卷评阅的自动化,对程序代码版权的辅助鉴别也具有很重要的现实意义。本文讨论了目前常用的程序代码相似度度量技术:属性计数技术和结构度量技术,并介绍了几个国外已有的程序代码抄袭检测系统。本研究主要是针对程序代码进行相似度度量,由于程序设计语言固有的特性,如:语言成分较少,针对每门具体的语言都只有有限多个关键字,结构简单等,且国外的相关技术也比较成熟,所以与自然语言文本相似度的度量相比要简单一些。本研究设计了一个实验系统,主要用于检查用C/C++语言编写的程序代码文件之间的相似度。实验系统首先对程序代码作预处理,去掉对相似度度量结果无影响的成分,如程序中的注释、空行以及文字部分等。然后扫描预处理后的程序代码并对其作简单的语法分析,将其转换为包含程序结构信息的标记字符串。考虑到系统的扩展性,所以使用了XML文档描述程序设计语言的语法,即用XML文档定义什么是标记以及程序代码与标记字符串之间的转换规则。最后通过GST(Greedy String Tiling)字符串匹配算法对得到的标记字符串作比较,并根据比较结果给出它们之间匹配程度的数值表示,以此作为程序代码相似度的度量值。该值越大说明程序代码越相似,存在抄袭的可能性也越高。GST算法的一个最大优点是,程序代码中某些代码段位置的变化并不影响最终的匹配结果。对于相似度度量结果值较高的程序对,实验系统会根据用户的选择自动打开每对程序代码文件,并用醒目的颜色标记出相似或相同的代码段。最后,用两组实验数据对实验系统进行了简单的验证和分析。一组是学生程序作业中的一部分代码文件,一组是通过手工添加复制代码段或修改原程序的方式设置的。验证结果表明,该实验系统能检测到实验数据集中大部分的相似代码。
其他文献
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield
期刊
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield
1月12日下午,越南卫生部长阮氏金进女士率团访问广州中医药大学,许能贵副校长及相关部门负责人会见了部长一行并举行座谈。
随着人类物质生活水平的提高,各种不同品牌的牛奶也逐渐出现在人类的视线当中。本文首先对纯牛奶与含乳饮料进行了简要的概述,然后针对两者不同的特性进行分析,最终指出辨别
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield
《刑法修正案(九)》第三十五条将"以捏造的事实提起民事诉讼,妨害司法秩序或者严重侵害他人合法权益的"即诉讼欺诈行为入罪。这一条文为判断现下出现的诸多针对诉讼的欺诈案
为进一步加强农业综合开发财务核算的规范化管理,从今年起,我市对农业综合开发的财务核算全面实行电子记账和系统化管理。市和三县一区开发办在多次培训基础上,以手工和电子记账
~~
期刊
近年来,随着DNA微阵列以及核苷酸芯片等高通量检测技术的发展,现代科技已经可以从全基因组水平定量地检测基因转录产物——mRNA,从而导致产生的基因表达数据就呈现爆炸性增长
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield