|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|
Оператор GOTO: за и против20.11.2011, 16:38. Показов 15017. Ответов 146
Метки нет (Все метки)
Люди, по ходу, газет не читают:
Оператор GOTO в языках высокого уровня является объектом критики, поскольку чрезмерное его применение приводит к созданию нечитаемого «спагетти-кода». Впервые эта точка зрения была отражена в статье Эдсгера Дейкстры «Доводы против оператора GOTO», который заметил, что качество программного кода обратно пропорционально количеству операторов GOTO в нём. Статья приобрела широкую известность как среди теоретиков, так и среди практиков программирования, в результате чего взгляды на использование оператора GOTO были существенно пересмотрены. В своей следующей работе Дейкстра обосновал тот факт, что для кода без GOTO намного легче проверить формальную корректность. Код с GOTO трудно форматировать, так как он может нарушать иерархичность выполнения (то есть парадигму структурного программирования), и потому отступы, призванные отображать структуру программы, не всегда могут быть выставлены правильно. GOTO также аннулирует многие возможности компилятора по оптимизации управляющих структур Доводы против оператора GOTO оказались столь серьёзны, что в структурном программировании его стали рассматривать как крайне нежелательный Начало тут
0
|
|
| 20.11.2011, 16:38 | |
|
Ответы с готовыми решениями:
146
Оператор GOTO и его метки Goto - за и против Оператор goto |
|
Кормпилятор
|
|
| 20.11.2011, 16:49 | |
|
GOTO это отличный оператор, не одна серьёзная программа без него не обходится.
В защиту GOTO могу сказать, что лишь правильная работа с переходами на низком уровне увеличивает проиводительность программ. Когда программа структурирована насколько это возможно, применение переходов становится даже более чем желательным, т.к. сложность дальнейшего рефакторинга вкупе с оптимизацией после реструктуризации программы(что может плохо сказаться на производительности и увеличить кол-во ошибок) насолько велика, что проще и надёжнее поставить переход, нежели заниматься бестолковой трудоёмкой работой.
0
|
|
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|
| 20.11.2011, 16:51 [ТС] | |
|
Ну да, Дейкстра, он, конечно, в программировании не смыслит, как и остальные 99% программистов, отказавшихся от GOTO
0
|
|
|
Кормпилятор
|
||||
| 20.11.2011, 16:54 | ||||
Добавлено через 51 секунду
Добавлено через 1 минуту кот Бегемот, мы уже об этом говорили, не стоит специально флеймить.
0
|
||||
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
||
| 20.11.2011, 17:07 [ТС] | ||
|
Не по теме: >Quiet Snow<, вы очень неплохо пишете программы, но не надо мнить себя центром Вселенной. Ваши взгляды на программирование безнадёжно устарели, и Ваша попытка реанимировать GOTO похожа на езду по скоростной трассе на Запорожце среди иномарок. Это факт и с этим надо смириться, независимо от того, что Запорожец лично Вам рчень нравится
0
|
||
|
Кормпилятор
|
||||
| 20.11.2011, 17:13 | ||||
Мне не важно кто и как матетатически что-то там доказал, да можно структурировать программу без переходов, но кто этим будет пользоваться без автоматических средств реструктуризации. Ответ очевиден. Всё больше спорить не хочу, надоело, пишите тут что пожелаете, ваше право, нормальные программисты знают что к чему им демагогии на форумах не нужны у них большие и сложные проги, а не детский юмор... Добавлено через 3 минуты
0
|
||||
| 20.11.2011, 17:13 [ТС] | |
|
Не по теме: Я тоже спорить больше не хочу, но программу с GOTO всё же хотелось бы увидеть, заяц ведь трепаться не любит? Или любит?
0
|
|
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|
| 20.11.2011, 17:39 [ТС] | |
|
Надо нести ответственность за базар, иначе каждый начнёт писать всякую хрень, выдавая это за истину.
0
|
|
|
Кормпилятор
|
|||
| 20.11.2011, 18:05 | |||
Добавлено через 14 минут Не по теме: Памирыч, с сообщением всё впорядке, твоя личка блокирована потому пишу тут. Добавлено через 9 минут
0
|
|||
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|||
| 20.11.2011, 18:20 [ТС] | |||
2. не надо посылать что-то где-то искать. утверждаете - доказывайте здесь.
0
|
|||
|
Кормпилятор
|
|||
| 20.11.2011, 18:30 | |||
0
|
|||
|
|
||
| 20.11.2011, 18:57 | ||
|
Извините, что вмешиваюсь в ваш благородный спор, но нельзя ли уточнить, о каком языке программирования идет речь? Судя по ветке это QBasic, но тогда при чем тут исходники Quake2? Если о ЯП вообще, то спор вообще некорректный, т.к. каждый ЯП заточен под свои операторы, и в некоторых такого оператора вообще нет( FORTH), а в иных просто нет другого механизма и без GOTO не обойтись. К стати, интересный факт о Н.Вирте :
Хотя в остальных современных ЯП я легко обхожусь без него, включая и различные Бейсики.
0
|
||
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|
| 20.11.2011, 19:20 [ТС] | |
|
Pro_grammer, речь, прежде всего, идёт о бейсике. Но вот товарищ утверждает, что ВСЕ серьёзные программы обязательно не обходятся без этого оператора.
Мне сложно судить о тех языках, которые я не знаю, но в паскале, хоть и есть GOTO, я ни разу не видел, чтобы им кто-то пользовался, поскольку и в паскале, и в бейсике хватает простых конструкций, позволяющих обойтись без GOTO, хотя бы DO...LOOP, а в паскале WHILE DO. При изучении бейсика нормальные преподы обязательно предупреждают: использование GOTO - дурной стиль программирования, затрудняющий чтение программы и не дающий возможность её структурировать. Но у >Quiet Snow< своё личное мнение. Я ему сочувствую.
0
|
|
|
Кормпилятор
|
||||||
| 20.11.2011, 19:28 | ||||||
Меня попросили предъявить доказательство моих слов, что в большой коммерческой программе (а Quake 2 была такой программой) есть переходы. Да мне не пришло в голову ничего другого, не все сейчас радостно публикуют свои передовые разработки, это абсурд. Поэтому я говорю, кто достанет сверхсовременные исходники - пожалуйста, вот тогда будет разговор(это обращение ко всем, утверждающим обратное).
операциями, но это в большинстве случаев будет менее эффективно, нежели поставить переход. Хотя обойтись конечно и там можно, но это уже в виде прикола, например, всяким любителям брейнфака или хардкорных оптимизаций. Нужно понимать, что из себя представляют языковые конструкции и для чего они, чтобы чётко и ясно говорить кодеру - да вот это бесконечный цикл, да во это выбор вариантов, да вот это цикл с пред\пост условием. Почти каждая конструкция - завуалированный JMP, только компилятор(тупой бот) как назло будет ставить его не так, как надо и в ботлнеках первфоманс будет жестоко падать, лечится только асмом вкупе с хорошим алгоритмом.
Я же говорю всё это математически доказано, можно писать полностью без GOTO. Единственное что, программист не всегда склонен думать о будущем, а когда прижимает, начинаются проблемы, без переходов этих проблем в разы больше, если нет программ, которые это делают автоматически.
0
|
||||||
|
|
|||||||
| 20.11.2011, 20:52 | |||||||
0
|
|||||||
|
Кормпилятор
|
||
| 20.11.2011, 21:10 | ||
Pro_grammer, исчерпывающе
0
|
||
| 04.06.2016, 21:09 | |
|
Я за GOTO
1. Как выйти из цикла без оператора GOTO? Да есть конструкция типа EXIT FOR. А если требуется не просто выйти. А еще перешагнуть хотя бы через один оператор. Тут GOTO выигрывает. 2. Как выйти из кратного цикла? Лучше GOTO ничего нет. Но об этом предпочитают молчать. 3. Как досрочно завершить цикл? Но не выйти из него? Я не слышу ответа...
1
|
|
|
34 / 40 / 3
Регистрация: 24.11.2016
Сообщений: 159
|
|
| 18.01.2017, 20:51 | |
|
На этом сайте в разделе СВЯЩЕННЫЕ ВОЙНЫ идёт голосование кто за GOTO кто нет.Я голосовал за GOTO.Счёт идёт на равных.
0
|
|
|
Платежеспособный зверь
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
|
|
| 18.01.2017, 21:20 [ТС] | |
|
Зачем пытаться реанимировать темы 6-летней давности? Чтобы набросить дерьма на вентилятор? История уже всё расставила по местам: язык, Бейсик, ориентированный на GOTO, благополучно сдох, уступив дорогу современным структурированным языкам. И царство ему небесное.
А попытки энтузиастов что-то ещё на нём писать - ну, это мёртвому припарки...
0
|
|
|
|
|
| 18.01.2017, 23:22 | |
|
Goto как и Gosub даже из современных бейсиков не исчез, но как правило, обоснованное его использование бывает редко.
0
|
|
| 18.01.2017, 23:22 | |
|
Помогаю со студенческими работами здесь
20
Оператор goto
оператор GoTo Безусловный оператор GoTo Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|