Вопрос

Я анализирую какой -то устаревший кодекс. Это около 80 000 строк старого кода PLSQL. На кулаке в источнике есть довольно некоторое дублирование, которое нужно удалить. Вместо этого не выполняя руководство DIFF и просмотрите каждый файл, должен быть какой -то инструмент/командную линию, чтобы обнаружить дублирующие строки исходного кода.

Моя цель состоит в том, чтобы сделать образованное предположение о минимальном размере переписывания источника и о том, сколько фактических знаний завоевано в этой программе. Я написал какой -то базовый анализатор статического кода, чтобы найти объем управляющих операторов, если еще для и т. Д. И функции в каждом файле. Но дублированный код все еще должен быть удален из моей статистики.

Это было полезно?

Решение

Вы смотрели на Омин - анализатор сходства? (Только что проверил, и это больше не бесплатно, но он доступен в течение 15 дней для целей оценки.)

Simian (анализатор сходства) идентифицирует дублирование в Java, C#, C, C ++, Cobol, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy Source -код и даже простых текстовых файлов. Фактически, Simian может использоваться в любых читаемых файлах человека, таких как файлы INI, дескрипторы развертывания, вы называете его.

Я использовал его на практике, и это хорошо работает.

Другие советы

Сонар имеет обнаружение дублирования и претензии на поддержку PL/SQL, хотя я никогда не использовал его для этого.

Вам нужно будет умолять/позаимствовать/воровать/написать синтаксический анализатор PLSQL и сравнить полученные абстрактные синтаксисные деревья. С размером базы кода, это может стоить. Там будет иное использование для анализатора, как только вы закончите.

Как насчет этого:

http://sourceforge.net/projects/sddforeclipse/

Это OpenSource, и, как говорят, используется коммерческим программным обеспечением. Кстати, это плагин для затмения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top