方法对该功能进行实现。实现的方法首先要将源程序的代码生成一个标记字符串,这个过程 是基于 XML 规范转换的,转换出带有结构信息的字符串,然后对指定的信息进行对比,通过 对比得到结果得到程序的相似度。
同时,北京大学的刘欣,胡篙在软件的同源性方向做出了一定的研究成果[14]。软件的同 源性是用来判断某一个软件是否是另一个软件修改得到的或者两个软件是否是由同一个作者 所完成的,可以把这种判断方法作为法律判定的一个方式。由此看来,软件同源性的研究有 很重要的实用价值,并且要比程序代码的相似度检测要复杂的多。
另外,内蒙古师范大学计算机院的程金宏等人对程序代码相似性检测也做出研究[7],在不 断的研究过程中,研究者基本实现了用结构度量的技术解决代码相似性的问题。该研究中, 先使用 XML 文档对代码做了标记化的转换,转换成带有标记信息的程序标记串,进而用 GST 串匹配算法对标记之后的字符串做了匹配处理,处理之后能够获取匹配的位置和长度,通过 得到的信息计算出相似度。
总而言之,国外在相似度研究的方面开展了相当长的一段时间,已经有较完善的系统可 以运用,提供了用户所需要的检测手段,其中的各项技术也已经有一定的成熟度,整体取得 效果卓越。然而,国内这方面开展不够多,主要的研究开发是用于程序设计课程主观类试题 的评分系统的研究上。