Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Заблокирован

Обсудим идеи как можно радикально облегчить и упростить программирование?

13.09.2016, 21:20. Показов 4293. Ответов 94
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Обсудим идеи как можно облегчить и упростить программирование?
Программирование с автоматически генерируемыми "IF...THEN...ELSE"


Есть ли языки без функций и "IF...THEN...ELSE"?

Не для кого не секрет что не смотря на то, что на заре развития инструментов программирования говорилось, что скоро языки программирования настолько приблизятся к языкам естественного общения, что программировать сможет даже домохозяйка это не произошло. Писать большие программы все так же мучительно и долго. Хотя уже более 50 лет инструментарий развивается.

Мне кажется что сложность программирования объясняется выбранной формой представления программы.

Из-за которой большую часть времени программист разбирается в тысячах "IF..THEN..ELSE" и сотнях функций. Даже в программе, написанной на объектно-ориентированном языке

А можно ли придумать какую-то форму представления программы, в которой бы не надо этого было делать?

Ну или хотя бы чтобы часть "IF..THEN..ELSE" и функций среда разработки генерировала сама.

Какие это могут быть формы?

Ну типа тоже текст, но более близкий к языку естественного общения.

Ну или графического представление.

Человек нарисовал световым пером на планшете картинку - а система распознала её и сгенерировала код.

Или программировать просто разговаривая с компьютером на человеческом разговорном языке. Ты говоришь компу - а он тебя понимает и генерит код.

Вообщем давайте подумаем вместе: что не дает в разы упростить и ускорить процесс программирования и снизить на порядки число багов?

Я думаю что форма представления программ будет меняться.

Уже давно назрела необходимость.
Потому что сложность программ и решаемых ими задач растет.

Поэтому нужно искать более адекватное, чем PLAIN-текст , представление программы (средства её обзора), её логики, структуры и смысла.

Так и средства разработки и контроля изменений

Просто мы продолжаем даже на высоких уровнях абстракции использовать всю ту же модель: "If...Then...else"

Может пора придумать что-то ещё?

Я думаю, что представление программы в виде "чисто PLAIN-текст и больше ничего кроме текста" скоро уйдет
, так как оно уже тормозит прогресс: сложные задачи решать очень сложно с таким преставлением.Потому что оно не очень наглядно и удобно. А ведь сложность задач постоянно растет.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.09.2016, 21:20
Ответы с готовыми решениями:

Работа с 2 формами. Можно как то облегчить?
Сделал я прогу, и теперь нужно что бы настройки программы открывались в новом окне, но из за того что я делал всё в 1 окно основнок, то...

Как можно упростить?
Как можно упростить #include <stdio.h> #include<stdlib.h> int main () { int a = -1; int i, d; int max = 0; ...

