реклама
разместить
Польза goto в C++

TL;DR: Дейскстра учился писать код с goto, научился, раскритиковал применение goto, учебные программы усложнили т.к. “так сказал великий Дейкстра”, учить детей программированию стало сложнее.

Польза goto в C++
1212
реклама
разместить

Если это не на 1 апреля то:
1) То есть Дийкстра и другие воспарили из-за goto ? А может вопреки?

2) Каким образом это помогает понять на интуитивном уровне? Очень удобно наверное понимать как и куда прыгает что-то верно? При том что прыгнуть оно может вообще куда угодно?

3) Нет плохих языков. Язык это инструмент. Он решает задачи. Ненужно говорить что болгарка это плохой молоток. И у С++ хватает проблем причем их на столько много что диву даешься и авторы стандартов уже головы ломают как эту мусорку чинить оставляя обратную совместимость

4) Вы так отлично говорите о быстрых языках программирования что забываете что сами себя облапошили с goto. А теперь давайте вместе угадывать на сколько удобно будет процессору предиктить куда же прыгнет goto и при этом заранее положить в кеш или стэк даже не говоря о том чтобы прям в конвеере иметь инструкции дальнейшие. Там может быть все на столько неожидано что придется обращаться к хипу и тогда замечательно побежит ваша производительность. Просто шикарно!

При этом ваши разговоры о том что сейчас это десятки строк с циклами и тд...вы серьезно? А вы не думали что циклы отлично параллелятся на процессоре например? А как параллелится ваш не предиктивный goto для компилятора?

4

Понимать как исполнитель прыгает из строки с goto xxx в строку с xxx: очень просто, совпадение xxx в обеих строках интуитивно понятно обладателям интеллекта.

1

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

Процессору максимально удобно предсказывать куда прыгнет goto, это связано с тем, что место перехода известно не только во время выполнения, оно известно на этапе компиляции и явно указано в результирующем машинном коде. Безусловный переход предсказывается со 100% точностью, ведь заранее известно что он произойдёт и процессор может начать спекулятивное выполнение кода расположенного после точки перехода.

Чеееееел удачи тебе) Ты вообще не понимаешь как работает процессор и его конвеер команд. Да безусловный переход предсказывается вот только область кода которую надо заранее положить в конвеер может быть далеко не рядом и более того безусловный переход твой в goto всегда будет в условии если это не бесконечный цикл)

Так и аналогичный код с циклами будет в том же месте делать far jump с теми же последствиями, чего ты мне лапшу то на уши вешаешь?

Почитай как работает конвеер команд процессора и его стек пожалуйста....

Посмотри во что компилируется цикл

1

Я знаю во что он компилируется. Ты похоже вообще не читаешь что я пишу. Я тебе сказал про дальний джамп. Я буквально об этом сказал в самом первом посте. И в ответе тебе также сказал цитата:

а безусловный переход предсказывается вот только область кода которую надо заранее положить в конвеер может быть далеко не рядом и более того безусловный переход твой в goto всегда будет в условии если это не бесконечный цикл)

Так а чем это будет отличаться от цикла while? Скомпилируется в идентичный набор инструкций

Far jump просто сделает долгий джамп что что дальше по конвееру команд процессора. И мы уже не говорим о циклах

Непонятно, в чем состоит критика goto

Есть плохие языки. Язык это инструмент, созданный для решения определенных задач. Как отвертка. Хорошая отвертка сделана из высокопрочного сплава и ее передают из поколения в поколение, от деда внукам, а плохая сделана из незакаленного железа и деформируется еще до того как ей закрутят первую гайку. Так и плохие языки сделаны для того же, для чего и хорошие, но сделаны плохо: программы на них работают медленно, многие вещи вообще нельзя написать, в процессе развития между версиями 2 и 3 одного языка возникает полная несовместимость.

Telegram заблокировал канал RuTracker

За нарушение авторских прав.

Telegram заблокировал канал RuTracker
129129
3434
1616
55
44
22
22
11
11
11
11
11
реклама
разместить
Уральские разработчики представили Machine Mind — экшен-RTS о выживании после ядерной войны

Игрокам предстоит конструировать собственные боевые роверы и автоматизировать базы.

148148
1313
77
33
22
11
11
О, в закладки.
Джефф Грабб: Bluepoint и Bend узнали об отмене своих сервисных игр в тот же момент, когда об этом сообщил Bloomberg

Обе команды прямо сейчас решают, что делать дальше.

Джефф Грабб: Bluepoint и Bend узнали об отмене своих сервисных игр в тот же момент, когда об этом сообщил Bloomberg
150150
2525
1010
44
33
22
22
11
За Bluepoint сердце болит, я думал они там ремейк бладика уже доделывают
Появились первые распаковки GeForce RTX 5090 FE

Видеокарту сравнили с RTX 4090, консолями и небольшой собакой.

Появились первые распаковки GeForce RTX 5090 FE
3535
1010
44
22
11
Лучше распаковку собачки показали бы
NVIDIA о генерации кадров: «Мы посмотрим, что можно выжать из предыдущих поколений RTX»

Возможно, даже владельцы серии RTX 30 что-то получат.

NVIDIA о генерации кадров: «Мы посмотрим, что можно выжать из предыдущих поколений RTX»
9393
5858
1010
44
11
Мыло и дегенерацию в каждый дом!
Яша Хаддажи о цене Switch 2 в России: «Если бы продажи начались сегодня, то стоимость достигла бы 65 тысяч рублей»

Ритейлеры планируют запустить продажи консоли в стране вскоре после её выхода.

Яша Хаддажи о цене Switch 2 в России: «Если бы продажи начались сегодня, то стоимость достигла бы 65 тысяч рублей»
197197
2323
1212
1010
55
33
33
33
22
11
Достигла бы 65к, но мы накиним ещё столько же
Даниэль Вавра о содержании Kingdom Come: Deliverance II: «Нас никто ни к чему не принуждал»

Разработчик настаивает, что всё показанное соответствует времени и локации игры.

Даниэль Вавра о содержании Kingdom Come: Deliverance II: «Нас никто ни к чему не принуждал»
276276
117117
55
44
33
22
11
11
11
его игра шо хочет то и делает и человек еволюцинирует когда развивается и меняет мнение
[]