Введение к работе
Актуальность темы. В большой программной системе интерфейсы между ее компонентами не менее важны, чем алгоритмы работы самих компонентов. Компоненты такой системы, как правило, разрабатываются в течение длительного времени, коллективом разработчиков, могут настраиваться в процессе работы и заменяться новыми версиями. Все это предъявляет повышенные требования к гибкости и надежности способов взаимодействия компонентов. Принципам интеграции компонентов систем программирования посвящены многие отечественные и зарубежные работы, регулярно проводятся международные конференции, например, под эгидой АСМ, ведется работа по стандартизации интерфейсов.
Целью диссертации является обобщение принципов построения таких интерфейсов на основе опыта работы в составе коллектива разработчиков кросс-системы программирования Сократ, а также других работ, в которых принимал участие автор.
Научная новизна работы определяется дальнейшим развитием принципов объектно-ориентированного взаимодействия компонентов системы. При этом объектная ориентированность рассматривается прежде всего как методология, а не как правила написания программ на C++. Так получилось, что в ходе работы ни одной строчки ни на каком "объектно-ориентированном" языке написано не было и, более того, некоторые из применявшихся приемов лишь с трудом выражаются на распространенных объектно-ориентированных языках.
Хотя использование компилируемых языков неизбежно при разработке эффективно работающих систем, статический контроль и статическое связывание в таких языках устанавливают слишком жесткие рамки для взаимодействия компонентов системы. В работе проводится тезис о необходимости введения в среду исполнения динамики, то есть переноса части функций, выполняемых обычно транслятором, на период исполнения. Разумно спроектированные библиотеки и расширения языка позволяют не потерять при этом ни эффективности, ни надежности.
В диссертации предлагаются механизмы для расширения возможностей объектно-ориентированного взаимодействия и увеличения динамики. Новыми являются механизмы динамического именования и использования классов как сущностей первого сорта. Предлагается систематически использовать преобразование объектов к текстовому виду и обратно.
Для описываемых механизмов предложена реализация как путем расширения языка программирования, так и в виде библиотеки.
Новый функциональный интерфейс между входным блоком транслятора и выходными блоками различных языковых процессоров позволяет не фиксировать единую для всей системы структуру внутреннего представления программы.
Практическая ценность работы подтверждается использованием предложенных принципов при разработке штатного образца кросс-системы программирования для встроенных ЭВМ. Автором диссертации в рамка> этой системы разработаны как отдельные составные части, так и общи! принципы взаимодействия компонентов и процессов.
Апробация работы. Результаты работы докладывались на междуна родной конференции молодых ученых в Самарканде в 1990 году, на между народном конгрессе CSAM'93 в Санкт-Петербурге, на внутренних семинарах ИСИ СО РАН. По теме диссертации опубликовано 7 научных работ, не считая программной документации по разработанным средствам.
Структура и объем работы. Диссертация состоит из введения, 6 глав, заключения и списка литературы из 44 наименований, 3 рисунков Общий объем работы — 116 страниц.