Язык Форт и его реализации



         

Реализация определяющих слов - часть 3


Слово : тоже является определяющим, и его словарная статья имеет такую же структуру. Рассмотрим его работу на примере трансляции определения CONST.

Создающая часть слова : состоит из слов CREATE и ]. Первое выбирает из входной строки следующее за двоеточием слово (в данном случае CONST) и создает для него начало словарной статьи (заголовок и поле кода), а второе переключает текстовый интерпретатор в состояние компиляции. Последнее в создающей части слово (;CODE) вписывает в поле кода создаваемой новой статьи текущее значение указателя интерпретации, т.е. адрес точки CALL, которая располагается в теле данного определения, после чего исполнение двоеточия заканчивается. Поскольку теперь интерпретатор находится в состоянии компиляции, то следующие вводимые слова будут компилироваться, заполняя поле параметров статьи CONST последовательностью ссылок. Так будет продолжаться до тех пор, пока слово — точка с запятой, отмечающее конец определения и имеющее признак немедленного исполнения, не переключит интерпретатор обратно в состояние исполнения:

: ; ( ---> ) COMPILE EXIT [COMPILE] [ ; IMMEDIATE

Определяющие слова являются механизмом для создания классов слов со сходным «поведением», которое определяется исполняющей частью и включается в словарную статью слова через поле кода. Разница между словами внутри одного класса состоит в значении поля параметров, которое строится при определении слова. Слова, определенные через двоеточие, составляют один из классов наряду с константами, переменными, списками слов и другими, которые программист может вводить по своему усмотрению. При этом достигается существенная экономия памяти за счет того, что общая часть всех слов одного класса присутствует в памяти в единственном экземпляре в статье определяющего слова.

Таким образом, в основе языка Форт лежат две структуры: внешняя — простейшая синтаксическая структура слова, представленного как последовательность литер, ограниченная пробелом, и внутренняя — структура словарной статьи, в которой поле кода задает интерпретатор поля параметров.Одним из частных случаев такого интерпретатора является адресный интерпретатор, и тогда поле параметров содержит последовательность интерпретируемых адресов в шитом коде. Этому случаю отвечает определение через двоеточие. Другие определяющие слова задают другие интерпретаторы и соответственно другие структуры поля параметров.




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