копировать-вставить инструмент статического анализа? - PullRequest
2 голосов
/ 02 декабря 2011

Существует ли какой-либо инструмент статического анализа, который может обрабатывать всю кодовую базу и определять, где использовалось копирование и вставка (например, блоки дублированного или очень похожего кода), чтобы его можно было рассмотреть для рефакторинга?

Ответы [ 3 ]

2 голосов
/ 02 декабря 2011

Для Java есть инструмент pmd, в котором есть детектор копирования / вставки.http://pmd.sourceforge.net/cpd.html

1 голос
/ 02 декабря 2011

См. Наш CloneDR инструмент для поиска точных и почти пропущенных клонов.

CloneDR использует структуру целевого языка (полный, точный синтаксический анализатор языков) для поиска клонов и, следовательно, способен находить такие клоны, несмотря на форматирование, изменения пробелов и т. Д. Он также найдет непротиворечивое переименование идентификаторов.

Он работает со многими языками, включая Java, C #, VB.net, Python, PHP, JavaScript, C ++, PL / SQL, COBOL, Fortran, ... На сайте представлены примеры отчетов по большинству из них.

1 голос
/ 02 декабря 2011

PMD включает детектор копирования-вставки, он «работает с кодом Java, JSP, C, C ++, Fortran и PHP».

...