Форум программистов, компьютерный форум, киберфорум
Наши страницы
Другие языки программирования
Войти
Регистрация
Восстановить пароль
Результаты опроса: Знакомы ли с конструкцией GOTO?
Помню Goto но давно не использую 7 58.33%
Никогда не использовал такую конструкцию 3 25.00%
Применяю и сейчас 2 16.67%
Голосовавшие: 12. Вы ещё не голосовали в этом опросе

 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
andyj
108 / 54 / 10
Регистрация: 16.03.2017
Сообщений: 654
1

Goto

10.11.2017, 02:42. Просмотров 892. Ответов 39
Метки нет (Все метки)

Добрый день, у меня очередной "мини-опрос":

Вы еще застали Goto? Помните как им пользоваться? или уже забыли окончательно или даже никогда не учили? А может применяете где-нибудь до сих пор?

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

нашел тему (очень длинная, вычитываю по немногу): Goto - за и против
там (2005г) 51/48% против гото на сотню опрошеных (=не однозначно).
но мне нужна сегодняшняя статистика!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2017, 02:42
Ответы с готовыми решениями:

Как избавится от GoTo
Пишу несложную программку по расчету электрического узла. Язык Fortran. Первым...

goto
плз подкиньте любую простую сделаную задачу с оператором goto

goto
почему не работает оператор goto??? делаю так: $reg_result="Користувач з...

От goto к while
Доброго времени суток. Сделал программу через goto и пытаюсь её исправить что...

GoTo
День добрый, возникли проблемы при использовании goto, необходимо повторить...

39
Curry
2557 / 1722 / 220
Регистрация: 01.06.2013
Сообщений: 3,597
Записей в блоге: 7
10.11.2017, 06:40 2
.....
0
tmpValue
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 284
11.11.2017, 17:32 3
Цитата Сообщение от andyj Посмотреть сообщение
там (2005г)
2015
1
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
11.11.2017, 20:22 4
Цитата Сообщение от andyj Посмотреть сообщение
Добрый день, у меня очередной "мини-опрос":

Вы еще застали Goto? Помните как им пользоваться? или уже забыли окончательно или даже никогда не учили? А может применяете где-нибудь до сих пор?

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

нашел тему (очень длинная, вычитываю по немногу): Goto - за и против
там (2005г) 51/48% против гото на сотню опрошеных (=не однозначно).
но мне нужна сегодняшняя статистика!
Goto - это просто оператор языка. Если он нужен, то им нужно пользоваться. Если он не нужен, то им не нужно пользоваться. Все очень просто, и странно, что это требует специального обсуждения.

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

Вдобавок, многое зависит и от самого языка программирования. В некоторых языках такого оператора нет совсем, а вот в ассемблере вы без него вообще ничего не сделаете.

Так что странно, что предлагается голосовать за использование оператора GOTO
3
andyj
108 / 54 / 10
Регистрация: 16.03.2017
Сообщений: 654
11.11.2017, 23:27  [ТС] 5
Цитата Сообщение от tmpValue Посмотреть сообщение
2015
Странно! был уверен что прочитал 2005. Глюк или на дату регистрации чью-то смотрел...

Цитата Сообщение от Mr_K Посмотреть сообщение
Goto - это просто оператор языка. Если он нужен, то им нужно пользоваться.
Работал на java-фирме где были очень жетски по отношению к правильности/чистоте кода!
Да и население было "прошито" подобными идеями/стандартами. И здесь влипал в подобные споры... например меня убеждали в том что в домашних проектах правильно/неоходимо/безальтернативно пользоваться GIT, не слушая моих доводов...

Мой язык по структуре сильно напоминает ассемлер, хоть и является вполне высокоуровневым (и даже в теории возможно ООП). Оператор Goto является ядром языка, и даже операторы цикла на него похожи (требуют ручного указания строки окончания). Вот и хочу прощупать отношение окружающих/местных к этому оператору... Не удивлюсь если в нынешних школах даже не учат такой конструкции!
1
Rius
Эксперт .NET
5012 / 3241 / 792
Регистрация: 25.05.2015
Сообщений: 9,954
Записей в блоге: 11
Завершенные тесты: 4
11.11.2017, 23:31 6
Цитата Сообщение от andyj Посмотреть сообщение
например меня убеждали в том что в домашних проектах правильно/неоходимо/безальтернативно пользоваться GIT, не слушая моих доводов...
Вы хотите снова на эту тему поспорить?
Доводы ваши, точнее даже утверждения, такие:
  • гит только для команд;
  • гит для себя (одиночного программиста) абсолютно бесполезен.
