Реализация

Описанные ранее принципы организации многопроходного компилятора были применены при реализации следующих конкретных систем: 1) кросс-компилятор с ПЛ/1 для ВК ЭВМ на инструментальной ЭВМ БЭСМ-6; 2) прямой компилятор с Фортрана для ВК ЭВМ; 3) имитационный комплекс специали­зированного микропроцессора на инструментальной ЭВМ БЭСМ-6.

Такую же схему предполагается использовать при реализа­ции компилятора с Паскаля для ВК ЭВМ.

(1). Кросс-компилятор ПЛ/1. Компилятор входит в состав программного обеспечения ВК ЭВМ. ПЛ/1 — распространенный язык программирования, предоставляющий пользователю достаточно широкие возможности. Компилятор работает на БЭСМ-6 под управлением мониторной системы «Дубна» и опе­рационной системы ДИСПАК. Программные модули написаны на автокоде МАДЛЕН. Объем библиотеки перемещаемых мо­дулей — 100К слов.

Во время генерации компилятора создается статическая библиотека разделов (80К слов), структура которой описы­вается по правилам мониторной системы «Дубна». Уровни фаз по справочнику должны соответствовать уровням разде­лов библиотеки. Раздел может содержать несколько фаз. Соот­ветствие имен фаз и разделов задается справочником фаз ком­пилятора и должно быть согласовано с описанием библиотеки статических разделов.

ОЗУ БЭСМ-6 (32 листа по 1К слов) распределяется сле­дующим образом: 2 листа — монитор, 4 листа — управляющий модуль, 0,75 листа — рабочая память управляющего модуля, 1,25 — рабочая память функциональных модулей, 16 листов — «окно» виртуальной оперативной памяти, 8 листов — «окно» оверлейной загрузки функциональных модулей. При генерации компилятора размер «окна» оперативной памяти можно умень­шить до 8 листов и укрупнить соответствующим образом раз­делы статической библиотеки. Физический размер страницы виртуальной памяти совпадает с размером листа ОЗУ и кван­том обмена с внешней памятью в ОС ДИСПАК. Логический размер страницы является параметром компилятора. Уменьше­ние размера страницы позволяет имитировать работу виртуаль­ной памяти компилятора в условиях большого входного текста, используя небольшие реальные входные тексты.

В режиме эксплуатации откачки страниц текста и словаря возникают для программ, содержащих 400—500 строк текста и/или 200—300 идентификаторов. Предельные характеристики программы—10 тысяч строк и 2—3 тысячи идентификаторов. Скорость трансляции — примерно 20 строк/сек или 10 тыс. строк/10 минут.

Длина словарной ссылки—16 разрядов, объем словаря— до 64 страниц. Длина текстовой ссылки — 24 разряда, объем текста — до 256 страниц. Диагностические сообщения, как и распечатка исходной программы, содержат номер оператора, при обработке которого было выдано сообщение.

Базовый уровень содержит процедуры работы со входным файлом и файлом печати. Атрибуты этих файлов являются па­раметрами запуска компилятора. Таким образом, обеспечивает­ся независимость функциональных модулей от операционной, среды компилятора.

Отладочный режим работы компилятора понимается не­сколько шире, чем описано в (1). Например, в отладочном режиме при печати таблицы идентификаторов в нее добавляет­ся значение словарной ссылки, а при печати сообщений к но­меру сообщения добавляется идентификатор фазы, выдавшей сообщение.

Метки: , , ,

Связанные записи