Начальный курс программирования на языке Форт

         

ЗАГРУЗКА ПРОГРАММ


Как вы уже знаете, процесс кодирования может потребовать неоднократной повторной загрузки одного и того же блока или блоков. Но учтите: всякий раз, производя загрузку определений, вы увеличиваете размеры вашего словаря.

Допустим, вы загружаете несколько раз некоторый блок, изменяя в нем по одному определению. В результате ваш словарь будет содержать по варианту каждого слова данного блока для каждой загрузки. Простейший способ избежать этого состоит в применении слова FORGET. Например, если вы только что внесли исправления в определение слова F в блоке 50 и хотите вновь загрузить последний, то вы должны набрать на клавиатуре следующее:

FORGET STAR ok

50 LOAD ok

Помните, что слово FORGET забывает само указанное слово и все, что было определено после него.

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

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

В Форте три перечисленных варианта фрагментов называются оверлейными структурами, так как они при исполнении не пересекаются и взаимозаменяемы в памяти. Рассмотрим их более подробно.

Последнее определение основы программы должно содержать только имя, например: : VARIATIONS ;

Это определение называется нулевым, поскольку оно всего лишь отмечает место в вашем словаре. Включите в начало каждого альтернативного фрагмента выражение FORGET VARIATIONS : VARIATIONS ;

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


1 Для специалистов. Более точно — оверлейными структурами компиляции. Некоторые Форт-системы предлагают возможность загрузки так называемых двоичных оверлейных структур, представляющих собой предварительно скомпилированные программные разделы, которые могут быть присоединены к резидентной части словаря.

2 Для работающих с системами, в которых есть слово EMPTY. Слово EMPTY «забывает» все созданные вами определения. В мультипрограммной системе они составляют лишь ваше собственное расширение словаря.

Мы ввели команду LOAD для загрузки одного блока, а как загружать программу, состоящую из нескольких блоков? Используйте слово THRU, которое загружает заданный диапазон блоков. Например, выражение 180 189 THRU

означает загрузку каждого блока, начиная со 180-го и кончая 189-м. Многие системы при выполнении слова THRU выводят номера загружаемых блоков, что помогает вам следить за ходом загрузки.

Существует еще один пример. Вам известно, что слово .", помещенное в определение, приводит к выводу некоторого сообщения при выполнении данного определения. Другое слово .( можно использовать за пределами определения. Наберите на клавиатуре .( Что со мной, доктор?)

и нажмите клавишу RETURN. Вы увидите, что набранный текст высветится на экране. Это слово применяется в тех случаях, когда требуется сообщение от некоторого блока во время его загрузки. Например: Block# 10

0 \ Моя программа 1 2 CR .( Загрузка моей программы...) 3 20 37 THRU \ ШТУЧКИ 4 40 45 THRU \ ДРЮЧКИ 5 50 58 THRU \ ШПУЛЬКИ 6

7 CR .( Моя программа загружена ) 8 9


Содержание раздела