Курсовая работа: Особенности языка Форт
VARIABLEN
!
Это фрагмент дублирует значение N лежащее на стёке, следующая команда (Variable) резервирует в необходимое количество ячеек памяти и старший адрес зарезервированной области кладёт на стёк. Восклицательный знак снимает два значения со стека (адрес и значение N) и значение пересылает по адресу. Если теперь нам необходимо получить значение переменной N мы должны выполнить следующее:
N @
N - теперь воспринимается как команда языка Форт с её выполнением на стек ложится значение адреса памяти по которому хранится значение переменной. Знак собачки снимает со стека значение адреса, затем пересылает значение, взятое по этому адресу, на вершину стека и теперь мы можем выполнить команду ROLL. Она снимет со стека значение N и осуществит требуемый сдвиг массива.
И осталось завершить циклы
LOOP
LOOP
Если есть потребность просмотреть массив, необходимо вывести все элементы стека на экран циклическим повторением команды точка.
N @ (кладем на стек количество элементов массива)
1 (Кладем на стёк начальное значение параметра цикла)
DO (Снимаем со стека параметры цикла и начинаем работу)
. (Снимаем очередной элемент стека)
LOOP (Переходим к новому шагу цикла)
Запишем полученную программу целиком
(Создание переменной)
DUP
VARIABLEN
!
(Создание необходимой структуры данных для организации циклов)
DUP
1
SWAP
1
(Обработка массива)
DO
DO
2DUP
>