И это подкреплено основано на куче бреда незнании самого гита и полном неумении с ним работать.
0
andyj
108 / 54 / 10
Регистрация: 16.03.2017
Сообщений: 654
12.11.2017, 00:02  [ТС] 7
Цитата Сообщение от Rius Посмотреть сообщение
Вы хотите снова на эту тему поспорить?
Вот об этом консерватизме я и говорил... (или любви к стандартам) хотел узнать как с этим в отношении goto!

Не по теме:

Цитата Сообщение от Rius Посмотреть сообщение
Доводы ваши, точнее даже утверждения, такие:
Вообще-то это было лично мое мнение, основано на лично-моем опыте. мне никогда не приходилось "откатывать" за более чем 10 лет работы. Я приводил доводы за полную архивацию, но вы все равно считали архивацию "детским садом" и открыто это говорили. И это не значит что я "такой тупой что даже не понимаю таких простых вещей" - это просто другой подход к хранению истории версий! (мне она нужна ТОЛЬКО для коллекции и подсчета версии "по дням работы с кодом"). Без нынешних "стандартов"! p.s. гит я знаю и в командах пользуюсь, но для своих маленьких одиночных портабл- проэектов предпочитаю 7z...



Страшно представить что "такие как вы" будут высказывать по поводу нового и современного (а не привычного старичка-ассемлера) языка основанного на goto...
0
Rius
Эксперт .NET
5012 / 3241 / 792
Регистрация: 25.05.2015
Сообщений: 9,954
Записей в блоге: 11
Завершенные тесты: 4
12.11.2017, 00:17 8
Цитата Сообщение от andyj Посмотреть сообщение
Вот об этом консерватизме я и говорил... (или любви к стандартам) хотел узнать как с этим в отношении goto!
Это не консерватизм.
Была практика применения.
Постепенно люди осознали, что эта практика приводит к говнокоду.
И решили её избегать.
А чтобы каждому новичку не объяснять историю возникновения, которая требует понимания кучи деталей, о которых ему тоже придётся рассказывать, просто сократили до "избегай и всё!".
Цитата Сообщение от andyj Посмотреть сообщение
Вообще-то это было лично мое мнение, основано на лично-моем опыте. мне никогда не приходилось "откатывать" за более чем 10 лет работы.
Согласен. Это ваше мнение. И если бы вы хотели работать более эффективно, вы бы его изменили. Программисты вообще ленивые и хотят упростить себе жизнь. А вы, как я понял из предыдущих тем, почему-то к упрощению не стремитесь. Ну, дело ваше, мне вас из этого болота вытаскивать совершенно незачем...
Цитата Сообщение от andyj Посмотреть сообщение
Я приводил доводы за полную архивацию, но вы все равно считали архивацию "детским садом" и открыто это говорили.
Да, в данном случае детсад. Или каменный век.
Цитата Сообщение от andyj Посмотреть сообщение
Без нынешних "стандартов"!
Про стандарты см. выше, в начале этого поста.
Цитата Сообщение от andyj Посмотреть сообщение
p.s. гит я знаю и в командах пользуюсь, но для своих маленьких одиночных портабл- проэектов предпочитаю 7z...
Нет, не знаете. Видно по постам в той теме. Поэтому и 7z применяете до сих пор.
Цитата Сообщение от andyj Посмотреть сообщение
Страшно представить что "такие как вы" будут высказывать по поводу нового и современного языка (а не привычного старичка-ассемлера) основанного на goto...
Покажите мне современный язык, в котором без goto никуда, он органично встроен и не приводит к говнокоду.
Только не надо ссылаться на ассемблеры. C/C++/C# от необходимости goto избавлены, а в Java goto вообще удалён.
0
andyj
108 / 54 / 10
Регистрация: 16.03.2017
Сообщений: 654
12.11.2017, 00:35  [ТС] 9
Цитата Сообщение от Rius Посмотреть сообщение
Да, в данном случае детсад. Или каменный век.
Вот поэтому и хотел узнать уровень консерватизма по goto... если вы от одного предложения по git так заводитесь, то представляю себе какой батхерт начнется от "языка где без goto никуда"

