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


Глава 11. Создание слов-определителей - часть 4


Но это не так уж просто. Определение слова : в ядре языка выглядит так, как будто оно само определено через двоеточие, но это, очевидно, абсурд. Еще более странно то, что слова, которые, казалось бы, определены через :, находятся в словаре раньше, чем само :. Как разрешить проблему первичности курицы и яйца?

Конечно, ядро Форта было создано без использования языка Форт (по крайней мере, в обычном смысле), хотя оно выглядит так, как будто бы,с использованием. Ядро должно было быть написано на другом языке - либо на ассемблере, либо на языке высокого уровня. В этом все дело. Практически можно написать Форт-систему, используя другую Форт-систему. Создание нового Форта с использованием Форта производится программой, которая называется метакомпилятором, и о нем уместно сказать несколько слов.

Метакомпиляция - это разновидность обычной компиляции Форта (т.е. процесса добавления новых слов в словарь). Но вместо того, чтобы строить словарь, начиная с адреса, на который указывает слово HERE, "метасловарь" размещается в некотором другом месте памяти. В памяти создается "образ" всего кода, который потребуется новому Форту; этот код затем выгружается на диск таким образом, чтобы его можно было запустить на исполнение с помощью операционной системы компьютера. Метакомпиляция может породить копию Форта или новый Форт, специализированный для определенных задач, даже для выполнения на ЭВМ другого типа. Независимо от того, был ли Форт создан на языке ассемблера, метакомпилятора или другом языке высокого уровня, кажущийся парадокс появления в словаре слов, определенных через двоеточие, раньше определения двоеточия, объясняется тем, что при создании самого ядра использовался совершенно другой способ, отличающийся от добавления к словарю новых слов. Теперь мы выяснили, как в Форте создаются определяющие слова и "обычные" слова, входящие в ядро Форт-системы. Ну а может ли пользователь создать новые определяющие слова и как?

Ответом на этот вопрос является слово CREATE, которое может использоваться самостоятельно или совместно с другим словом DOES>.


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