Индустрия программирования

         

В настоящее время одним из



В настоящее время одним из перспективных и экономически оправданных подходов к развитию
информационной индустрии является создание информационных технологий (ИТ) и реализующих
их систем (ИТ-систем) на принципах открытости. Основными свойствам открытых систем
являются переносимость (программ, данных, пользовательских окружений), интероперабельность
(сетевая взаимосвязь и совместное использование ресурсов и данных компонентами
распределенных систем), масштабируемость (эффективность функционирования в широких
диапазонах характеристик производительности и ресурсов). Достижимость этих качеств возможна
лишь на основе высокого уровня стандартизованности интерфейсов ИТ-систем и поддерживающих
их платформ.

В настоящее время в обеспечение этого подхода создан мощный методический базис, включающий
в качестве концептуальной основы (метауровень) эталонные модели важнейших разделов области
ИТ (в первую очередь модели: OSI - для сетевого взаимодействия, ODP - для открытой
распределенной обработки, POSIX - для окружений открытых систем, DM - для управления
данными, CG - для компьютерной графики), а также обширный набор стандартов или базовых
спецификаций, регламентирующих процесс создания ИТ-систем или их компонент на принципах




открытости. Также в последние годы создан эффективный и гибкий инструмент комплексирования
ИТ - (функциональное) профилирование ИТ, значительно продвинуто решение проблемы
аттестации реализаций ИТ (ИТ-систем) на соответствие исходным спецификациям. Огромное
значение для технологии создания открытых ИТ-систем приобрела разработка единой таксономии
ИТ.

При всем кажущемся благополучии в области построения открытых ИТ-систем узким местом
остается, казалось бы давно решенная проблема, - стандартизация языков программирования и их
библиотечных окружений, составляющих основную часть прикладного интерфейса (в
терминологии международных стандартов - интерфейса на границе прикладной платформы и
прикладной программы или API).

В эру объектно-ориентированных технологий основным инструментальным языком построения


открытых ИТ-систем становится язык Си++. С целью обеспечения высокого уровня переносимости
программ, поддержки объектно-ориентированной технологии проектирования ИТ-систем,
бесшовной интеграции языков программирования с языками баз данных следующего поколения, в
настоящее время в рамках ИСО (подкомитет 22) осуществляется интенсивная работа по развитию
и стандартизации базового языка объектно-ориентированного программирования Си++, а также
набора объектно-ориентированных шаблонных библиотек. Данную работу планируется
завершить в 1998 г. (срок окончания работ неоднократно переносился). В настоящее время
опорными точками процесса формирования стандарта данного языка являются соответствующие
проекты стандарта, издаваемые указанным выше комитетом с периодичностью две-три версии в
год.

Следует отметить, что создание ведущими фирмами-разработчиками компиляторов,
соответствующих текущим проектам стандарта, значительно отстает от темпов развития языка и
его библиотечного окружения. Аттестация компиляторов ведущих фирм-поставщиков (таких как
Borland, Symantec, Microsoft) показывает наличие в них большого количества ошибок и
отклонений от стандарта. По существу, каждая из фирм, реализуя собственные диалекты языка,
включает нестандартные конструкции и возможности, не поддерживаемые другими фирмами-
разработчиками компиляторов.

Помимо некачественности зарубежных компиляторов, несоответствия их стандартным
спецификациям, в последнее время наблюдается тенденция значительного повышения цен на
компиляторы, особенно заметное для пользователей, работающих на более мощных, чем обычные
персональные компьютеры, системах - рабочих станциях. Помимо материальных потерь, которые
несет Россия ежегодно на массовых покупках этого вида продукта, большая опасность
монополизации данного рынка малым числом зарубежных фирм представляется, в частности, для
организаций, ответственных за решение задач, имеющих стратегическое значение. Зависимость от
зарубежных поставщиков, невозможность переноса их компиляторов на оригинальные


