Учебное пособие по языку ФОРТ
- Автор: ИТФ «Технофорт»
- Жанр: Современные российские издания / Литература ХX века (эпоха Социальных революций) / Программирование: прочее / Forth
- Дата выхода: 1993
Читать книгу "Учебное пособие по языку ФОРТ"
15. Стек возвратов
Кроме арифметического стека в системе используется еще один стек, называемый СТЕКОМ ВОЗВРАТОВ. В основном в нем хранятся указатели, используемые Форт-системой при обработке вложенных структур.
Стек возвратов тоже организован по принципу LIFO. Пользователь может временно хранить в нем свою информацию, но с учетом следующего. Данные, внесенные в стек возвратов, надо выбрать из него прежде, чем закончится соответствующее определение. Опасно передавать на этом стеке параметры от одного слова к другому.
Работать со стеком возвратов можно с помощью слов:
>R ... a --> ... | ... --> ... a
число а снимается со стека и кладется в стек возвратов (справа от черты),
R> ... --> ... a | ... a --> ...
число а снимается со стека возвратов и кладется в арифметический стек,
R@ ... --> ... a | ... a --> ... a
число a c вершины стека возвратов копируется в арифметический стек
Пример. Описание слова "3DUP"
: 3DUP ( a b c --> a b c a b c )
>R 2DUP R@ -ROT R> ;
Еще одно предупреждение. При использовании операций со стеком возвратов внутри перечислительного цикла слова "I" и "J" могут выдавать неправильные значения, если эти операции не сбалансированы. Это происходит потому, что на стеке возвратов хранятся текущие и граничные значения параметров цикла. Слово "I" просто снимает нужное значение co стека возвратов в соответствии с выбранным в реализации форматом.