Недоря А.Е. - Диссертация. Заключение

Введение    Глава 1    Глава 2    Глава 3    Глава 4    Заключение    Литература    Приложения


Заключение

В работе были рассмотрены вопросы построения расширяемых и переносимых инструментальных систем. Работа включала в себя следующие подзадачи:

  • анализ пригодности языков программирования на соответствие требованиям расширяемых систем и требованиям надежности;
  • выбор схемы трансляции и реализация семейства переносимых компиляторов;
  • анализ существующих расширяемых систем, выявление недостатков и способов их преодоления;
  • реализация ядра РПС;
  • отработка методов переноса компиляторов и системы.

Перечислим основные результаты исследований и реализации:


  1. Выработан набор критериев, которым должен удовлетворять язык реализации РПС. Показано, что язык Оберон-2 удовлетворяет этим критериям.
  2. Предложена методика реализации мало-языковых транслирующих систем, заключающаяся в фиксации языкового надмножества набора семантически близких языков, построении анализатора для этих языков в единое внутреннее представление и реализации генерации с внутреннего представления для каждой платформы, на которую необходимо перенести компиляторы. Показано, что для пары близких языков (в нашем случае Модула-2 и Оберон-2) трудозатраты на реализацию семейства переносимых компиляторов ненамного превышают затраты на разработку переносимого компилятора для одного языка. Выполнен анализ схем трансляции и обоснован выбор такой схемы, при которой внутреннее представление между фазами анализа и синтеза является синтаксическим деревом в памяти.
  3. Проведена разработка внутреннего представления и реализованы анализаторы языков Модула-2 и Оберон-2. Эти языки достаточно близки как синтаксически, так и семантически, что позволило выделить общую часть, включающую такие компоненты, как лексический анализ, обработка ошибок, таблицу символов, импорт/экспорт.
  4. Проведена разработка генерации кода для процессоров i386/486 и Кронос, а также генерация текста на языке ANSI C, что позволяет переносить транслирующую систему на любую платформу, для которой есть ANSI C компилятор (то есть на любую платформу, кроме ЭВМ Кронос). Простота реализации такой генерации в первую очередь обусловлена выбором синтаксического дерева в качестве внутреннего представления.
  5. Проведен анализ расширяемых систем на примере системы Оберон. Выявлен ряд недостатков системы Оберон (см. 4.7). Показана важность реализации в ядре системы механизмов финализации и постоянных объектов.
  6. Выполнено проектирование ядра РПС. Показано, как с использованием только одиночного наследования можно построить универсальные расширяемые механизмы ввода/вывода, сохранения контекста ошибок, и т.д. Основное внимание уделено поддержке разработки прикладных систем. Ядро РПС определяет и реализует набор механизмов, позволяющих существенно упростить разработку приложений.
  7. Совместно с А. Никитиным (оконная система, графика) и А. Хапугиным (динамическая поддержка, загрузчик) реализовано ядро РПС Мифрил.
  8. Выполнен перенос системы Мифрил в среду MS-DOS.

Достаточно интересными представляются возможности развития системы. В первую очередь, это реализация генераторов кода для распространенных RISC процессоров и перенос системы Мифрил в развитые обстановки, такие как X-Windows, OS/2 и Windows NT.


Введение    Глава 1    Глава 2    Глава 3    Глава 4    Заключение    Литература    Приложения