Почему отказались от оператора GoTo в высокоуровневых языках?

Из-за чего отказались от функции GoTo, хотя раньше она присутствовала?
  • Вопрос задан
  • 261 просмотр
Решения вопроса 3
saboteur_kiev
@saboteur_kiev
software engineer
Никакие комьютеры не отказались от goto.
Кроме того, это не функция, а оператор.

Но если писать длинный код активно используя goto, в нем будет крайне сложно разобраться.
Поэтому в некоторых языках программирования его может и не быть. Но на архитектурном уровне и низкоуровневом ассемблере, он естественно есть.
Ответ написан
Комментировать
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Поскольку goto позволяет писать очень запутанный и непонятный код. Слишком легко написать плохой код.
Ну не могут люди в голове удерживать спагетти из кучи возможных путей исполнения. if/else, да циклы - это людям понятно. Появилась инструкция goto изначально, потому что в машинных кодах, а значит и в асемблере эта инструкция есть. Оттуда она перекочевала в языки более высокого уровня. Процессоры, наоборот, if/else вообще не умеют. Вместо это там всякие условные goto.
В новых языках программирования goto вообще нет, а в старых его обычно запрещают использовать в правилах кодовой базы. Если кто злоупотребляет - ему дают по рукам.
Ответ написан
@rPman
'Как хорошо' что в php остался goto, использовал его пару раз в жизни, для экстренного выхода из вложенных циклов. Это наверное единственный случай, где его использование оправдано и синтаксически и с точки зрения производительности.

В других случаях читать код с goto отвратительно сложно. И да, можно придумать кучу случаев, когда для оптимизации, чтобы не городить переменные состояний и не вставлять миллионы лишних if-ов, можно подумать что goto полезен, но все равно, такой код потом мало кто поймет.

p.s. тут народ простые switch case с пропуском break боится, типа путаются,..
причина всего этого упрощения очень проста - людям хочется решать задачу с наименьшими усилиями, а за понижение производительности заплатим железом и энергией... пока не упремся в потолок, это будет продолжаться естественным образом
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Steel_Balls
@Steel_Balls
От оператора GOTO никто никогда не отказывался
Ответ написан
Комментировать
@VT100
Embedded hardware & software.
В ассемблере (инструкциях процессоров) - она никуда не делась, КМК.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы