Язык программирования Форт

         

Что такое стек ?


Можно представить стек попросту как стопку чисел, положенных друг на друга, либо, если хотите, как колоду карт, описанную в . Первое число, которое было введено в стек, будет находиться на дне, последнее введенное число -- на вершине стека. Числа из стека можно брать только с вершины. В тексте мы будем показывать стек в виде столбика чисел, положенного горизонтально, т.е. в строчку, причем дно стека находится слева, а его вершина -- справа. Загрузите в компьютер Форт и введите

1 2 3

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

Теперь в стеке находятся числа

З (вершина ) 2 1 (дно)

аналогия с картами представлена на . Можно представить этот стек таким образом:


рис. 2.1

Теперь, если ввести

. . .

компьютер выдаст на экран

3 2 1 ok

Первым из стека было взято и напечатано число 3, затем то же самое было сделано с числом 2, а потом с числом 1. Теперь стек пуст. Обратите внимание, что числа на экране расположены в обратном порядке по сравнению с тем, как они представлены в стеке. Вы поняли, почему ? Стек языка Форт называется стеком с организацией "последним пришел -- первым вышел" (по-английски - LIFO). Когда стек пуст, попробуйте ввести еще раз . (точка).

Тогда вы увидите

хххх . ? Stack empty ! (стек пуст !)

Форт отреагировал сообщением об ошибке; вы попросили его что-то напечатать, а он не знает, что напечатать (ххххх обычно бессмысленное число, а вид сообщения зависит от версии Форта, с которой вы работаете, мы, привели сообщение, которое выдает MMSFORTH). Обратите внимание, что Форт не выдает сообщение "ok", потому что выполнение вашей последней команды не было завершено (а значит, не все в порядке).

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

Фактически Форт готов к вводу новой информации, даже если он не дал сообщение "ok".



Содержание раздела