14

我已经在 Internet 上搜索了一段时间,但找不到任何可以分析一组 Perl 文件(模块或脚本)并标记重复或克隆或复制的免费(或廉价)工具/实用程序/模块/粘贴代码。

我现在好多了,但我过去常常在各处复制和粘贴代码段。我想清理它并修复我的旧代码重复,但我将不胜感激一些工具帮助,这样我就不必用细齿梳子浏览所有旧代码。另外,人工识别这种攻击很容易出错。

4

6 回答 6

5

有趣的是,几分钟前有人向 SO 发布了一个类似的问题。

这是一个链接,其中包含一些您可能会觉得有用的工具。

代码比较和抄袭检测

于 2009-09-22T18:50:15.163 回答
4

重复代码是什么意思?只是字符完全匹配或语义匹配。

有几个工具,如http://pmd.sourceforge.net/可以通过字符串匹配检测重复代码,这个工具适用于 java,但源匹配适用于纯文本。

如果你想要语义匹配,比如

sub A
{return 1;}

匹配

sub B
{
    return 1;
}

然后你需要别的东西:(

于 2009-09-22T18:46:50.333 回答
2

我过去曾使用CCFinder来查找重复的代码部分。它工作得很好,但有一个..有趣的界面。它没有对 perl 的本机支持,但它确实有一个明文选项,它至少可以用于检测复制和粘贴。有一个 Windows 和 Ubuntu 解决方案 - 免费软件,不幸的是不是开源的。

于 2009-10-22T14:09:36.243 回答
0

Semantic Designs 制造了一款名为Clone Dr.的产品,该产品似乎能够分析大量语言类型的克隆代码段。但似乎他们的免费评估版仅适用于 Java 和 Cobol。

于 2009-09-22T19:40:39.663 回答
0

我刚刚评估了Simian。它有 15 天的免费评估期,单个用户许可证的费用为 100 美元。它不正式支持 Perl,但它确实将它们视为纯文本并无论如何都要分析它们。这是一个超级快速的实用程序!而且超级好用。该工具生成的报告简单易懂。我完全赞成这个工具。现在我只需要和我的老板谈谈,让他购买许可证。

于 2009-09-23T18:16:10.193 回答
0

这是另一个列出一些克隆检测工具的网页:

http://sel.ics.es.osaka-u.ac.jp/cdtools/index-e.html

于 2009-10-22T17:39:57.797 回答