отечественные образцы вычислительной техники, делает неконкурентными отечественные
разработки, отрицательно сказывается на уровне технологий, в частности, кросс-технологий,
применяемых при создании многих технических систем. Таким образом, отсутствие качественных
отечественных компиляторов, соответствующих стандартному определению языка Си++,
оснащенных стандартным набором шаблонных библиотек, и предусматривающих переносимость
их и/или адаптацию на широкий спектр машинных архитектур в значительной степени сдерживает
развитие отечественной вычислительной техники и прикладных технологий, делает их
неконкурентноспособными на международном рынке.

В то же время отечественная школа разработчиков компиляторов богата своими традициями.
Сильными школами специалистов в этой области славились: ИПМ, ИТМиВТ, ВЦАН, НФ
ИТМиВТ, ЛГУ, РГУ, МГУ и др. Поэтому возрождение этих традиций, создание
высококачественных отечественных компиляторов, представляется важной стратегической задачей
в области ИТ.

Представляемый проект нацелен на разработку перспективной методологии систем
программирования тройного стандарта, оригинальных методов и алгоритмов построения
переносимой и адаптируемой к машинным архитектурам системы программирования тройного
стандарта (ТСС++) для объектно-ориентированного языка Си++, реализующей стандарт языка
Си++, полный набор стандартных шаблонных библиотек, технологический аттестационный
комплекс для проверки на соответствие стандарту компилятора системы и его версий. Таким
образом, система ТСС++ обеспечит высокий уровень переносимости (на уровне исходного текста)
создаваемого программного обеспечения открытых систем.

Основные задачи проекта можно сформулировать следующим образом:

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


    Данный аппарат обеспечивает устойчивость систем
    тройного стандарта в условиях развития стандарта языка.
  • Исследовать и разработать высокоэффективные алгоритмы и структуры
    данных для реализации на их основе переносимого компилятора объектно-
    ориентированного языка Си++ (с адаптируемой кодогенерацией),
    соответствующего полному стандарту языка. Создать базовый компилятор
    объектно-ориентированного языка Си++, соответствующего стандарту языка,
    удовлетворяющий требованию параметризации кодогенерации для настройки
    его на широкий спектр машинных архитектур, а также требованию
    переносимости компилятора (на уровне исходного текста) на различные
    платформы;
  • Исследовать и разработать высокоэффективные алгоритмы и структуры
    данных для реализации на их основе объектно-ориентированных шаблонных
    библиотек, входящих в стандартное описание языка Си++. Создать полный
    набор объектно-ориентированных шаблонных библиотек, входящих в
    стандартное описание языка Си++.
  • Исследовать и разработать методы, высокоэффективные алгоритмы и
    структуры данных, вспомогательные инструментальные средства для
    реализации на их основе пакета программ для аттестации компиляторов языка
    Си++ на их соответствие стандарту. Создать пакет программ для аттестации
    компиляторов языка Си++ на их соответствие стандарту.

В настоящее время в НИВЦ МГУ завершается реализация действующего прототипа компилятора
языка Си++ для операционных сред SunOS и Solaris. Входной язык компилятора соответствует
последней к настоящему времени версии проекта стандарта от 28 мая 1996 г. Благодаря
оригинальным структурным решениям и алгоритмам созданный компилятор обладает
производственными характеристиками, сравнимыми с имеющимися на этой платформе
зарубежными компиляторами.

Кроме этого, разворачивается работа по реализации некоторых компонент Стандартной
Библиотеки Си++. Предполагается переносимость реализации

Наконец, проведена разработка первой версии пакета программ для аттестации компилятора на
соответствие исходному описанию.Реализация пакета основывалась на оригинальном подходе и
методах, разработанных сотрудниками НИВЦ МГУ, и подтвердила практичность предложенных
методов аттестации компиляторов. Созданная тестовая система обеспечила достаточно полное
покрытие языкового многообразия и позволила как протестировать разрабатываемый
компилятор, так и выявить многочисленные ошибки в существующих компиляторах.

Содержание раздела