The Floppotron: Smells Like Nerd Spirit,Science & Technology,floppotron,floppy,music,nirvana,electronics,microcontroller,programming,embedded,Nirvana cover by computer hardware orchestra.
Which song would you like to hear next?
More info: http://silent.org.pl/home/2016/07/06/return-of-the-floppies/
такие программы умеют только отвечать на вопросы (потенциально очень сложные) и кто-то снаружи должен их использовать, в стиле: «скажи, а что мне делать в ответ на такую ситуацию»? получается, что можно эту сторону, которая совет спрашивает и реально что-то делает, сделать очень простой, и сосредоточиться на основной программе, в которой нет переменных. подход называется «функциональный язык программирования».
не знаю, так ли это на самом деле, это я из головы придумал, ну а как еще с другой стороны это может быть?
fOr i tO X
А вообще goto не_нужен. Кроме, может быть, низкоуровневых оптимизаций - за них мне сказать нечего.
Потому что, по сути, он решает следующие задачи.
Переход в предыдущее место кода(решается циклами и рекурсией)
Переход в определенное место кода по условию(решается if и switch)
Выход из цикла до его завершения, либо прерывание итерации цикла (решается break, continue и return)
Иными словами, есть средства, которые делают то же самое и при этом не превращают код в спагетти.
int
funcname(int arg)
{
... {
error=EIO; goto bailout;
}
...
return 0;
bailout:
free(res1);
free(res2);
free(res3);
return (error);
}
В языке C нет деструкторов как в C++.
ни один инженер не будет делать изделие из говна и палок просто потому, что может.
всегда было интересно, откуда среди программистов берутся такие припадальщики к корням?
да, добавляется сахар. так он и в плюсы добавляется, только мееедленно, и с учетом совместимости с кучей херни, которая там накопилась за десятилетия.
шаблоны C++ ты ваще зря приводишь в пример. это эталонный пример говна, которое стали юзать не так, как задумывалось, тормозное, и хуёво дебажимое.
С добрым утром!
и что характерно, на под разное железо нужны разные оптимизации, что объем работ увеличивает кратно.
а смысл?
если рост на 100% это 25 миллисекунд вместо 50, то и ебать ее в рот, на ближайщем мутексе дольше простоим
ну и я не понял, это FreeBSD что ли на 40 лет устаревшая технология? Те же никсы, что и в куче осей, чо во фре такого уж устаревшего?
C - да, безусловно, но в куче софта вопрос легаси перекрывает любые другие резоны, в том числе, зачастую, и здравый смысл.
Можно подумать, есть какой-то сахар, который нельзя использовать тормозно и неотлаживаемо.
используй сахар, сделаешь хорошо тем, кто за тобой говнокод разгребать будет.
не бывает так
а теперь вопрос взрывающий пуканы, чем отличается GOTO поставленный компилятором, от GOTO поставленного человеком?
и да, шутка тоже от дауна, на второй картинке должны сидеть регистры, так как во всех языках програмирования глобальные переменные сидят в той же области памяти что и локальные, а ограничения на адресацию создаются компилятором, при большом желании и куче свободного времени можно бегать по стеку и читать локалки левых процедур.
И не надо кукарекать про частные случаи. Использование goto _может_быть_ оправдано в единичных случаях, но _обычно_ он используется где не надо, когда не надо, и что самое главное - как не надо.
Ломающая всё программа выглядит как-то так, но могу соврать:
if(isOk) goto a:
for x in xs {
a: print x
}
И это простейший случай, с ворохом continuations, coroutines и closures всё становится ещё хуже
Тем, что кода читают до, а не после компиляции. Ты ещё скажи, что в ассемблере всегда jmp используется, значит и goto можно.
Существуют такие понятия, как читаемость кода, проектирование ПО, расширяемость и поддерживаемость ПО, методологии разработки. И всё это летит к хуям, когда какой-нибудь даун начинает его использовать.
Нет, конечно, когда ты пишешь что-то один и для себя, тебе никто не может запретить его использовать. Нравится обмазываться говном? Пожалуйста! Читать и модифицировать это всё равно тебе.
Тем не менее, компилятор проделывает все возможные оптимизации.
Если программист сам напихает GoTo, то компилятор просто не сможет выполнить какие-то оптимизации.
Так как код будет спагетти.
Да еще и отлаживать код, который напичкан GoTo, то еще удовольствие.
GoTo можно лишь использовать для эмуляции недостающего функционала. Вот, например, в VBA нету break и continue и приходится писать GoTo, что бы выпрыгнуть из цикла.
В Си GoTo могли использоваться, что бы прыгать в обработчики ошибок.
http://govnokod.ru/search?search=goto&page=1