На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Закрыто vot 10-08-2016: Закрыто по просьбе автора
  
> Компаратор исходного кода для старых языков программирования.
    Написал программу, сравнивающую исходный код двух и более файлов. Таких компараторов нет в старых языках программирования вроде VB6, Builder, CVI 6, Lotus Notes и т.д.

    http://www.bad-good.ru/programs.html#comparer

    Но за год ее существования я обратил внимание, что по интернету она не распространяется. Чистильщик мусора в винде и шифратор разлетелись вмиг - а эта программа вообще не двигается.

    В связи с этим вопрос: а нужна ли вообще такая программа программистам? Мне она помогает уже не в первый раз, т.к. пришлось склеивать 4 одинаковых программы в одну.
      Сергей85
      Такая не нужна. Есть diff, есть CVS, GIT и прочие где есть сравнение кода.
      Вы лучше бы сделали транслятор.
      Перевёл я код с Java на Си. Появился патч для Java. А мне надо с транслировать этот патч на Си.
      При этом хотелось бы видеть разницу, что вот это вот с транслировано. А вот этот кусок новый и его надо с транслировать.

      И да разуется программа должна работать без привязке к языкам. Или поддерживать с 10 популярных.
        Они ж платные. А я про бесплатный вариант говорю. Да, например, для Lotus Notes есть TeamStudio с такой функцией - но она стоит столько, что проще свою написать.
            Еще есть kdiff3 для сравнения двух файлов с общей базовой версией. Все вышеперечисленные программы (diff, CVS, git, WinMerge, kdiff3) бесплатны.
              Цитата Сергей85 @
              Написал программу, сравнивающую исходный код двух и более файлов. Таких компараторов нет в старых языках программирования вроде VB6, Builder, CVI 6, Lotus Notes и т.д.

              http://www.bad-good.ru/programs.html#comparer

              Но за год ее существования я обратил внимание, что по интернету она не распространяется. Чистильщик мусора в винде и шифратор разлетелись вмиг - а эта программа вообще не двигается.

              В связи с этим вопрос: а нужна ли вообще такая программа программистам? Мне она помогает уже не в первый раз, т.к. пришлось склеивать 4 одинаковых программы в одну.

              Программа "компаратор исходников" нужна.
              Не не просто тупого сравнения текста двух файлов и визуализации отличий (таких программ в инете "вагон и маленькая тележка" - лучшие из них - это "Beyound Compare" и "Araxis Merge"), а сравнения СЕМАНТИКИ двух исходников и визуализации семантических отличий.
              Т.е. "компаратор" должен как мининимум понимать семантику языков программирования, исходники на котором он сравнивает
                Судя по молчанию не поняли о чем речь.
                Приведу конкретный пример.
                Вы переименовали функцию, которая у Вас в исходниках вызывается раз 150.
                Что покажет обычный diff viewer?
                Выделит красным все 150 мест где находятся вызовы.
                А что покажет semantic diff viewer?
                Покажет всего одну строчку:
                ExpandedWrap disabled
                  Функция TlRof была переименована на Lsyrt.

                Согласитесь, что когда нужно знать не точные места где что изменилось, а смысл изменений, чтобы понять насколько они существенны, semantic diff viewer рулит больше, чем просто diff viewer.

                Ведь в случае просто диф. вьювера Вам придется просмотреть все 150 изменений, проанализировать их, чтобы понять, что в исходнике всего лишь переименовали функцию
                Сообщение отредактировано: Исмаил Прокопенко -
                  Цитата Исмаил Прокопенко @
                  Согласитесь, что когда нужно знать не точные места где что изменилось, а смысл изменений, чтобы понять насколько они существенны, semantic diff viewer рулит больше, чем просто diff viewer.


                  ИМХО, нужно смотреть нечто типа этого.
                    Спасибо.
                    Да. Я слышал, что семантические дифф. вьюверы называются что-то типа блабла ... рефакторинг .. блабла
                      Посоветуйте semantic diff viewer для C++
                        Чо молчим?
                        Никто семантическими диф. виферами не пользуется что ли? :blink:

                        Добавлено
                        Вот есть, к примеру, две версии проекта.
                        В проекте больше 300 CPP-файлов.
                        Делаю сравнение арахисом он показывает что есть более чем 100 тыс. отличий.

                        Я и за всю жизнь их не разгребу без семантик. дифф. вифера
                          Судя по молчанию таких программ не существует?
                            Может и существуют, но зачем они нужны?
                            Если рефакторинг делать, так там нужны не программы просмотра изменений, а анализаторы перекрёстных ссылок и другие подобные.
                              Цитата amk @
                              Может и существуют, но зачем они нужны?

                              Я выше четко и подробно описал "зачем"
                                Цитата Исмаил Прокопенко @
                                Я выше четко и подробно описал "зачем"
                                У меня возникло такое ощущение, что это "зачем" кроме тебя просто никому никогда не было нужно.
                                  Цитата amk @
                                  У меня возникло такое ощущение, что это "зачем" кроме тебя просто никому никогда не было нужно.

                                  Вам (или кому-то еще) никогда не ставили такую задачу?
                                  Что есть две версии проекта. Относительно небольшого. Всего то 300 *.cpp файлов. В сумме около 500 тыс строчек кода.

                                  Арахис показывает несколько сотен тысяч измененных строк.

                                  А вам поставили задачу выяснить "что изменилось в проекте. И насколько корректны эти изменения?"

                                  Ведь одно дело просто проект "причёсывали" поэтому заменили идентификаторы на более понятные.

                                  А другое дело если внесли изменения в семантику и саму идеологию построения системы.

                                  Или, к примеру, после внесения изменения появился баг.
                                  И Вам нужно выяснить "КАКОЕ КОНКРЕТНО" изменения исходника вызывало багу.

                                  ИМХО очень распространенная задача для программистов.

                                  90% программистов только этим и занимаются: поддержкой и "вылавливанием блох" в чужих проектах
                                    Цитата Исмаил Прокопенко @
                                    Вам (или кому-то еще) никогда не ставили такую задачу?
                                    90% программистов имеют в распоряжении только один вариант программы. В котором и ловят блох. Им польза от такого семантического сравнения не больше, чем нулевая. Ещё 9% имеют программу, которую надо полностью набело переписать (отрефакторить). Им от такой программы сравнения польза чуть больше, чем нулевая. И только 90% от оставшегося процента могут что-то получить от такого сравнения.
                                      Мальчики, не ссорьтесь. Касательно моей темы я уже все получил - добро пожаловать во флудилку. )))
                                        Цитата amk @
                                        90% программистов имеют в распоряжении только один вариант программы.

                                        Это не так.
                                        Обычно от предшественника тебе достается репозиторий, в котором 1000 версий. И тебе ставят задачу: найти с какой версии и почему "что-то пошло не так".

                                        Естественно ты должен сравнивать версии и анализировать отличия

                                        Добавлено
                                        Цитата Сергей85 @
                                        Касательно моей темы я уже все получил

                                        Вы нашли семантический диф. вифер? :blink:
                                          Цитата Исмаил Прокопенко @
                                          Обычно от предшественника тебе достается репозиторий, в котором 1000 версий. И тебе ставят задачу: найти с какой версии и почему "что-то пошло не так".
                                          В git и svn есть команда bisect. Мне её обычно хватает.
                                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                          0 пользователей:
                                          Закрыто vot 10-08-2016: Закрыто по просьбе автора


                                          Рейтинг@Mail.ru
                                          [ Script execution time: 0,0522 ]   [ 15 queries used ]   [ Generated: 19.03.24, 04:19 GMT ]