gpt4 book ai didi

c++ - 相似代码检测器

转载 作者:IT老高 更新时间:2023-10-28 22:18:13 25 4
gpt4 key购买 nike

我正在寻找一种可以比较源代码的相似性的工具。

我们现在有一个非常琐碎的系统,其中包含大量误报,而真正的正则很容易被埋没。

我的要求是:

  • 相当少量的误报
  • 良好的检测率(是的,它们相互矛盾)
  • 理想情况下,输出比单个值更复杂
  • 可用于 C (C99) 和 C++(C++03 和最佳 C++11)
  • 仍在维护中
  • 可用于比较两个源文件
  • 可在非交互模式下使用

编辑:

为避免混淆,以下两个代码片段是相同的,应该这样检测:

for (int i = 0; i < 10; i++) { bla; }

int i; while (i < 10) { bla; i++; }

这里也一样:

int x = 10; y = x + 5;

int a = 10; y = a + 5;

最佳答案

我过去使用过 MOSS:http://theory.stanford.edu/~aiken/moss/检测抄袭代码。由于它在语义级别上工作,因此它将检测您上面介绍的情况。该工具具有语言感知能力,因此在分析中不考虑注释,并且它在检测通过简单搜索和替换变量和/或函数名称而修改的代码方面大有帮助。

注意:几年前,我在研究生院教授计算机科学时使用了该工具,它在检测从互联网上下载的代码方面表现出色。以下是类似应用程序的详细记录:http://fie2012.org/sites/fie2012.org/history/fie99/papers/1110.pdf

如果您在 Google 上搜索“衡量软件相似度”,您应该会发现一些更有用的结果: http://www.ics.heacademy.ac.uk/resources/assessment/plagiarism/detectiontools_sourcecode.html

关于c++ - 相似代码检测器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com