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


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


Все версии Форта должны иметь блочные буферы, программы в машинных кодах, словарь, свободную память, а также стек параметров и стек возвратов; они составляют основу конструкции языка. Но стандарты определяют только способ поведения Форта, а не то, как это поведение реализуется. Таким образом реализации отличаются. Многозадачные и многопользовательские системы будут особенно различными, и мы не будем здесь их обсуждать. Несмотря на это, последующее обсуждение карты для MMSFORTH применимо к большинству других версий Форта, даже если конкретные адреса памяти и будут отличаться.

В MMSFORTH область младших адресов памяти содержит два блочных буфера, сразу за ними размещен текстовый входной буфер. Многие версии имеют блочные буферы в верхней части памяти. Эти адреса вы можете найти с помощью слов BLOCK и TIB. Вслед за входным буфером, но до словаря, лежит область системных величин и программ в машинных кодах, которые имеют отношение к функциям примитивов языка. Сюда относятся данные о числе и типах дисковых драйверов, значения по умолчанию и текущие значения системных переменных, таких как указатель стека возвратов, а также программы в машинных кодах, используемые всеми словами Форта. Значения переменных пользователя (такие как BASE, STATE и BLK) также запоминаются в массиве перед словарем, указания на их адреса обеспечиваются соответствующими словами. Это позволяет установить все переменные пользователя (например, при инициализации системы) простой засылкой таблицы в память.

Первым словом словаря является FORTH, которое представляет собой действительное имя контекстного словаря Форта (об этом подробнее в следующей главе). Словарь, конечно, включает в себя все слова Форта и их откомпилированные описания. Младшая часть словаря в MMSFORTH имеет предкомпилированную форму, загружается непосредственно с системного диска и не может быть легко изменена пользователем. Эта младшая часть состоит из описаний системных слов и собственных программ, что отличает MMSFORTH от других версий.


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