Загрузка...

Система программирования FORTH


FORTH является стеково-ориентированной системой. В стеке могут находиться объекты, то есть каждую ячейку стека занимает объект, в более сложных случаях указатель на объект. Имеется входной поток, откуда черпаются данные. Входной поток по модели магазинного автомата является входной очередью. Во входном потоке расположены слова (лексемы языка), то есть входной поток является последовательностью слов.

Эта система является контекстной системой программирования, когда слово воспринимается не абсолютно, а в зависимости от контекста, т.е. в зависимости от объектов, которые находятся в настоящий момент на вершине стека. Чтобы слово можно было интерпретировать, имеется словарь слов. Структура словаря следующая: каждое слово определено не абсолютно, а относительно, поэтому имеется поле, которое называется контекст, что, означает, что это слово используется в этом контексте, и одно и тоже слово может иметь несколько словарных статей с разными контекстами. Входное слово ищется в словаре, причем учитывается текущий контекст компилятора (например, сложение целых и вещественных чисел). Помимо этого, надо определить, какие объекты вместо указанных (эти удаляются) появятся на вершине стека, поэтому каждое слово определяет еще и типы результатов. В режиме компиляции никакой работы с объектами не ведется, а ведется только с типами и стек фактически представляет собой ячейки, где записаны идентификаторы типов. Понятно, что каждое слово, встретившееся в программе, обозначает еще некоторые действия в заданном контексте, поэтому каждое слово имеет код, то есть те действия, которые выполняются над стеком, содержащем операнды, чтобы получить требуемый результат. И вот в момент компиляции в текущую ячейку кода заносится вызов этой функции (кода), который находится в словаре. В свою очередь этот код при компиляции является кодом другого слова, которое компилируется, т.е. как такого кода нет. Код и данные перемешаны. Все находится в словарях, т.е. кода отдельно от описателя кода не существует, поэтому там нет семантического разрыва между типами данных в языках высокого уровня, там все структурировано.

Рассмотрим архитектуру форт процессора на примере К1865 (94г)

Технология: КМОП, БИС.

Временные характеристики: тактовая частота 0-4МГц,

цикл внешнего интерфейса процессора 250нс,

одно и двухтактное выполнение команд,

время реакции на прерывание 250нс,

параллельное выполнение нескольких команд.

Загрузка...