Учебное пособие по языку ФОРТ

ИТФ «Технофорт»
100
10
(1 голос)
0 0

Аннотация: Язык программирования Форт (от английского FORTH) был изобретен Чарльзом Муром в 70-x годах для создания программного обеспечения управляющих устройств. В настоящее время Форт широко используется при решении следующих задач:

Книга добавлена:
23-10-2022, 00:43
0
320
21
Учебное пособие по языку ФОРТ

Читать книгу "Учебное пособие по языку ФОРТ"



17. Слова-генераторы

В отличие от других языков Форт позволяет программисту создавать собственные определяющие слова. Это дает возможность создавать семейства слов с похожими свойствами. Одинаковые признаки задаются не в каждом члене, а в самом определяющем слове. Благодаря этому сокращается текст программ, они легче читаются и модифицируются. При умелом использовании таких конструкций эффект может быть очень значительным. Определяющие слова будем также называть словами-генераторами или мета-определяющими словами. С помощью собственных генераторов можно образовывать новые структуры данных, например, многомерные массивы.

Слова-генераторы описываются с помощью слов "CREATE" и "DOES>" в конструкции

: имя-генератора CREATE <часть-create>

DOES> <часть-does> ;

и употребляются в конструкции

имя-генератора имя (*)

для определения слова "имя".

Слово "CREATE" в определении генератора указывает начало действий, выполняемых в период компиляции будущего определяемого слова; слово "DOES>" — начало действий во время исполнения этого нового слова.

При выполнении конструкции (*) слово "CREATE" создает в кодофайле словарную статью для слова "имя", но при этом память под поле параметров не выделяется. После этого исполняется текст <часть-create>, который может создать поле параметров определяемого слова. B дальнейшем при исполнении слова "имя" на стек кладется адрес его поля параметров и выполняется текст <часть-does>.

Например, генератор для определения констант выглядит так:

: CONSTANT CREATE , ( слово "," резервирует 2 байта )

( и кладет в них число из стека )

DOES> ( на стеке адрес этих двух байтов )

@ ; ( значение помещается в стек )

B качестве упражнения разберите устройство генератора одномерных массивов. Слово "ARRAY" берет из стека целое число n и резервирует в кодофайле место для n чисел, связывая с ними следующее за "ARRAY" слово как имя этого массива. В дальнейшем при выполнении имени массива из стека берется индекс, проверяется его принадлежность диапазону от 1 до n и, если все в порядке, в стек помещается адрес соответствующего элемента массива.

: ARRAY ( в стеке лежит число элементов )

CREATE DUP , ( это число помещается в поле параметров )

2* ALLOT ( захват места для массива )

DOES> ( при вызове в стеке лежит индекс )

( и помещается адрес захваченной памяти )

OVER 1 <

IF ." ИНДЕКС МЕНЬШЕ 1" 2DROP

ELSE 2DUP @ > IF ." ИНДЕКС БОЛЬШЕ ЧЕМ НАДО" 2DROP

ELSE 1+ SWAP 2* + THEN THEN ;


Скачать книгу "Учебное пособие по языку ФОРТ" - ИТФ «Технофорт» бесплатно


100
10
Оцени книгу:
0 0
Комментарии
Минимальная длина комментария - 7 знаков.
Книжка.орг » Современные российские издания » Учебное пособие по языку ФОРТ
Внимание