【发布时间】:2012-11-15 13:35:47
【问题描述】:
我正在寻找一种与语言无关的代码复制工具。很容易找到特定语言的代码复制工具(用于 Java、C、PHP 等),但我想以自定义语法对模板运行一些代码复制分析。
我不关心语法的高级解析,只是基于直线的原始字符串比较就可以了。空格不敏感匹配将是一个加号,但不是必需的。 (我自己规范化/消除空格并不难。)
有人知道可以(误)用于此类事情的工具吗?
谢谢。
【问题讨论】:
-
如果检测器对语言语法一无所知,克隆检测会变得更差。大多数克隆不是相同的文本。它们是复制粘贴编辑过的文本,因此要准确找到它们,您需要匹配相似但不完全相同的代码片段。有语法感知克隆检测器,并且或多或少地,它们可以配置为知道精确的语言语法。
-
我真的认为你最好专注于逻辑重复而不是原始字符串重复。有些语言可能是样板,但这种重复不会重复错误。当系统的两个地方有相同的、重要的逻辑时,就会造成不必要的维护负担。
标签: language-agnostic duplicates code-analysis static-analysis code-duplication