СЛОВА ДЛЯ УПРАВЛЕНИЯ ВНЕШНЕЙ ПАМЯТЬЮ
Форт - больше чем язык, это программная среда, обладающая
собственными средствами для взаимодействия с внешней памятью.
На логическом уровне внешняя память представляется в виде сово-
купности блоков по 1024 байта (1К) в каждом, пронумерованных
начиная с нуля. Внешняя память в Форте построена на основе
принципа виртуализации. В памяти Форт-системы 1К блоков ре-
зервируется под буферный пул. При включении нового блока под
него выделяется свободный буфер. Если все буферы оказались за-
нятыми, то самый " старый" блок (тот, который обновлялся позже
остальных) будет переписан обратно во внешнюю память, чтобы
освободить место для нового блока. Каждый буфер включает в себя
флаг (признак), по значению которого можно судить, обновлялся
блок или нет. Если во время нахождения блока в буфере он не из-
менялся, то его не нужно переписывать обратно во внешнюю па-
мять.
Все буферы могут быть очищены с уничтожением содержа-
щихся в них данных с помощью слова EMPTY-BUFFERS. Для сох-
ранения во внешней памяти всех блоков, подвергавшихся измене-
ниям, служиг слово SAVE-BUFFERS. Перед очисткой внешней па-
мяти целесообразно выполнить слово FLUSH, определяемое следу-
ющим образом:
: FLUSH SAVE-BUFFERS EMPTY-BUFFERS;
Важную роль играют слова LOAD и THRU, управляющие вхо-
дным потоком данных, передаваемых из внешней памяти. Слово
LOAD загружает один экран, а слово THRU - последовательность
экранов:
Для работы с исходными текстами программ, находящимися
во внешней памяти, требуется текстовый редактор. В Форте не
предусмотрен какой-либо стандарт на средства редактирования,
поэтому за их описанием следует обращаться к документации по
конкретой системе. Блоки в редакторе называются экранами. В
конце книги помещен глоссарий слов Форта. Там же приведена и
библиография по языку Форт.
УПРАЖНЕНИЯ
1. Определите следующие слова Форта, используя стандартные слова:
a) ON и OFF б) 2DUP в) -ROT
г) +! д)? DUP ж) COUNT
2. Каково назначение слов:
а) (IS)
б) 7CREATE
(оно приведено на экране 45 исходных текстов программ в приложении А)?
LOAD (n - => )
Переписывает блок п.
THRU (be ==> )
Переписывает блоки с b по е,
152
сравнительно недавно. Лисп-машины в настоящее время продаются
несколькими компаниями и снабжены программами типа MACSY-
МА. В гл. 9 рассматривается другое направление, вынесенное в
название данной книги. Разработанная в рамках этого направле-
ния система, основанная на знаниях, реализована посредством слов
правления списками.
Глава 7
ОБРАБОТКА СПИСКОВ
Формы представления данных, или структуры данных, в ком-
пьютере весьма разнообразны. В предыдущей главе при програм-
мировании на Форте использовались следующие структуры дан-
ных: связный список для хранения слов в словаре, стеки для пере-
дачи параметров и хранения указателей возврата, а также строки,
например, символьные строки в полях имени слов. Из всех этих
структур данных списковая наиболее универсальна. С помощью
списков могут строиться другие структуры данных, такие, как
деревья, строки или стеки. Подобная универсальность полезна при
представлении сложных форм знаний в программах ИИ, многие из
которых построены на базе списков. Обработка списков характер-
на для символьных вычислений вообще, а для ИИ в особенности.
Списки являются одним из инструментов создания систем, осно-
ванных на знаниях.
Слова Форта для работы со списками, рассматриваемые здесь,
заимствованы из языка Лисп (LISP - List processor). Лисп был
разработан Дж. Маккарти в 50-х годах для исследований в области
искусственного интеллекта. Хотя по " компьютерным меркам" этот
язык считается довольно старым, он не приобрел той популярно-
сти, какую завоевали впоследствии Фортран или Бейсик, причем
не в силу своей концептуальной сложности, а из-за того, что он в
большей степени подходил для символьных преобразований, чем
для численных. Большинство же компьютерных прикладных прог-
рамм продолжало в основном оставаться расчетными.
Численные методы используются главным образом для инте-
грирования функций или решения уравнений. На Лиспе написана
программа MACSYMA, которая не только решает подобные задач
но и воспринимает информацию в привычных математических обе
значениях. Анализируя формы алгебраических выражений, она ус-
танавливает правила интегрирования, применимые к этим выраже-
ниям. Символьные вычисления нашли коммерческое применение