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



         

Реализация определяющих слов


Механизм определяющих слов составляет одно из основных достоинств языка Форт, главную «находку» его создателей. С его помощью программист может вводить свои типы данных и структуры управления, задавая их внешнее синтаксическое оформление и внутреннюю семантическую реализацию. Исходный строительный материал программист может брать из сравнительно небольшого исходного запаса слов-команд языка или создавать сам.

Широкие выразительные возможности и вместе с тем компактность реализации этого механизма вытекают из того, что в его основе лежит фундаментальный принцип частичной параметризации. Его применению в традиционных языках программирования мешал громоздкий аппарат процедурного вызова, который считался в этих языках элементарным и неделимым действием. В языке Форт конструкция вызова разложена на отдельные составляющие и доступна «по частям», в частности имеется доступ к адресу возврата и всему динамическому контексту вызова.

В сочетании с единым механизмом передачи параметров через стек и компактной реализацией через шитый код это дает недостижимый для других языков уровень свертки понятий.

Рис. 2.8. Структура статьи определяющих и определяемых слов

На рис. 2.8 приведена структура словарных статей, возникающая после обработки определений

: CONST CREATE , DOES> @ ; 4 CONST ХОР 5 CONST ОТЛ

Там же показана словарная статья для слова :, в теле которой находится точка CALL адресного интерпретатора.

Поле кода статьи CONST содержит адрес точки CALL, а поле параметров содержит последовательность ссылок на словарные статьи, скомпилированную адресным интерпретатором в соответствии с техникой шитого кода. Слово DOES>, входящее в это определение, имеет признак немедленного исполнения, поэтому оно не компилируется вслед за ссылкой на статью для запятой, а исполняется. Его исполнение состоит в компиляции ссылки на статью вспомогательного слова (;CODE) и компиляции машинной команды JSR перехода с возвратом на специальную точку DOES в ядре форт-системы.


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