Наша Semantic Designs CloneDR является инструментом, который обнаруживает копипаст-редактирования блоков кода, для многих языков: C, C++, Java, C++, COBOL, ECMAScript, PHP, VB6, VB.net, ...
Он использует язык-точные парсеры для создания абстрактных синтаксических деревьев, соответствующих точным структурам программ, которые затем сравниваются для подобия. Это означает, что это никоим образом не путается в виде пробелов, составления форм, комментариев или даже различного «написания» литералов (например, 3.14159 - это то же самое, что и .00314150E3).
Он генерирует отчет, который показывает точно, как блоки кода похожи, и точно, как они меняются. Вы можете просмотреть образцы отчетов по ссылке.
Связанный вопрос - http://stackoverflow.com/questions/2490884/why-is-copy-and-paste-of-code-dangerous – Oded
Возможный дубликат [Как найти аналогичный фрагмент кода?] (Http: //stackoverflow.com/questions/709744/how-to-find-a-similar-code-fragment) –