我不想要实际执行重构的工具,而是需要用于查找和建议潜在重构的工具。特别是用于识别相似代码块并且可以合并到实用程序函数中的工具。
这里的背景是我被要求调查减少嵌入式C系统的代码大小。此任务似乎主要分解为删除不需要的代码(死代码)和合并重复的代码。各种lint工具将找到死代码。但我仍然需要一种找到重复代码的方法。
答案 0 :(得分:1)
我建议你看看PMD's Copy Paste Detector。虽然它默认为Java代码,但它也支持c ++,php和ruby。
PMD在词汇基础上执行此操作,并且有一些选项可以忽略代码中的常量。更好的代码重复检测器构建AST,并比较类似的树。 AST方法更好,因为格式和变量名称不会影响结果。
答案 1 :(得分:0)