Язык программирования Форт


Глава 14. Память Форта. Словари и контекстные словари - часть 20


Порядок просмотра словаря

1 В оригинале не класс, a school в значениях школа и косяк рыбы.- Прим. перев.

задается при компиляции слова. Когда с помощью слова VOCABULARY создан новый контекстный словарь (пусть он имеет имя STATISTICS), в поле параметров слова STATISTICS зарезервировано место для адреса слова, описанного в контекстном словаре STATISTICS последним. Каждый раз, когда добавляется новое слово, адрес предшествующего заносится в поле связи слова, а адрес нового слова укладывается в STATISTICS для использования при описании следующих слов. Когда просмотр достигает конца контекстного словаря, начинается просмотр сверху вниз словаря (FORTH или какого-то другого), в котором был описан предшествующий.

Мы описали два способа работы с контекстными словарями (связь только с FORTH или друг с другом и с FORTH), и в обоих случаях мы предполагаем, что в словаре существует только один ПУТЬ ПОИСКА. Пути поиска - это пути от конца словаря к его началу согласно указателям в ячейках связи слов, входящих в контекстный словарь. Используя более чем один путь поиска, можно заметно сократить время компиляции исходного текста программы. Заметьте, то, что мы называем путем поиска, другие называют "нитью". Мы избегаем слова "нить" в этом контексте, чтобы не путать путь поиска с цепочкой программ в машинных кодах, которая работает при исполнении скомпилированных слов и также называется "нитью" ("thread").

MMSFORTH предоставляет пример того, как можно использовать несколько путей поиска. Мы видели, что MMSFORTH запоминает слова в словаре, используя закодированные имена, чтобы различать слова со сходными именами. Если длина хэш-кода задана (0 - 31 в MMSFORTH), он может быть использован для управления поиском в словаре. В этом случае каждое имя контекстного словаря (например, ASSEMBLER или FORTH) вместо того, чтобы иметь один указатель на слово, описанное последним, имеет 32 таких указателя, по одному на каждый путь поиска. Когда слово компилируется, его хэш-код определяет, с каким из путей просмотра контекстного словаря его связать и где будет запомнен его адрес (в качестве будущего объекта связи для последующих слов того же маршрута поиска).




Начало  Назад  Вперед