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


Глава 10. Хранение программ и данных - часть 4


Во многих версиях Форта есть слово INDEX, которое показывает первые строки последовательности экранов (индексные строки, в которые обычно записывают пояснения о назначении экранов). В некоторых системах перед словом INDEX должны быть указаны число просматриваемых экранов и номер начального экрана (так сделано в MMSFORTH), в других - номера начального и конечного экранов. Таким образом, в зависимости от версии 20 6 INDEX или 20 25 INDEX покажут первые строки блоков 21, 22, 23, 24 и 25.

Загрузка блоков словом LOAD так же проста, как и вывод блоков. Если в блоке содержится текст, который может быть введен с клавиатуры, то этот же текст может быть введен и из блока. Текст будет интерпретироваться точно так же, как если бы он был введен вручную. Так, если блок содержит определения слов или текст, который должен быть сразу исполнен, то 25 LOAD введет текст. Очевидно, слово LOAD можно также использовать, если оно записано внутри блока. Пусть, например, в блоке 25 содержатся определения, которые являются частью программы, продолжающейся в блоке 30. Если в блоке 25 включен текст 30 LOAD то, когда будет встречен текст 30 LOAD, то будет загружен блок 30, после чего произойдет возврат к блоку 25, чтобы продолжить ввод того, что еще могло остаться в этом блоке.

Обычно программа располагается на последовательно расположенных блоках. В большинстве версий Форта есть нестандартные слова для загрузки последовательности блоков. В MMSFORTH так же, как слово PLISTS выводит, слово LOADS загружает последовательность экранов. Так, если программа находится в блоках с 25-го по 30-й, то их можно загрузить путем ввода с клавиатуры: 25 6 LOADS Слово LOADS можно определить следующим образом: : LOADS ( п1 п2 - ) OVER + SWAP DO I LOAD LOOP ;

Вам должно быть понятно, как оно работает. (В некоторых версиях используются совершенно другие слова для загрузки, о чем будет сказано дальше.) Слово THRU можно определить так: : THRU ( п1 п2 - ) 1+ SWAP DO I LOAD LOOP ;

Очевидно, что можно в конце каждого блока последовательности из нескольких блоков помещать номер следующего загружаемого блока со словом LOAD.


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