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


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


В данном случае они извлекают число - номер блока из слова, подобного переменной, и затем загружают соответствующий блок. Конструкция CREATE...DOES> порождает слова, которые создают новый класс слов, о чем мы более детально будем рассказывать в следующей главе. Вернемся, однако, к загрузке блоков. Мы можем создать блок-справочник, который будет напоминать о названиях программ и наборов расширяющих слов. Предположим, что вы хотите иметь справочник блока 10, причем загрузочный экран имеет номер 20. Последнее определение в блоке 20 пусть будет таким: : DIR 10 LOAD : при этом пусть в блоке 10 находится ." Расширения, определенные в блоке 20" CR CR ." STRINGS" CR (Символьные строки) ." FLTPT" CR (Арифметика с плавающей запятой) ." DECOMP" CR (Декомпиляция) ." GRAPHICS" CR (Графика)

(В Форт-83 вместо оператора." используется.( ). Если ввести DIR, то после загрузки загрузочного экрана вам будут представлены возможности выбора одного из наборов расширяющих слов. В некоторых версиях Форта, в частности в MMSFORTH, вам предоставляется возможность указать, какой из блоков Форта нужно загрузить. Если на одном блоке не хватает места для справочника, нужно указать, как связаны вместе все блоки.

Можно работать с блоками многими другими способами. Некоторые из них мы попробуем применить в упражнениях.

Упражнения

1. Пусть у вас имеется игровая программа, которая начинается в блоке 100. Каким образом можно использовать константу, чтобы можно было загрузить программу, вводя PACFORTH LOAD ? 2. Определите новое слово для загрузки GET, которое загружало бы программу с помощью GET PACFORTH. 3. Если блоки программы расположены не последовательно, то можно для хранения их номеров использовать массив, первым элементом которого будет число блоков. Так. если PACFORTH находится в блоках 30, 33, и 36, то массив можно определить так: CREATE PACFORTH 3 , 30 , 33 , 36 , Опишите слово LOADIT так, что если вы вводите PACFORTH LOADIT то будет загружена программа PACFORTH. (Указание: используйте цикл DO...LOOP.) 4.


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