LINUX.ORG.RU

Дейкстра и стек

 


1

4

Почему Дейкстра был таким горячим поклонником стеково-ориентированных вычислений? Ведь это же отвратительно, если у нас нет GOTO, или, хотя-бы, его огрызка — RETURN, нам (машине) приходиться вычислять нафиг не нужные ветки. Что в этом хорошего то может быть?



Последнее исправление: ymn (всего исправлений: 1)

Он умный мужик, мы его ни когда не поймем.

Deleted
()

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

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

спутники падать начнут

Это не я.

Deleted
()
Ответ на: комментарий от Virtuos86

Он сам же и наплодил этих макак. Те кто не могли goto, просто не пришли бы в программирование, еслиб не он. Он, кстати, и сам его не умел, иначе бы не батхертил.

anonymous
()

приходиться

хачей вроде как русский язык учить заставили. прогуливаешь?

vvviperrr ★★★★★
()
Ответ на: комментарий от Virtuos86

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

Зато вояджеры до сих пор летают.

unfo ★★★★★
()
Ответ на: комментарий от tailgunner

Да, мне вот тоже как-то неуютно становиться, когда начинают обсуждать что-нибудь сложней хеловорда на паскале.

anonymous
()
Ответ на: комментарий от anonymous

Те кто не могли goto, просто не пришли бы в программирование

Любая макака может goto. Тогда могла, и сейчас может.

tailgunner ★★★★★
()
Ответ на: комментарий от Virtuos86

Есть мнение, что дело не(только) в говнокодерах.

anonymous
()
Ответ на: комментарий от tailgunner

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

anonymous
()
Ответ на: комментарий от vvviperrr

Просто ему на горох в самом деле неуютно становиться.

anonymous
()
Ответ на: комментарий от anonymous

В лиспах, например, call/cc вызывает наибольший попаболь

А, так для тебя goto и call/cc одно и то же... вопросов больше нет.

tailgunner ★★★★★
()

Это не у тебя было «Сигналы в Qt — тот же goto»?

anonymous
()
Ответ на: комментарий от tailgunner

А, так для тебя goto и call/cc одно и то же... вопросов больше нет.

Может ты осилишь пояснить разницу, раз ты такой умный?

anonymous
()
Ответ на: комментарий от avtoritetniy-expert

вычислять нафиг не нужные ветки

В нахождении дешевого обхода графа ты видел ненужные ветки?

И как ты определяешь, какая ветка нафиг нужная, а какая нет?

IvS
()
Ответ на: комментарий от IvS

Причем тут она?

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

avtoritetniy-expert
() автор топика
Ответ на: комментарий от avtoritetniy-expert

Стопэ. Под ветками ты что подразумаваешь?

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

IvS
()
Ответ на: комментарий от IvS

Если бы ты тут не лолкал, тебе бы объяснили, а ты ведешь себя как конченное ламерье, с надменной рожей, никто тебе ничего не должен, тем более с такой бычкой.

anonymous
()

О, я ведел программисток(Да, целый отдел программисток), которые мало того, что писали программы на C в одну строчку, так ещё там было такое количество goto, наверное в фортране такое количество не ставят.

anonymous
()
Ответ на: комментарий от IvS

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

Алло, ты сам то себя слышишь?

avtoritetniy-expert
() автор топика
Ответ на: комментарий от avtoritetniy-expert

RETURN предназначен для несколько других целей и не является огрызком GOTO, к тому же не обладает его недостатками, разве он был против RETURN?
Да и GOTO вполне может использоваться, ну не разумными людьми конечно, а компилятором, хотя чернорабочие могут это делать и вручную.

Tark ★★
()
Ответ на: комментарий от Tark

Слушай, мне не особо интересно ликбезом заниматься. Если ты пришел в тему, предполагается, что ты в теме, а твои комментарии где-то далеко. То, что ты пишешь — вообще ни о чем. Return — это частный случай гоуту.

avtoritetniy-expert
() автор топика

