面向C语言的课程提交校验系统文献综述

 2022-03-18 21:31:21

面向C语言的课程提交检验系统

【前言】

程序语言课程是计算机相关专业中的一门非常重要的基础课,因此程序语言的教学显得尤为重要。互联网时代的发展使得信息的获取更加便利,“复制”和“粘贴”导致抄袭成为一种普遍现象,但很多学生抄袭时会或多或少的进行一些修改来迷惑老师,这就增加了老师的工作量。该课题的研究针对C语言实现一个统一的程序支撑平台实现相似度检测,主要用于判断学生提交的程序代码作业里是否存在不同程度的抄袭,减轻了单靠教师手工分析的工作量,有效增加了学生的自我学习能力,对学生起到了一定程度上的监督作用。

程序语言跟自然语言相比有其独特的特点。自然语言灵活多变,构成语言的词汇很多,同一含义的语言组成也多种多样,检测自然语言的相似度会困难的多。程序语言由于其有固定的关键字,语法规则,结构相对简单,所以对程序语言进行代码检测要容易一些,程序代码相似度检测的研究最早开始于国外,目前已有几十年的历史,一些系统也比较成熟。目前,程序代码相似度检测的主要两大技术是属性技术技术和结构度量技术,由于属性计数技术主要是统计程序语言的一些属性技术,并不考虑程序流程结构,所以对一些故意添加无用变量等抄袭手段,其度量准确性会下降。结构度量技术则分析程序的结构信息,得到的检测结果更真实的反映了代码之间的相似性。现在属性计数计数基本不用于相似度检测,国外大部分成熟的程序代码拆卸系统都采用了结构度量计数。学术界和工业界提出了很多相似度检测方法,这些方法按源代码信息的处理程度可分为基于文本、词法、语法、语义和度量值这5类,并开发出了相应的检测工具。这些工具按照其分类各有其不同的实现算法和实现工具。本课题将在词法和语法分析的基础上对代码相似度展开研究。

【正文】

  1. 关于代码抄袭程度的分类

Faidhi和Robinson把修改他人程序分成七个不同的难度级别:

L0表示对源程序不做任何修改,即完全抄袭,这种抄袭只要复制粘贴即可。

L1表示只修改了源程序中的注释,其他部分不做改变,这种抄袭难度也不高,修改注释也不会影响到程序最终的执行效果。

L2表示修改了源程序的部分标识符,例如修改函数,宏,变量的名字,这种修改需要将其他位置使用了这个标识符的地方一起做同样的修改。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。