改进的语义代码相似度检测方法

1 下载量 167 浏览量 更新于2024-07-14 收藏 974KB PDF 举报
本文主要探讨了"检测语义相似的代码"这一主题,发表在《计算机科学》期刊上,DOI为10.1007/s11704-014-3430-1。作者Tiantian WANG、Kechao WANG、Xiaohong SU和Peijun MA分别来自哈尔滨工业大学计算机科学技术学院和哈尔滨大学软件学院,该研究由高等教育出版社和Springer-Verlag Berlin Heidelberg于2014年联合出版。 传统代码相似性检测方法在识别具有相同功能但实现方式不同的语义相似代码时存在局限性,这限制了它们在实际应用中的效能。为解决这个问题,论文提出了一种结合度量法和图谱法的改进方法。首先,源代码被转换为增强的系统依赖图,这种图能够捕捉代码之间的结构关系。 度量法在此阶段扮演关键角色,通过对代码片段进行比较,筛选出大部分不相似的代码对,从而大大降低了计算复杂性。这种方法着重于代码的功能和结构相似性,而非字面的代码匹配。通过这种方式,研究者可以有效地排除那些表面上看似相似但实际上功能不同的代码。 接着,论文进行了代码规范化步骤,旨在消除代码中的变异性,如变量命名、控制流等,以便能在更高层次上,即语义层面,识别真正的相似代码。这是至关重要的一步,因为它确保了即便代码表面上有所变化,只要其执行逻辑保持一致,也能被正确识别为相似。 最后,程序匹配技术被应用于已筛选和规范化的代码片段上,进一步提升匹配的准确性和效率。整个过程旨在提高代码相似性检测的精确度,使得这项技术能够在软件工程、代码复用、反抄袭等领域发挥更大的作用。 这篇研究论文不仅深入剖析了传统方法的不足,还引入了创新的方法论,以应对语义相似代码的检测问题,为实际应用提供了更为有效和精准的解决方案。这在当前快速发展的软件开发和维护领域具有重要意义。