РуЛиб - онлайн библиотека > Баранов Сергей > Литература ХX века (эпоха Социальных революций) > Язык Форт и его реализации > страница 3

Читаем онлайн «Язык Форт и его реализации» 3 cтраница

(идентификатор, число без
знака, присваивание, условный оператор и др.), синтаксис которых обычно задают с помощью граф-схем
или порождающих правил, а семантику объясняют на
основе той или иной машиннонезависимой модели вычислений. Часть языка ассемблера любой ЭВМ, предназначенная для записи машинных команд, содержит
по одной конструкции на каждую команду. Запись такой
конструкции обычно представляет отдельную строку
и состоит из мнемонического обозначения команды
и размещения операндов, а семантика определяется
в терминах реальных действий, которые данная команда
выполняет над ячейками памяти, регистрами и другими
компонентами архитектуры ЭВМ.
Язык Форт больше всего похож на язык ассемблера. Его синтаксис также максимально прост. Запись
каждой конструкции (команды) состоит из одного
слова — мнемонического обозначения, в качестве которого может выступать последовательность любых литер,
не содержащая пробела. Простота синтаксиса является
следствием того, что в качестве вычислительной модели
используется стековая машина. Слова-команды этой
машины снимают необходимые операнды со стека
и оставляют свои результаты (если они есть) также
на стеке. Таким образом, программа, написанная на
языке Форт, выглядит как последовательность слов,
каждое из которых подразумевает выполнение тех или
иных действий. Слова разделяются любым числом пробелов и переходов на новую строку; ограничение накла7
дывается только на длину слова — оно должно содержать не более 31 литеры. Стандарт языка определяет
сравнительно небольшой набор из 132 «обязательных»
слов. Среди них есть слова, позволяющие определять
новые через уже имеющиеся и тем самым расширять
исходный набор слов-команд в нужном для данной
задачи направлении. Некоторые часто требующиеся
расширения включены в стандарт в качестве «стандартных расширений» обязательного набора слов.
Вычислительная модель, лежащая в основе языка Форт, состоит из адресного пространства оперативной памяти объемом до 64 К байт, терминала и поля
внешней памяти на магнитных дисках объемом до 32 К
блоков по 1 К байт каждый. В пределах имеющегося
адресного пространства располагаются стек данных
и стек возвратов, словарь, буфер для ввода с терминала
и буфера для обмена с внешней памятью.
Стек данных обычно располагается в старших
адресах оперативной памяти и используется для передачи параметров и результатов между исполняемыми
словами. Его элементами являются двухбайтные
значения, которые в зависимости от ситуации могут
рассматриваться различным образом: как целые числа
со знаком в диапазоне от —32768 до +32767, как адреса оперативной памяти в диапазоне от 0 до 65535 (отсюда ограничение 64 К на размер адресного пространства), как коды литер (диапазон зависит от принятой
кодировки) для обмена с терминалом, как номера
блоков внешней памяти в диапазоне от 0 до 32767 или
просто как 16-разрядные двоичные значения. В процессе
исполнения слов значения помещаются на стек и снимаются с него. Переполнение и исчерпание стека, как
правило, не проверяется; его максимальный объем
устанавливается реализацией. Стандарт предусматривает, что стек растет в сторону убывания адресов; это
согласуется с аппаратной реализацией стека в большинстве ЭВМ, которые ее имеют.
Стек возвратов по своей структуре аналогичен
стеку данных, но используется особым образом некоторыми стандартными словами (подробнее об этом см.
в гл. 2).
Начальную часть адресного пространства обычно
занимает словарь (иначе «кодофайл») — хранилище
слов и данных. По мере расширения исходного набора
8
слов словарь растет в сторону увеличения адресов. Специальные слова из обязательного набора позволяют
управлять вершиной словаря — поднимать и опускать ее.
Наряду со стеком данных и стеком возвратов в
старших адресах оперативной памяти обычно размещается буфер на 64-100 байт для построчного ввода
форт-текста с терминала и буферный пул для обмена
с внешней дисковой памятью размером от 1 до 3 и более К байт. Доступ к этим буферам и фактический обмен
осуществляют специальные слова из обязательного
набора.
1.2. Работа в диалоговом режиме
Программирование на языке Форт является
существенно диалоговым. Работая за терминалом,
программист вводит слова-команды, а загруженная
в память ЭВМ форт-система, т. е. реализация языка
Форт на данной ЭВМ, немедленно выполняет обозначаемые этими словами действия. О своей готовности к обработке очередной строки текста форт-система обычно
сообщает программисту специальным приглашением
(например, знаком < , который печатается на терминале). Получив такое приглашение, программист набирает на терминале очередную порцию форт-текста,
заканчивая ее специальным управляющим символом
(например, нажимая клавишу "Ввод" или «Перевод
строки»). Получив сигнал о завершении ввода, фортсистема начинает