Приложение B. Базовый словарь FORTH
==209
Язык FORTH базируется на расширяемом интерактивном компиляторе, который создаёт код для виртуальной стековой машины с двумя стеками. Стек данных ( Data Stack ) используется для вычисления выражений и передачи аргументов. Стек возврата ( Return Stack ) хранит адреса возврата из процедур и счётчики программных циклов. Исходный текст на FORTH прямо отражает архитектуру виртуальной стековой машины и поэтому при описании выполняемых операций использует обратную польскую нотацию ( RPN ).
FORTH основывается на коллекции подпрограмм, называемых в терминологии FORTH «словами». Программа в FORTH состоит из единственного слова, которое вызывает несколько других и т.д., выстраивая структуру в форме дерева. На самом низком уровне листья дерева являются вызовом базовых слов FORTH, которые работают со стеком и выполняют арифметические действия.
Ниже даётся список базовых слов FORTH, которые можно найти в списках команд вычислительных машин, описанных в книге. Большая их часть является неотъемлемой частью любой программы для стековой машины, независимо от использованного языка ( например, сложить два верхних элемента стека или поменять их местами ). Словарь FORTH используется для сохранения преемственности с существующими стандартными словарями элементарных операций.
Каждое слово FORTH сопровождается «описанием стека» в той же строке. Схема показывает входные и выходные параметры стека данных для описываемого слова. Значения слева от «→» соответствуют входным параметрам, а справа - выходным. Список ориентирован так, чтобы самым правым элементом был самый верхний элемент стека. При обозначении элементов стека используются следующие обозначения. N1, N2.. - целые числа одинарной точности [* занимающие в стеке один элемент ] . D1, D2.. - целые числа двойной точности, которые занимают два элемента стека. ADDR обозначает адрес, который можно трактовать как указатель. FLAG - целое число, обозначающее «ЛОЖЬ» нулём, а «ИСТИНУ» - любым ненулевым значением. Более подробное описание словаря FORTH можно найти в книге Haydon, «All About Forth» ( 1983 ).
Табл. B.1 Базовый словарь FORTH
==209