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



         

Глава 6. Хранение чисел в памяти - часть 24


Может оказаться очень удобным дополнительный стек. Создайте массив из 160 элементов с именем NEWSTACK, который вел бы себя как дополнительный стек. Теперь определите переменную STACKPOS (положение в стеке) для расчета текущего положения указателя стека, т.е. адреса вершины стека. Инициализируйте переменную в STACKPOS, чтобы она указывала на первый элемент в NEWSTACK. Затем определите два слова: XPUSH и ХРОР ; XPUSH (послать в стек) должно брать число из обычного стека и засылать его в NEWSTACK, изменяя соответственно указатель. Слово ХРОР должно изымать число из стека NEWSTACK и помещать его в обычный стек, вновь изменяя указатель. Модифицируйте слова XPUSH и ХРОР, назвав их PUSH и POP, используя слова МАХ и MIN так, чтобы указатель не мог выйти за границы массива стека. 7. Определите слова NEWDROP, NEWDUP и NEWSWAP, которые делали бы то же самое, что и слова DROP. DUP и SWAP в обычном стеке.

О разном

Кроме переменных, создаваемых программистом, имеются различные переменные в самой Форт-системе, например BASE (основание системы счисления). Исторически переменные, которые являются частью самого языка Форт, называются переменными пользователя, поскольку в многопользовательской системе каждый пользователь может иметь свой собственный набор этих переменных, Мы понимаем, что это не совсем удачное название, поскольку в большинстве языков программирования переменная пользователя определяется им самим, а переменные, являющиеся частью самой системы, например константа число п (3.1415...), называются системными переменными. Тем не менее, следуя терминологии Форта, мы будем называть переменные, входящие в Форт-систему, пользовательскими переменными. На самом деле пользовательские переменные это совсем не то же самое, что переменные, которые определяет пользователь. Переменные, которые вы определяете, в качестве части своего определения могут включать число. Переменная пользователя содержит число, которое может храниться в какой-либо.удаленной от определения ячейке, и на практике не нужно беспокоиться о том, где хранится эта переменная, потому что она ведет себя точно так же, как и переменные, определенные программистом.


Содержание  Назад  Вперед