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

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

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

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

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



21. Внешняя память

Памяти микрокомпьютера обычно недостаточно для запоминания всех необходимых данных и программ. Для этого используется память на внешних носителях. B основном, это память на магнитном диске.

Дисковая память Форт-системы разделена на БЛОКИ. Считается, что каждый блок с исходным текстом хранит 1024 символа и состоит из 16 строк по 64 символа в каждой. Иногда такой блок называют экраном. Для ввода информации в блок и ее изменения при Форт-системе имеется собственный редактор.

Блоки собраны на диске в один или несколько файлов по желанию программиста. Слово "USING" устанавливает текущий файл внешней памяти; используется в виде

USING имя-файла

Все описываемые ниже слова работают с блоками текущего файла. Блоки пронумерованы, начиная с 0. Количество блоков в файле системой не ограничивается.

Слово "LIST" распечатывает на экране содержимое блока, номер которого находится на вершине стека, в 16 строк по 64 символа. При этом слева добавляются числа - нумерация строк с 0 по 15. Переменная "SCR" хранит номер последнего распечатанного по "LIST" блока. Например, можно написать такие слова:

: LL SCR @ 1- LIST ; ( распечатать предыдущий блок )

: LN SCR @ 1+ LIST ; ( распечатать следующий блок )

Рекомендуется в нулевой строке блока писать комментарий к его содержимому. Слово "INDEX" служит для распечатывания нулевых строк последовательности блоков. Например, выражение

12 24 INDEX

распечатает начальные строки блоков c 12 по 24 включительно.

Текст Форт-программы может вводиться как с клавиатуры, так и с диска. ЗАГРУЗКА блока (обработка его содержимого Форт-системой) задается словом "LOAD". Номер блока берется с вершины стека. Заметим, что текст загружаемого блока в свою очередь может содержать слово "LOAD". После загрузки "внутреннего" блока произойдет возврат и "дозагрузка" остатка текущего блока.

Программа обычно занимает больше одного блока. Слово "THRU" загружает последовательность блоков в диапазоне номеров, взятых со стека. Например, выражение:

12 24 THRU

загрузит блоки c 12 по 24 включительно.

Слово "-->" вызывает загрузку следующего по номеру блока. Слово ";S" прекращает загрузку блока, что позволяет загружать только его часть.

Переменная "BLK" содержит номер блока, который загружается в данный момент. Если "BLK" содержит ноль, это означает, что ввод текста идет с клавиатуры. Таким образом, БЛОК С НОМЕРОМ 0 НЕ МОЖЕТ СОДЕРЖАТЬ ПРОГРАММУ. Еще при вводе текста используется переменная ">IN". Она содержит смещение в байтах относительно начала блока, откуда в настоящий момент идет ввод текста. Если в "BLK" ноль, то ">IN" указывает на смещение от начала буфера ввода.

Любая работа с содержимым блока выполняется не на диске, а в оперативной памяти. Слово "BLOCK" переписывает блок с указанным на стеке номером в 1024-байтный БЛОЧНЫЙ БУФЕР и оставляет на стеке адрес начала этого буфера. (Распечатка и загрузка блоков также используют это слово.) Теперь для работы с блоком можно применять любые слова, работающие с оперативной памятью. Обычно Форт-система предоставляет пользователю право задавать количество блочных буферов для одновременного хранения нескольких блоков. Это позволяет многократно модифицировать их содержимое, не обращаясь каждый раз к диску, что существенно экономит время. Слово "BLOCK" сначала проверяет, нет ли уже нужного блока в некотором буфере. Если надо перекачивать блок, а все буферы заполнены, то обычно заменяется блок с самым давним доступом. Если его содержимое подвергалось изменениям, оно предварительно копируется обратно на диск (без ведома пользователя).

С каждым буфером связан флаг наличия изменений. Слово "UPDATE" помечает как измененный блок, к которому осуществлялся самый последний доступ.

Можно заставить систему записать измененный блок на диск, не дожидаясь, пока его вытеснит другой блок. Для этого используются слова "FLUSH" и "SAVE-BUFFERS". "SAVE-BUFFERS" копирует все помеченные по "UPDATE" блоки на диск, не освобождая буферы; "FLUSH" после перекачки еще и очищает буферы, заполняя их пробелами.

Слово "EMPTY-BUFFERS" сбрасывает все флаги изменений без записи на диск. Это слово можно применить, если Вы случайно испортили содержимое какого-то блока и не хотите, чтобы изменения попали на диск. Надо только помнить, что ПРИ ЭТОМ ОЧИЩАЮТСЯ ВСЕ БУФЕРЫ. Далее придется восстанавливать их словом "BLOCK".

На основе описанных средств можно строить собственные файловые системы или организовывать базы данных.


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


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