I seem to be innocent...
Немножко не про математику.. Скорее общеобразовательное про компьютер. Изначально было в форме диалога, поэтому длинно. Переделывать не стала, т.к. мне кажется, что так все воспринимается лучше.



Стеки

Комментарии
26.04.2007 в 13:01

Коррекция детской лопоухости
интересно но ничерта не понятно про что:-D
26.04.2007 в 13:21

I seem to be innocent...
chebur12

даа? =( вот жалко-то... Наверное, все-таки программирование немножко надо знать =(
26.04.2007 в 14:03

Коррекция детской лопоухости
Minority угу... тут слэнга много... может составишь словарик... если время есть.....?
26.04.2007 в 14:21

I seem to be innocent...
chebur12

ой.. сейчас нету. скорее сил, а не времени. но попробую заняться. хотя было бы проще, если бы мне составили список того, что надо объяснить :alles:
27.04.2007 в 21:36

Позитивнее, позитивнее...
В целом — Ваше понимание чувствуется, разъяснительную работу провели — дай бог каждому, алгоритмы знаете — очень приятно видеть, но не будь я программистом — ничего бы не понял, наверное)



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



При запуске программы параметры не записываются в стек системы. По крайней мере, в системах Windows и Unix. Там вообще нет понятия стека системы. Есть стек процессора (машинный стек). Но если речь о Форт-машинах — то там действительно так, и я проникаюсь к Вам глубоким уважением. Серьезно.



Про то, что компьютер знает только обратную польскую запись, тоже не очень хорошо. Это верно только опять-таки только для Форт-машин, а обычные двухадресные машины (представителем которых является и семейство Intel x86) производят арифметические операции как раз без стека. Стек может понадобиться только для разбора арифметического выражения при трансляции с языков высокого уровня.



Про баланс скобок — хороший пример.

Про ПОЛИЗ — хорошо, но сложно, неподготовленному будет очень тяжело понять.

Применение стека в рекурсии — тоже хороший пример, но его по-настоящему осознают только те, кто понимает реализацию локальных данных и параметров процедур на уровне ассемблера.

Про стек для хранения точек возврата — хорошо и наглядно даже для изучающего программирование первый год, а главное — тут действительно видно, каким образом стек приносит пользу)



Свои пять копеек: стеки нужны там, где присутствует вложенность. И неважно, вложенность скобок или вызовов функций. Именно во вложенности — природа стека.



P.S. Да, и что такое "линейный список, отображенный в векторную память"? Дейкстра нервно курит?) Вам неопытный товарищ вопрос задал, а Вы его такими словами приложили... )
28.04.2007 в 09:43

I seem to be innocent...
Disprein

Ну наверное, сказалось еще то, что человек тоже не совсем уж был несведующим в программировании... :shy:



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

а нас учат, что вот эта самая описанная Вами структура называется магазином...



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

ну вот об этой трансляции я и говорила... А вообще-то, понятное дело, что все происходит несколько иначе. Но для этого мне бы пришлось отойти от нашей темы + вспоминать СПТ и СФТ, которые я могу посчитать только с поддержкой учебников..



P.S. Да, и что такое "линейный список, отображенный в векторную память"? Дейкстра нервно курит?) Вам неопытный товарищ вопрос задал, а Вы его такими словами приложили... )

А выдала на автомате. Это уже потом я поняла, что перебор вышел. Но все равно основу-то он понял: по какому правилу с ним работать.
28.04.2007 в 09:53

Позитивнее, позитивнее...
Minority, о, как давно я не слышал термина "магазин"...) Правильно, в СССР был магазин, а за рубежом — stack, и означали они одно и то же. Но мне казалось, что в терминологии стеки полностью вытеснили магазины... Оказывается, нет, советская информатика продолжает жить)
28.04.2007 в 10:07

I seem to be innocent...
Disprein

Теперь мы друг друга поняли? =)
28.04.2007 в 11:29

Позитивнее, позитивнее...
Вполне)
28.04.2007 в 15:41

Коррекция детской лопоухости
иномирье:-D
05.05.2007 в 22:23

На плечах гигантов, на спинах электронов
Minority, Disprein позвольте пару слов вставить динозавру от программирования )))



Что такое Форт-машины? Мне очень-очень интересно! На заре юности я ходила в КРУЖОК по Форту. Там мы и учили всё, так славно описанное Minority )))



А после этого что-то ни разу мне с этим сталкиваться не довелось...

Спасибо! Здорово! )))



Термин "магазин" вроде больше похож на термин "очередь" чем на "стек"? Нет? То есть я была еще в СССР, когда у нас были стеки и очереди. А вот очереди и магазины, что-то плохо представляю )))



05.05.2007 в 22:40

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

Вообще я слышал, что Форт-процессоры применяли в каких-то портативных устройствах, но сейчас, мне кажется, эта ветвь развития вычислительной техники окончательно свернулась.



"Магазин" имеется в виду оружейный.) В смысле, не тот, в котором оружие продают, а тот, который вставляют в автомат. Патроны в магазин вставляют сверху, и первым в ствол попадает тот патрон, который лежал в магазине на самом верху. То есть тот же стек.



В СССР все хотели сделать свое, и терминологию тоже. Поэтому и языки программирования были с русскими ключевыми словами, и стеки назывались магазинами (назвать stack стопкой не позволяли особенности русского менталитета), и компьютеры — ЭВМ, и мышь — графическим манипулятором, и плоттер — графопостроителем.

Это потом уже стало понятно, что отставание безнадежно, и все иноземные слова хлынули к нам. Ну да что я Вам рассказываю)
06.05.2007 в 19:47

На плечах гигантов, на спинах электронов
Disprein )))) Спасибо за ликбез )))

Про Форт-машины я оказывается кое-что знаю )))))) Только что-то название не отложилось в памяти ))))

"Магазин" вчера так и подумала про оружейный, но уже потом )))))

А насчет стека — мои учителя говорили, что метафора тут не "стопочная");)) Они утверждали, что это нечто типа полой трубки (трости, стека), в которую что-то кладут, а потом вытаскивают.

Первым-пришел-последним-ушел.



А насчет программирования на Форте — с огромной ностальгией вспоминаю то время! ))))

Вот уж где мозги сворачивались, и потом уж никак не разворачивались ))))