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


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


Загрузочный экран предназначен для того, чтобы связать имя программы с блоками, в которых она размещается, с целью осуществления загрузки программы по имени. Реализация загрузки экранов может иметь различную форму.

Проще всего загрузить программу, если все относящиеся к ней блоки соединяются словом -->. Предположим, что у вас имеется несколько наборов расширяющих слов, которые можно загружать по мере необходимости. Допустим, это слова для работы со строками, слова арифметики с плавающей запятой, декомпилятор и графические слова. В этом случае вы можете скомпоновать блок, в котором содержатся следующие определения: : STRINGS 30 LOAD ; (Символьные строки) : FLTPT- 40 LOAD ; (Арифметика с плавающей запятой) : DECOMP 50 LOAD ; (Декомпиляция) : GRAPHICS 60 LOAD ; (Графика)

Если вы загрузите экран, на котором помещены эти определения, то вы сможете вызывать по выбору любой из имеющихся наборов, вводя его имя. Например, слово STRINGS загрузит слова для работы со строками. Разумеется, если блоки в STRINGS не объединены с помощью -->, то можно определить слово: : STRINGS 20 5 LOADS : или : STRINGS 20 LOAD 23 LOAD 28 LOAD : если программа находится не в последовательных блоках. Идея состоит в том, чтобы определить слово LOADS, которое сильно отличается от рассмотренного нами выше слова LOADS. Новое слово LOADS позволяет дать определение слова, которое после его ввода будет загружать блок. Вот определение этого слова: : LOADS ( n - ) CREATE , DOES> @ LOAD ;

Если это определение использовать, например, так: 30 LOADS STRINGS 40 LOADS FLTPT 50 LOADS DECOMP 60 LOADS GRAPHICS то слово LOADS определит слова STRINGS, FLTPT, DECOMP и GRAPHICS. Поэтому если ввести одно из этих слов, то будет загружен соответствующий ему блок.,Пока вы еще не знаете слово DOES>, поэтому вам может быть не вполне понятно, как работает слово LOADS, но если вы просмотрите гл. 6, где рассматривается слово CREATE, то поймете, как в данном случае работает DOES>. Вкратце, слова, заключенные между CREATE и DOES>, определяют, что происходит при исполнении слова LOADS, в то время как слова, находящиеся между DOES> и ;, описывают, что должны делать вновь определенные слова.


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