В эпоху убогости и херовости элементарной базы стековые машины позволяли очень и очень элегантные решения. Да и виртуальные стековые машины в свое время были откровением, т.к. позволяли выжимать 101% производительности из существующих железяк.

Сейчас это не так. В железе, намного проще совершенствовать технологический процесс уже существующих реализаций. В софте же, массовый отход в сторону SSA, не говоря уж про System F, MLTT, а в скором времени и HoTT.

Если брать стековые машины, то единственной относительно реальной аппаратной реализацией является GA144 компании Green Arrays, в том плане что её промышленную реализацию можно подержать в руках. Но, высокая цена, неясное будущее (в т.ч. по танпольным мотивам: абсолютно не ясно что именно может взбрести в голову американцам), мозгосъемная модель программирования, и высокая цена, перечеркивают все достоинства. Весьма и весьма впечатляющие.

Ну, и нужно помнить, что как только RISC убили стековые машины, они практически не развивались. Но, есть шанс, что когда-нибудь стековые машины достанут из темного угла как очередное «откровение».

Macil ★★★★★
()
Ответ на: комментарий от avtoritetniy-expert

Перечитал его письмо про GOTO, не нашел про RETURN. Конечно те кому Рабинович про его идеи напел, могут подумать, что когда Дейкстра говорил про единую точку входа и единую точку выхода он имел в виду что должна быть единая точка «откуда» происходит выход из функции, но ведь он говорил про то, что должна быть единая точка «куда» происходит выход из функции.
И нет ничего плохого, в том, чтобы убрать GOTO из языков высокого уровня, оставив его только в машинном коде, как говорил Дейкстра.

Tark ★★
()
Ответ на: комментарий от d_Artagnan

Тот факт, что ты предполагаешь, что найдется такой идиот, который навесит на подобный ник пафосность, а не стеб, говорит о том, что ты просто феерически дартаньянистая особь.

avtoritetniy-expert
() автор топика

внимательно прочитай рассужднения(ЕГО) про как определять координаты исполняемого процесса(в гоуто вредно вроде )

и учитывая , что он разработал http://en.wikipedia.org/wiki/THE_multiprogramming_system

и вырабатывал наряду с коллегами правильную дисциплину обращения с семмаформами - приведшую к Хоаровским и Бринч-Хансенсовсим вершинам мысли.

так, что утверждать , что Дейкстра был горячим поклоником стеко-ориентированных вычислений некоторое преувеличение.

qulinxao ★★☆
()
Ответ на: комментарий от Tark

return который в нормальных языках да

Напиши пример, на простом псевдокоде, что ты считаешь «нормальным» return? Ты считаешь, что «нормальный» ретурн это инструкция, которая предписывает вернуть значение, но не та, которая позволяет выйти из произвольного места и сбросить остаток вычислений?

avtoritetniy-expert
() автор топика
Ответ на: комментарий от qulinxao

Хоаровским и Бринч-Хансенсовсим вершинам мысли.

Это те, которые обосрались в свете Ъ (Хьюитовской) теории? До такой степени, ЕМНИП, первому, вообще пришлось всю теорию пересмотреть и переписать в нондетерменистскую версию, насчет второго не в курсе, мож до сих пор топчется.

avtoritetniy-expert
() автор топика
Ответ на: комментарий от qulinxao

Да и вообще, какие проблемы то они решили, по большому счету?

Эдсгер Дейкстра разработал семафоры, а позднее, в период между 1971 и 1973 годах, Чарльз Хоар и Пер Хансен для решения проблемы мьютексов разработали мониторы.Однако, ни одно из этих решений не создавало в языках программирования конструкций, которые бы инкапсулировали доступ к совместным ресурсам.

avtoritetniy-expert
() автор топика

Легко реализуется компилятор. Легко реализуется интерпретатор. Судя по тому, что JVM работает отлично, возможно реализовать эффективную трансляцию на регистровую архитектуру.

Legioner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.