Не по теме:

под "современным" я имел созданный сегодня, а не 20-30 лет назад... а не "по всем современным стандартам"

0
Rius
Эксперт .NET
5012 / 3241 / 792
Регистрация: 25.05.2015
Сообщений: 9,954
Записей в блоге: 11
Завершенные тесты: 4
12.11.2017, 01:04 10
Это бессмысленно узнавать, в надежде что goto обрёл популярность. Ничего не изменилось.
  • Хорошие практики приживаются. Кто-то типа вас их упорно избегает.
  • Вы всё равно сделаете по своему.
  • Вангую, что язык не будет выпущен и не получит распространения.
  • Выборка от голосования здесь будет недостаточной.
0
tmpValue
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 284
12.11.2017, 01:09 11
Все разговоры о вреде goto основаны на непонимании статьи Э. Дейкстры "Структурное программирование", в которой автор критикует не столько оператор, сколько фзык фортран и его неумелое использование. В моей практике лишь однажды был случай когда дырку пришлось затыкать goto. В частности, в горе-конторе где я имел несчастья трудиться использовалась крякнутая (да!) среда Delphi. И, толи кракеры что-то недомудрили, толи компилятор споймал неудобное расположение звезд, но только в одном месте кода на одних и тех же входных данных процедура срабатывала буквально через раз. Решение было найдено, и оно просто шокирует:
Delphi
1
2
3
4
5
6
7
8
9
label L1:
counter := 0;
try
  inc(counter);
  Foo;
except
  if counter = 1 then
    goto L1;
  else ...
3
andyj
108 / 54 / 10
Регистрация: 16.03.2017
Сообщений: 654
12.11.2017, 01:11  [ТС] 12
Цитата Сообщение от Rius Посмотреть сообщение
Хорошие практики приживаются.
плохие тоже... как и вредные привычки вроде курения...
Цитата Сообщение от Rius Посмотреть сообщение
Вы всё равно сделаете по своему.
а я спрашиваю чьи-то советы? или просто собираю статистику по "консерватизму"?
Цитата Сообщение от Rius Посмотреть сообщение
Вангую, что язык не будет выпущен и не получит распространения.
а вы все напрашиваетесь на выкладывание языка сюда методом "а вам слабо"? отвечаю еще раз - в ближайшие несколько лет выпущен не будет. В ближайшие пол года начнет работать внутри узкоспециализированной программы у 3х-5ти пользоваталей. О "распространении" поговорим минимум еще через 5 лет...
Цитата Сообщение от Rius Посмотреть сообщение
Выборка от голосования здесь будет недостаточной.
меня вполне устраивает!
0
tmpValue
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 284
12.11.2017, 01:24 13
andyj, мне кажется что ты как автор сам можешь решить что реализовать в своем языке. Тем более что реализация того же goto может быть совсем далека от стандартных ожиданий. А в сочетании с макросистемой даже обычный goto способен творить чудеса, см loop.
1
andyj
108 / 54 / 10
Регистрация: 16.03.2017
Сообщений: 654
12.11.2017, 01:52  [ТС] 14
Цитата Сообщение от tmpValue Посмотреть сообщение
А в сочетании с макросистемой даже обычный goto способен творить чудеса, см loop.
Согласен, но меня смущает "предвзятое отношение" к goto в современных языках. Его многие считают чуть-ли "пережитком прошлого" от которого не откзались лишь для поддержки сверх-устаревших исходников (которые лень переписывать).
Вариации loop в каждой следующей версии java лишь получают развитие, а goto все еще остается "зарезервированным словом без реализации".

Не по теме:

Цитата Сообщение от tmpValue Посмотреть сообщение
Тем более что реализация того же goto может быть совсем далека от стандартных ожиданий.
Согласен, я нашел довольно необычное и очень перспективное направление основанное на goto. Под него пришлось перевернуть всю логику простейших интерпретаторов, но... это как клинопись по сравнению с современными ООП-языками - потенциал огромный, но прийдется учитьсся почти с нуля. По немногу на этой "клинописи" пишу аналоги if/then, for/end и begin/end, но и там остаются "раритеты goto" - обязательное "ручное" указание "конца блока". Даже не представляю себе как от этого избавиться! Поэтому и решил оценить (хотя-бы здесь) "уровень предвзятости к goto"...