Как можно упростить код?
Задание такое: Решение следующее: public static int maxLandSize(double map) { int result = 0; for (int i = 0; i...

94
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
16.09.2016, 05:07
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Нужно чтобы кодить каждая кухарка могла, а не только люди с айк-ю выше 150
Кодить не нужно нужно программировать. А программирование начинается с анализа предметной области задачи, определения математических методов ее решения и адаптации их расчетам на контупере.
А дедушка Ленин ошибся. Развитие робототехники ликвилирует кухарок и прочих работников ручного труда как класс. Кстати именно из за этой ошибки Ленина кибернетику и робототехнику в СССР и крестили лженаукой.

Добавлено через 1 минуту
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Которые программист явно не пишет. Их система сама вставляет где надо
Компилятор никаких ифов не вставляет. Она составляет таблицу адресов переходов и вызывает виртуальные методы по адресу из таблицы без всяких ифов.

Добавлено через 3 минуты
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Поскольку именно он является самой главной причиной ненадежности программ
Он является причиной появления программ. А причиной их ненадежности является все больше и больше распространяемое заблуждение что программисту не надо знать математику и думать. Основной причиной ненадежности является недопонимание задачи. От этого в принципе не способен излечить ни компилятор ни тесты ни визуальные тулсы. Единственное что могут визуальные тулсы при правильном подходе - облегчить восприятие алгоритма. А удобство восприятия алгоритма программистом ключ к надежности.

Добавлено через 1 минуту
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Нужно чтобы кодить каждая кухарка могла, а не только люди с айк-ю выше 150
Задача программиста анализировать задачу и находить алгоритм ее решения. А код программы это всего лишь способ сообщить компьютеру найденный алгоритм.

Добавлено через 2 часа 10 минут
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Поэтому для "mission critical" приложений избыточность в коде не приветствуется.
Так как существует вероятность того, что будут активированы не нужные и даже опасные функции.
Вот поэтому и делаются универсальные абстрактные "черные ящики". К примеру - абстрактный селектор режима, цифровой фильтр сигнала, абстрактный ПИД-регулятор и т.п. а потом из этих ящичков как из кирпичиков система управления и собирается. Чтобы поменьше было всяких избыточностей в виде реализации оных функций в разных вариациях в каждом месте их применения да еще и смешанных в кашу. Кстати в продвинутых тулсах, к примеру Simantec Step 7 сборка схемы управления визуальная.

Добавлено через 2 минуты
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Поэтому для "mission critical" приложений избыточность в коде не приветствуется.
Так как существует вероятность того, что будут активированы не нужные и даже опасные функции.
Вот поэтому и делаются универсальные абстрактные "черные ящики". К примеру - абстрактный селектор режима, цифровой фильтр сигнала, абстрактный ПИД-регулятор и т.п. а потом из этих ящичков как из кирпичиков система управления и собирается. Чтобы поменьше было всяких избыточностей в виде реализации оных функций в разных вариациях в каждом месте их применения да еще и смешанных в кашу. Кстати в продвинутых тулсах, к примеру Simantec Step 7 сборка схемы управления визуальная.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
16.09.2016, 10:44
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Ну как же не зависит?
если каждая переменная в условном выражении IF вычисляется сначала по некоторому алгоритму
Вот у меня написано
IF Свет == Зелёный THEN можно_идти ELSE ...
Чтобы понять логику работы этого IF, мне не нужно знать, как вычисляется значение переменной Свет (от каких других ифов оно зависит).
0
Заблокирован
16.09.2016, 11:15  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Компилятор никаких ифов не вставляет. Она составляет таблицу адресов переходов и вызывает виртуальные методы по адресу из таблицы без всяких ифов.
Вы ошибаетесь.
Когда компилятор ищет метод который нужно вызывать учитывая возможность перегрузки и иерархии он именно ифы выполняет. А в качестве "переменных" в "условных выражениях" использует имена типов

Добавлено через 1 минуту
Просто люди часто используют ООП и прочие фишки С++ не задумываясь

Не по теме:

(большинство людей вообще не любят задумываться о чем-либо - от этого голова болит)

"а как оно врутри устроено?" А внутри там именно код с "IF..THEN..ELSE"

Добавлено через 2 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
заблуждение что программисту не надо знать математику и думать.
Математика - это подмножество информатики

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Основной причиной ненадежности является недопонимание задачи.
А основной причиной непонимания - является плохая ВИЗУАЛИЗАЦИЯ задачи.
Когда большинство связей и зависимостей скрыты, неявны и программисту приходится прилагать большие усилия, чтобы их разглядеть

Добавлено через 1 минуту
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вот поэтому и делаются универсальные абстрактные "черные ящики".
Вы забыли частицу "НЕ".
Вот поэтому и "НЕ делаются" ...

Добавлено через 4 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Кстати в продвинутых тулсах, к примеру Simantec Step 7 сборка схемы управления визуальная.
Степ 7 - это многогигабайтный монстр, а не программа.
Франкенштейн.
И до конца понять как она работает не смогут даже её создатели

Добавлено через 11 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вот у меня написано
IF Свет == Зелёный THEN можно_идти ELSE ...
Чтобы понять логику работы этого IF, мне не нужно знать, как вычисляется значение переменной Свет (от каких других ифов оно зависит).
А значение переменной "Свет" сформировал какой-то код (кто-то ведь записал в неё "Зеленый".)
А в коде есть IF-ы.
А Вы говорите "не зависит"

И потом, Вы рассматриваете самые простейшие, ВЫРОЖДЕННЫЕ, случаи.
Это не хорошо.
Это примерно как в физике. Там рассматривают тела как материальные точки.
В вырожденном случае это можно делать. Но этим не исчерпываются все расчеты.
Иногда тело нельзя принимать за материальную точку.


А если так:
IF (Н*Z)>(R+T) THEN ...
И вычисления переменных H, Z, R, T "размазаны" по коду и содержать IF-ы?
Получается что результат IF-а зависит от того, как вычислялись другие IF-ы.
И кроме того, нужно ещё проверить, что мы вообще корректно попали в эту точку программы.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Чтобы понять логику работы этого IF, мне не нужно знать, как вычисляется значение переменной Свет
А мы не об этом говорим (Вы перепутали эту тему с другой).
Не о понимании, а об ИСПРАВЛЕНИИ/ВНЕСЕНИИ ИЗМЕНЕНИЙ в код.
Что трудно внести изменение не порушив всю логику если программа достаточно сложная.

Добавлено через 6 минут
Это как в схемотехнике.
Чтобы понять работу устройства по схеме "вобщем" нужны одни усилия. Относительно небольшие.
Потому что от многих вещей можно абстрагироваться (например от того, как размещены компоненты на плате и как проведены дорожки).
А когда тебе нужно спроектировать устройство - ты должен продумать малейшие нюансы, учесть все влияющие связи.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
16.09.2016, 12:53
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Что трудно внести изменение не порушив всю логику если программа достаточно сложная.
Вот для этого и существуют компоненты.

Добавлено через 1 минуту
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Когда компилятор ищет метод который нужно вызывать учитывая возможность перегрузки и иерархии он именно ифы выполняет.
Когда ищет. Но в код не вставляет. в код вставляет найденный адрес.

Добавлено через 39 секунд
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Вы забыли частицу "НЕ".
Вот поэтому и "НЕ делаются" ...
Вот именно по этомц и делаются. Модульный принцип в технике рулит.
1
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
16.09.2016, 13:45
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
А мы не об этом говорим (Вы перепутали эту тему с другой).
Не о понимании, а об ИСПРАВЛЕНИИ/ВНЕСЕНИИ ИЗМЕНЕНИЙ в код.
Что трудно внести изменение не порушив всю логику если программа достаточно сложная.
Именно об этом. Легко внести изменение.
IF (Н*Z)>(R+T) THEN ...
И вычисления переменных H, Z, R, T "размазаны" по коду и содержать IF-ы?
От конкретных значений зависит результат выполнения, но логика от этого не зависит. Поэтому легко внести изменения в логику. А результат может зависеть от генератора случайных чисел.
Бизнес-логика заключается в том, что можно идти на зелёный свет. Когда я правлю эту логику, мне не нужно думать о том, как переключается светофор. Переключением светофора занимается другой модуль.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
16.09.2016, 13:51
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
А когда тебе нужно спроектировать устройство - ты должен продумать малейшие нюансы, учесть все влияющие связи.
И лепить корпуcа "жопка к жопке" как это называют электроники. Т.е. что там внутри каждого корнуса не важно, важны их интерфейсы с другими модулями (в данном случае микросхемами). По такому же принципу и сборка из компонентов строится.
0
Заблокирован
16.09.2016, 14:18  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Модульный принцип в технике рулит.
Модуль модулю рознь.
Никто не делает универсальный модуль на все случаи жизни, когда кофемолка сможет выполнять функции утюга или мясорубки
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
16.09.2016, 15:07
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Модуль модулю рознь.
Никто не делает универсальный модуль на все случаи жизни, когда кофемолка сможет выполнять функции утюга или мясорубки
Универсальный это означает что выполняет свою функцию универсально. Примером такого модуля может к примеру служить банальный выключатель. Или электрическая пробка.
0
Заблокирован
16.09.2016, 15:42  [ТС]
С другой стороны, управлять огромным числом маленьких кубиков также сложно, как малым числом больших
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
17.09.2016, 03:49
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
С другой стороны, управлять огромным числом маленьких кубиков также сложно, как малым числом больших
Сначала они собираются в кубики побольше тоже по тому же принципу - каждый делает свою функцию.

Добавлено через 1 минуту
При этом такие промежуточные сборки кубиов имеют качественно новые свойства - их можно один раз настроить и связать с другими кубиками, а дальше они уже управляются сами.

Добавлено через 8 часов 41 минуту
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Математика - это подмножество информатики
Ошибаетесь. Информатика - это прикладная математика и ее приложение к вычислительной технике.

Добавлено через 21 минуту
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
И вычисления переменных H, Z, R, T "размазаны" по коду и содержать IF-ы?
Начнем с того что это пример отвратительной визуализации задачи. Для того чтобы что то было понятно имя переменной должно отображать ее суть.
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
А если так:
IF (Н*Z)>(R+T) THEN ...
И вычисления переменных H, Z, R, T "размазаны" по коду и содержать IF-ы?
Получается что результат IF-а зависит от того, как вычислялись другие IF-ы.
Ну можно и посложнее:
C++
1
2
3
        if (!Checker->Check(Bullets[i].Position)){
            Bullets.FastDelete(i);          
        }
И что самое главное в этом ифе не важно ни как ни где считалась эта Position, ни каким образом Сheck ее проверяет, вплоть до того что это на этапе компиляции неизвестно. Важно то, что если Checker не устроило значение Position то это означает что элемент Bullets[i] вышел за пределы моделируемого пространства и его нужно удалить. Вот это и есть декомпозиция.

И кроме того, нужно ещё проверить, что мы вообще корректно попали в эту точку программы.
а по завершению программы надо распечатать десять километров распечаток промежуточных результатов и проверить все на счетах. Причем после каждого запуска.
1
Заблокирован
17.09.2016, 15:53  [ТС]
Fulcrum_013, Shamil1, Короче в программировании все проблемы решены и расти дальше некуда.
Я правильно понял посыл ваших месседжей?
Что все и так уже хорошо (так хорошо, что лучше и не надо) и "от добра добра не ищут"
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
17.09.2016, 18:38
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Я правильно понял посыл ваших месседжей?
Что все и так уже хорошо (так хорошо, что лучше и не надо) и "от добра добра не ищут"
Ну далеко не все. Существуют визуальные средства настройки и связывания готовых компонентов. А вот сами компоненты по старинке делаются текстом, хотя и для текстовых программ существуют методики повышения наглядности и распределения зон ответственности а соответственно получения довольно высокой надежности . Визуальные средства создания компонентов тоже многое бы ускорили, улучшили бы воспринимаемость а соответственно повысили бы надежность, при этом пользуя все те же методики декомпозиции и т.д. которые пользуются и в текстовых программах.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
17.09.2016, 19:51
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Короче в программировании все проблемы решены и расти дальше некуда.
Я правильно понял посыл ваших месседжей?
Каким образом из отсутствия некой одной проблемы Вы делаете вывод об отсутствии проблем вообще?
0
Заблокирован
18.09.2016, 09:36
Ну я в теме участия принимать не буду - просто вот "система условия", кто хочет чтобы его код работал и на химических компьютерах-молекулах должен писать условные операторы так, а выбор за вами - будете вы переписывать свой код или делать его универсальным сразу. https://www.cyberforum.ru/blog... g3707.html .
И таки да - сделал на спор с студентами, об экономии средств на разработку ПО не подумал, так-то да экономия средств на разработке ПО в перспективе на будущее - реальна, только не для меня - сделал на спор.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
18.09.2016, 19:30
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Кстати, весь ООП в с++ это не что иное как скрытые ифы.
Которые программист явно не пишет. Их система сама вставляет где надо
Нету там никаких ифов. Есть индирект вызов.
0
Заблокирован
18.09.2016, 20:24  [ТС]
Fulcrum_013, Shamil1, Просто Вы рассматриваете простые структуры данных и алгоритмические языки (а-ля Паскаль) к которым относится с++ и многие другие.

А если бы структуры данных были сложные, то "замучаетесь пыль глотать"(с) при каждом изменении этой структуры данных и правил её построения.

Например если Вам нужно распарсить какой-нибудь необычный нестандартный REGEX, а его правила построения поменялись.
Или Вы пишите компилятор языка, а его грамматика (контекстно-зависимая) поменялась.

Замучаетесь if-Ы править каждый раз. 100% понасажаете ошибок

Добавлено через 1 минуту
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Нету там никаких ифов. Есть индирект вызов.
Есть. IF-ы содержит сам код компилятора

Добавлено через 1 минуту
Hretgir, Я не очень понял о чем Вы.
Поясните
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
18.09.2016, 20:25
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
А если бы структуры данных были сложные,
Любые сложные структуры являются комбинацией более простых. Вот как раз выделение этих кирпичиков и наборов их взаимосвязей с остальными кирпичиками и есть работа программиста.
0
Заблокирован
18.09.2016, 20:31  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Любые сложные структуры являются комбинацией более простых.
И?
Спасибо конечно, кэп.
Но к чему это Вы сказали?

Да являются. И что?

Приведу аналогию из строительства.
Стеновые-блоки, из которых сейчас 17-ти этажки строят за месяц, вручную же из кирпичиков не собирают.
Это делают специальные механизмы.

Добавлено через 3 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Любые сложные структуры являются комбинацией более простых
И кстати, это не так.
Вы слышали что-нибудь о контекстной зависимости?
Иерархии Хомского? О том, что 2+2 может равняться и 6 и 8?

"Не так", в смысле, порой нельзя разрезать структуру на отдельные "кирпичики" и отлаживать их по отдельности.

Это примерно как если у человека отрезать ногу или руку - то каждую отдельную часть невозможно "отладить" без остальных.

Потому что все органы и конечности человека работают в тесной связке
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
18.09.2016, 20:55
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Иерархии Хомского? О том, что 2+2 может равняться и 6 и 8?
Оно будет равнятся тому что вычислит оператор. А как он перегружен это уже вопрос конкретной задачи.
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
Это примерно как если у человека отрезать ногу или руку - то каждую отдельную часть невозможно "отладить" без остальных.
Ошибаетесь. Человек сначала отлаживает движения каждой отдельно взятой конечностью, причем этот процесс начинается еще до рождения. А уже только потом отлаживает совместную работу конечностей (учится ходить и т.д.)

Добавлено через 44 секунды
Цитата Сообщение от ИсмаилПркопенко Посмотреть сообщение
"Не так", в смысле, порой нельзя разрезать структуру на отдельные "кирпичики" и отлаживать их по отдельности.
Все можно если хорошо подумать.
0
Заблокирован
18.09.2016, 21:48  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ошибаетесь. Человек сначала отлаживает движения каждой отдельно взятой конечностью
Каждая отдельная конечность не есть человек.
Можно отлично уметь двигать руками, ногами головой.
Но при этом не уметь бегать и лазить по деревьям.
Изучая каждую отдельную часть человека в отдельности НИКОГДА не поймешь, что такое человек

Добавлено через 2 минуты
Fulcrum_013, Про "контекстную зависимость", "нестандартный REGEX" и написание компилятора языка с постоянно меняющейся грамматикой Вы специально <<не заметили>>?
Выборочно отвечаете?

Добавлено через 1 минуту
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Оно будет равнятся тому что вычислит оператор. А как он перегружен это уже вопрос конкретной задачи.
Вы меня не поняли. Я не о том.
Термин "синергетика" Вам о чем нибудь говорит?

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

Добавлено через 11 минут
Или вот ещё идея (это я сейчас совсем про другое (но в рамках темы) - оно не как не связано с тем, что говорилось выше)


Все мы пользуемся программами сравнения (визуализации отличий) исходников.
Чаще всего в связке с системой контроля версий.
Бывает нужно посмотреть чем рабочая версия отличается от версии к примеру месячной давности.
Таких программ достаточно много (Windiff, Araxis Merge, Beyound Compare и прочие)
Программа "компаратор исходников" нужна.

Не не просто тупого сравнения текста двух файлов и визуализации отличий в тексте(что и делают упомянутые выше программы), а сравнения СЕМАНТИКИ двух исходников и визуализации семантических отличий.
Т.е. "компаратор" должен как мининимум понимать семантику языков программирования, исходники на котором он сравнивает

Приведу конкретный пример.
Вы переименовали функцию, которая у Вас в исходниках вызывается раз 150, с TlRof на Lsyrt.
Что покажет обычный diff viewer?
Выделит красным все 150 мест где находятся вызовы.
А что покажет semantic diff viewer?
Покажет всего одну строчку:

Функция TlRof была переименована на Lsyrt.


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

Ведь в случае просто диф. вьювера Вам придется просмотреть все 150 изменений, проанализировать их, чтобы понять, что в исходнике всего лишь переименовали функцию

В сложных случаях таких подсвеченных красным строк может быть десятки тысяч. И это в то время как семантически исходник НЕ ИЗМЕНИЛСЯ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.09.2016, 21:48

Можно ли как-то упростить код
Добрый день, уважаемые. Пишу небольшую библиотечку. В ней, с помощью Writerа составляю некоторую последовательность. Потом эта...

Как можно это упростить?
public bool yearSort(int year, bool from, bool include) { if (from) { if (include) { ...

Как можно упростить код?
javascript изучаю недавно, написал небольшой код, но я думаю его можно сделать проще на много, но как проще его сделать я не знаю html: ...

Как можно упростить процесс?
Делал тест и столкнулся со следующей проблемой,в тесте имеется около 150 вопросов.Первый вариант был делать делать каждый вопрос на...

как можно упростить код?
как можно упростить код? есть несколко label по ним двигается слово по 1 букве на label и при смене буквы меняется Random цвет(color) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru