Ответ 1
Да, попробуйте детектор копирования, вставки.
Существуют ли инструменты, которые могут автоматически находить код копирования и вставки среди набора файлов?
Я думал написать script для этого, который просто искал бы равные строки, но такой script нашел бы в основном нерелевантные равенства. (Например, private final static ...
).
Да, попробуйте детектор копирования, вставки.
http://patterninsight.com/products/cp-miner.php
Связанная статья - http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.123.113
Наш CloneDR - это инструмент для поиска точных и незаметных блоков кода, созданных с помощью операций копирования и вставки. Он может обрабатывать системы миллионов строк кода.
Он использует точные языковые грамматики для выделения языковых структур (идентификаторов, выражений, операторов, блоков, функций, классов, пакетов...), которые были скопированы, и для определения точек вариации на множестве клонов ( любая из этих структур может быть параметрами!)
CloneDR работает на самых разных языках: C, С++, С#, Java, PHP, COBOL, Python, Ada, Fortran, EGL и Visual Basic (VBScript, VB6, VB.net).
На веб-сайте имеется множество отчетов об обнаружении клонирования образцов на разных языках.
Этот продукт доступен для оценки на http://www.semanticdesigns.com. Другие альтернативы с открытым исходным кодом: Simian и PMD CPD
CloneDigger для Python и Java.