LINUX.ORG.RU

Ищу тулзу для поиска дублирующихся участков кода

 , ,


0

4

Желательно бесплатную (не обязательно OpenSource) и обязательно под Linux. Существуют такие в природе? Я по теме нашел только встроенный в Visual Studio анализатор и Shiman, который отнюдь не бесплатен.

А они умеют отличать такие куски кода:

int foo1(int a, int b)
{
  int result = a + b;
  return result;
}

int foo2(int a, int b)
{
  return b + a;
}

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Без понятия. не тестил ни одну, ни другую.

Меня щас устроило если бы тулза находила бы


int foo1(int a, int b)
{
  return b + a;
}

int foo2(int a, int b)
{
  return b + a;
}

mironov_ivan Спасибо, посмотрю.

RiseOfDeath ★★★★ ()
Последнее исправление: RiseOfDeath (всего исправлений: 2)

ТС, есть специальная утилита /dev/brain, только она может такие вещи распознать, мне так кажется...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

специальная утилита /dev/brain

когда кода тонны и ни один человек не знает код до конца, даже в общих чертах, это плохо работает.

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

Rastafarra ★★★ ()
Ответ на: комментарий от Pavval

тысяч... ха ха.

9918815 --- это моя масенькая.

32438520 --- это чуть побольше.

а есть и еще.

Rastafarra ★★★ ()
Ответ на: комментарий от Rastafarra

А, тогда понятно. Ибо до лимона 1 человек еще может охватить.

Pavval ★★★★★ ()
Ответ на: комментарий от Rastafarra

когда кода тонны и ни один человек не знает код до конца, даже в общих чертах, это плохо работает.

Это всё общие слова. Рефакторить нужно только код с которым кто-то работает и который понимают, иначе это совершенно бесполезное занятие - превращение одного непонятного кода в другой...

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

mashina ★★★★★ ()
Последнее исправление: mashina (всего исправлений: 1)
Ответ на: комментарий от CatsCantFly

Желательно бесплатную (не обязательно OpenSource) и обязательно под Linux.

Не сочтите за рекламу, но PVS-Studio

Под линукс его НЕТ.

SZT ★★★ ()
Ответ на: комментарий от RiseOfDeath

Ну раз, «Желательно бесплатную», с этим все нормально.

SZT ★★★ ()
Ответ на: комментарий от mashina

Избавление автоматизировать нельзя, но поиск-то можно запросто

Goury ★★★★ ()
Ответ на: комментарий от SZT

Под линукс он есть, кстати
Надо просто попросить

Goury ★★★★ ()
Ответ на: комментарий от Goury

Под линукс он есть, кстати

http://www.viva64.com/ru/b/0153/

Переносить код PVS-Studio на Linux очень не хотелось, так как это большая и неблагодарная задача. Поэтому мы взяли Wine.

Ну если это называется «Под линукс он есть», то тогда под линукс вообще много чего есть, например фотошоп и куча виндовых игр. Я так не считаю. По факту, под линуксом его нет

SZT ★★★ ()
Ответ на: комментарий от SZT

16.07.2012

Конечно за три с половиной года ребята вообще ничего не делали, только лицензии продавали и жопы отращивали в креслах, ага

Goury ★★★★ ()
Ответ на: комментарий от Goury

Как оттуда следует, что оно работает без wine?

SZT ★★★ ()
Ответ на: комментарий от andreyu

Если бы тебе и правда было интересно — ты бы прочитал все рассказы этих ребяток за все годы хабраблога.
Но ты не прочитал и теперь занимаешься демагогией в комментариях на ЛОРе.
Фу таким быть.

Goury ★★★★ ()
Ответ на: комментарий от Goury

Если бы тебе и правда было интересно — ты бы прочитал все рассказы этих ребяток за все годы хабраблога.

Я читаю их статьи. И из этих статей я сделал вывод - линукс им не интересен.

Но ты не прочитал и теперь занимаешься демагогией в комментариях на ЛОРе.

Это вы так оправдываете свой пердеж в лужу?

Фу таким быть.

Точно, фу.

andreyu ★★★★★ ()

написать самому - очень интересная задача

anonymous ()
Ответ на: комментарий от Rastafarra

тысяч... ха ха.
9918815 --- это моя масенькая.
32438520 --- это чуть побольше.

Что ты там пишешь и на чем? Это не asm случаем? Если это не капитальный быдлокод, это же надо было пару тройку лет писать.

anonymous ()
Ответ на: комментарий от anonymous

это же надо было пару тройку лет писать.

значительно больше ))

Rastafarra ★★★ ()
Ответ на: комментарий от mashina

Даже формальный дубликат может не быть таковым логически.

я бы вообще не отказался на них хотя бы взглянуть, с логикой можно разобраться.

интересно другое: если для разбора языков есть лекс и бизон, нет ли таких штук для «генераторов» рефакторинга? ну чтоб наколенные недоязычки рефакторить.

Rastafarra ★★★ ()
Ответ на: комментарий от Rastafarra

Да вот же предлагают кучу всяких утилит:

http://stackoverflow.com/questions/191614/how-to-detect-code-duplication-duri...

Можно сделать по-простому и на коленке: flex'ом (например) получать токены и сравнивать куски кода по типам токенов. Получится не очень правильно (в утилитах из списка выше наверняка сделано лучше), но простые дубликаты можно будет увидеть.

anonymous ()
Ответ на: комментарий от anonymous

Спасибо, посмотрю.

p.s.

А почему я вообще это сообщение увидел? У меня в настройках выставлено скрывать сообщения анонимусов.

RiseOfDeath ★★★★ ()
Последнее исправление: RiseOfDeath (всего исправлений: 1)

Спасибо доброму анонимусу. PMD - то, что мне нужно.

RiseOfDeath ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.