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