Skip navigation

Системное и прикладное программирование

В 50-е годы Институт сыграл ведущую роль в создании и освоении отечественной вычислительной техники. Были разработаны первые большие производственные программы по ядерной и космической тематике, создан первый отечественный и один из первых в мире компиляторов, опубликованы первые работы по теории программирования [183,184,185].

Основоположником работ по системному программированию в нашем Институте был член-корреспондент РАН Алексей Андреевич Ляпунов.

В 60-х годах разработанные в Институте трансляторы с языков АЛГОЛ и ФОРТРАН были установлены почти на всех отечественных ЭВМ. Операционная система ОС ИПМ для БЭСМ-6 была одной из наиболее развитых операционных систем своего времени и содержала многие элементы будущих операционных систем [186,187,188,189]. В частности, были реализованы такие механизмы взаимодействия программ, как параллельные процессы, подчиненные задачи, события, передача сообщений (почта). Для создания универсальных (мобильных) компиляторов, способных функционировать на компьютерах различных типов, разработан специальный алгоритмический машинно-ориентированный язык абстрактной машины АЛМО. Он одновременно использовался и для написания компиляторов и для оформления программ, составляемых компиляторами.

Большой комплекс работ по системному программному обеспечению БЭСМ-6 связан с созданием и развитием ОС ДИСПАК [190] и систем, работающих под ее управлением. В частности были разработаны файловая система УПД-6 [ 191], система управления задачами ЯУЗА [192], локальный банк данных ЛБД [193] и многотерминальная диалоговая система ДИМОН [194]. Эти системы были широко востребованы и установлены на сотнях машин БЭСМ-6 по стране.

Разработаны также соответствующие инструментальные средства - автокод БЭМШ [195,196] с макрогенератором [197] и язык системного программирования АСТРА [198].

Разработан транслятор с расширенного ФОРТРАНа - ФОРЕКС [199,200]. Заложенные в транслятор алгоритмы оптимизации позволяли получать в 1,5-2 раза более качественные программы как по скорости работы, так и по занимаемой памяти, по сравнению с другими ФОРТРАН-трансляторами.

В 1976-1979 гг. была разработана объектно-ориентированная модель распределенных вычислений, протокол удаленного вызова операций в объектах-исполнителях и первая реализация соответствующего программное обеспечение для ЭВМ БЭСМ-6 [201,202]. В 90-х годах использование подобной модели стало широко распространенным. В 1980-1984 гг. на основе этой модели была построена и эксплуатировалась в ИПМ сеть СЕКОП. 1985-1989 гг. сеть была перенесена в новые программно-аппаратные среды: VM/370 для ЕС ЭВМ, MS DOS для IBM PC, RT-11 для ДВК, ПО для ЭВМ АС-6 и

СМ-2. Разработаны оригинальные сетевые адаптеры для всех этих типов ЭВМ и специализированная БИС для этих адаптеров. Разработана совместно с НИИ автоматических приборов и успешно прошла государственные испытания ЛВС СН (Локальная вычислительная сеть специального назначения). 1990-1995 гг. программно-аппаратный комплекс для построения сетей ЭВМ (получивший название РУСЛАН) [203] был установлен более, чем в 100 организациях.

Выполненные в Институте работы по созданию пакетов прикладных программ [204] позволили решить ряд крупных практических задач математической физики и легли в основу технологии построения расширяемых программ [205,206]. Первым из пакетов прикладных программ стал пакет Сафра, предназначенный для решения широкого класса задач математической физики, в частности, задач лазерного управляемого термоядерного синтеза. Сафра успешно эксплуатировалась в Институте, была передана в несколько десятков внешних организаций. За Сафрой последовали новые пакеты. Пакет ЗАЩИТА обслуживает конструирование радиационной защиты ядерных реакторов, пакет КРИТ - задачи многокритериальной оптимизации и др.

В начале 80-х годов Институт принял участие в работах по автоматизации экспериментального машиностроительного производства Института атомной энергии им. И.В.Курчатова. Сотрудниками Института была создана программная инфраструктура системы "КАПРИ", поддерживающей автоматизированное конструирование деталей и типовых узлов, проектирование технологии изготовления деталей, производство деталей на гибко-перестраиваемом технологическом оборудовании с применением промышленных роботов. Созданный в рамках этого проекта образец промышленного робота по своим показателям соответствовал достигнутому к тому времени мировому уровню [207,208]. Развитое программное обеспечение робота позволяло ему выполнять такие "человеческие" функции как проверка исправности оборудования и т.п., а использование механизмов обратной связи позволяло выполнять прецизионные работы, выходящие за рамки механической точности манипуляторов.

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

Для разработки бортового программного обеспечения был создан специализированный язык реального времени ПРОЛ2 и базирующаяся на нем система автоматизации программирования и отладки САПО ПРОЛОГ. Для обеспечения работы управляющих алгоритмов была создана бортовая операционная система, успешно отработавшая во время первого беспилотного полета корабля.

Для разработки программного обеспечения наземных испытаний корабля был создан проблемно-ориентированный язык ДИПОЛЬ и базирующаяся на нем система автоматизации программирования и отладки. Для обеспечения работы алгоритмов испытаний была создана Автоматизированная испытательная система, которая и в настоящее время используется для испытаний космических объектов.

С конца 60-х годов в Институте развивается направление автоматизации программирования, связанное с обработкой языков и преобразованием программ. Для этих целей был разработан функциональный язык обработки символьной информации РЕФАЛ [209,210,211] и выполнены работы по его эффективной реализации на большинстве ЭВМ [212,213]. В течение десятилетий он широко использовался для реализации трансляторов (как самого РЕФАЛа, так и других языков, например, СИМУЛА [214], НОРМА [215]), аналитических вычислений [216,217] и других задач. РЕФАЛ был положен в основу аппаратной реализации символьного процессора [218]. Одна из самых популярных в мире реализаций другого функционального языка, SML, также выполнена в ИПМ [219]. Методы преобразования программ, изначально разработанные для РЕФАЛА [220], получили дальнейшее развитие для других языков [221,222,223].

В Институте активно ведутся работы по распределенным и параллельным вычислениям [224,225,226,227,228,229]. Программное обеспечение распределенных вычислений вместе с соответствующей сетевой и вычислительной инфраструктурой позволяют рассматривать любое количество пространственно удаленных компьютеров как один большой виртуальный компьютер (Метакомпьютер, GRID). В Институте построена корпоративная распределенная система, объединяющая десятки компьютеров на двух площадках. Кроме того, разработана система планирования глобально распределенных вычислений, рассчитанная на виртуальное объединение сотен или тысяч самостоятельных вычислительных узлов.

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

C 2001 г. по инициативе Министерства промышленности науки и технологий РФ Институт участвует в работах по теме "Создание и информационное обеспечение системы электронных торгов для государственных нужд". Предусмотренный данным проектом перевод в Интернет всех процедур конкурсных государственных закупок дает весьма заметный выигрыш в эффективности, позволяет привлечь к участию в конкурсах самый широкий круг поставщиков [230]. Разработан и открыт сервер, с помощью которого проводятся электронные торги [231].