Введение к работе
Актуальность темы. Исследование методов трансляции и разработка трансляторов являются важнейшими областями системного программирования. Появление новых архитектур ЭВМ, распространение встроенных ЭВМ, требующих надежности и эффективности разрабатываемых для них программ, создает предпосылки для развития методов разработки трансляторов и оптимизации программ.
Особую актуальность проблемы кодогенерации имеют для разработки системы программирования, в состав которой входят несколько трансляторов или кросс-трансляторов с одного языка программирования на разные ЭВМ. Такие системы имеют общую маши-но-независимую часть и отличаются только фазой генерации кода, в связи с чем проблемы оптимизации и генерации кода выходят на первое место при разработке транслятора.
Целью работы является разработка методов быстрой и эффективной реализации настраиваемого кодогенерирующего просмотра транслятора на основе опыта работы в составе коллектива разработчиков системы программирования WBC и апробация этих методов на примере создания кодогенерирующих просмотров трансляторов с Алгола 68, входящих в состав WBC.
Методы исследования. При решении поставленных задач автором диссертационной работы использовался опыт создания кодогенерирующих просмотров трансляторов с Алгола 68. Разработка пакетов программ, реализующих предложенные в работе методы, производилась на языке программирования Алгол 68. Отладка проводилась в нескольких трансляторах с Алгола 68 для нескольких типов ЭВМ и операционных систем.
Научная новизна. Научную новизну работы составляют предложенные в диссертации методы, настройка которых на данный тип ЭВМ позволяет в короткие сроки разработать эффективный и надежный кодогенерирующий просмотр:
метод "повторной" трансляции, обеспечивающий эффективное распределение регистров под промежуточные вычисления в пределах ряда конструкций
метод "условной" трансляции, обеспечивающий распределение регистров в пределах произвольного фрагмента программы
метод интерпретации таблиц, позволяющий компактно описать проекции конструкций исходного языка в терминах системы команд объектной ЭВМ с учетом различных вариантов реализации конструкции, а затем осуществить выбор оптимального варианта.
Практическая ценность. Практическая ценность данной работы определяется использованием ее результатов в разработке семейства трансляторов с Алгола 68: трансляторы для IBM PC (в операционных системах MS DOS и UNIX), ПС1001, ПС300О.
Автором диссертации самостоятельно реализованы кодогенери-рующие просмотры перечисленных выше трансляторов и разработаны предложенные в диссертации методы разработки кодогенерирую-щих просмотров.
Применение предлагаемых автором методов позволяет существенно повысить скорость разработки, надежность транслятора и качество порождаемых программ.
Апробация работы. Основные результаты диссертационной работы докладывались и обсуждались на семинарах в лаборатории системного программирования НИИ ММ Санкт-Петербургского государственного университета.
Разработанные с применением предложенных методов трансляторы используются в различных промышленных в таких организациях, как НПО "Красная Заря", НПО "Ленинец", НПО "Импульс" и МГП "Терком".
По теме диссертации опубликованы 4 научные работы, не считая программной документации по разработанным средствам.
Методы разработки, предложенные в данной работе, использовались при создании транслятора с Паскаля и Оберона для ЭВМ Самсон.
Структура и объем работы. Диссертация состоит из введения, пяти глав, заключения, библиографии и списка литературы (30 наименований). Объем основной части работы - 95 страниц.