论文部分内容阅读
复制检测技术在信息时代得到非常广泛的应用,尤其在计算机程序设计方面。复制检测又为两类:一类是形式化语言文本(如:计算机程序代码等)复制检测,另一类是自然语言文本复制检测。程序代码复制检测就是判断一个程序的代码是否抄袭、剽窃或复制于另外一个或多个程序,其核心是代码相似度计算。在计算程序间相似度时,首先需要提取程序段的特征值,即能够代表该程序内容和结构的基本语言单位。然后对提取出的待比较程序的特征值进行比较,根据比较结果判断程序间的相似程度,即计算相似度。在这个过程中,特征值的提取至关重要,特征值的好坏直接影响比较结果的准确性。本文主要是对特征值提取技术的研究。本文首先介绍了有关程序代码相似度检测技术,包括程序代码相似度的定义与检测技术分类,国内外研究发展的现状以及现有的程序代码相似度判别系统的相关介绍。然后对程序代码相似度检测过程中特征值提取技术进行了介绍。在现有的程序代码相似度判别系统中,多是采用的基于字符串比较的方法,首先把待比较程序经过分词转换得到特征字符串,然后再对字符串进行相似度比较。这样的字符串包含程序结构信息少,会影响比较结果的准确性。本文主要研究如何把程序转换为包含更多结构信息的结构串,为下一步比较提供更好的依据。本研究设计的生成结构串的方法主要分三步完成:第一步,制定语言的词法规则和语法规则,为后续对程序源代码的分析转换提供依据;第二步,生成词法分析器和语法分析器;第三步,使用词法分析器和语法分析器对程序源代码进行分析,生成相应的树形结构串。最后,本文通过实例测试,本研究实现了把程序源代码转换为树形结构串,达到了预期的研究目的。