0
tmpValue
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 284
12.11.2017, 02:31 15
Цитата Сообщение от andyj Посмотреть сообщение
Согласен, но меня смущает "предвзятое отношение"
Пусть не смущает. Люди, самостоятельно ограничивающие себя стереотипами, не понимая этого, лишают себя возможности "озарения", "вдохновения", "полета мысли". Это даже более глубокий вопрос, чем просто оператор, это — способ мышления, склонность к перфекционизму и простоте. В любом случае это положительное психическое отклонение от нормы.
1
andyj
12.11.2017, 05:25  [ТС]
  #16

Не по теме:

Цитата Сообщение от tmpValue Посмотреть сообщение
Это даже более глубокий вопрос, чем просто оператор, это — способ мышления, склонность к перфекционизму и простоте.
Не все языки ведут к "простоте"... иногда просто нужен "результат добытый хоть как-нибудь"! (как с "нейронными сетями"). Боюсь моя методика - это попытка развить и опробовать один из таких подходов! (почему-то не тронутый остальными - может из-за сложности разработки "среды" и отказа от привычных тектовых редакторов) Если получится - можно будет начать "упрощать", "облагораживать", вырабатывать более понятные методики, доводить до ума редактор... пока-же его тяжело понимать даже на втором десятке команд! Хотя он уже начинает приближаться по сложности к школьным/учебным языкам, с одним ограничением - обязательное понимание принципов goto!

p.s. смешно, но я еще не определился даже с командой "прерывания программы"... решил "отложить выбор на потом". Поэтому пока ее можно прервать через любое из: Stop, Exit, return, close, break, terminate и halt... позднее подумаю над вводом "стандартов"... или устрою еще одно голосование :)

0
korvin_
2161 / 1650 / 319
Регистрация: 28.04.2012
Сообщений: 5,907
12.11.2017, 15:21 17
Цитата Сообщение от tmpValue Посмотреть сообщение
Решение было найдено, и оно просто шокирует
Это не решение, это — костыль. Решение: рефакторинг процедуры.
1
tmpValue
41 / 74 / 15
Регистрация: 04.10.2017
Сообщений: 284
12.11.2017, 15:44 18
Цитата Сообщение от korvin_ Посмотреть сообщение
Решение: рефакторинг процедуры.
Я не помню точно какая, но помню что процедура нативная. И соотеветственно рефакторинг заменился бы на реинжиниринг. Впрочем как и руководству, так и мне тогда вообще до лампочки как продукт реализован, главное чтобы работал.
0
korvin_
2161 / 1650 / 319
Регистрация: 28.04.2012
Сообщений: 5,907
12.11.2017, 15:51 19
Цитата Сообщение от tmpValue Посмотреть сообщение
Я не помню точно какая, но помню что процедура нативная. И соотеветственно рефакторинг заменился бы на реинжиниринг. Впрочем как и руководству, так и мне тогда вообще до лампочки как продукт реализован, главное чтобы работал.
Даже в этом случае не вижу причин, почему использование goto здесь лучше обычного цикла.
0
andyj
108 / 54 / 10
Регистрация: 16.03.2017
Сообщений: 654
12.11.2017, 15:57  [ТС] 20
Цитата Сообщение от korvin_ Посмотреть сообщение
Даже в этом случае не вижу причин, почему использование goto здесь лучше обычного цикла.
У Делфи были иногда такие глюки... можно несколько дней убить чтобы понять как это обойти ибо не смотря на логику "f:=2+2;" вызывает критическую ошибку и терминалит программу... Проще было написать костыль за пол часа такой, что самому стыдно, но обойти глюк компилятора! Много раз сталкивался (правда гото использовать для этого не приходилось)
1
12.11.2017, 15:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2017, 15:57

Goto
Вопрос следующий может ли goto прыгать вверх на метку? у меня в программе есть...

Goto
Как использовать оператор goto для перехода из процедуры Image в процедуру...

goto
again: .... .... .... goto again; как мне сделать переход к метке...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru