Язык Ада возрождает свои позиции в постсоветских странах: взгляд из Харьковского национального университета

Оглядываясь лет на 20-25 назад…

Как известно, амбициозный американский проект конца 70-х – начала 80-х годов прошлого века, нацеленный на формирование новых технологий разработки ПО для критических применений, был закручен вокруг созданного для этих целей языка Ада. Захватив тогда важнейшие позиции в военной, космической и авиационной индустрии, Ада-технологии (разумеется, с тех пор многократно усовершенствованные) сохраняют их и поныне. Естественно, что в Советском Союзе на базе языка Ада планировались и разворачивались аналогичные применения.

В те далекие годы после участия преподавателей Харьковского госуниверситета в нескольких всесоюзных конференциях, на механико-математическом факультете были прочитаны первые спецкурсы по данному языку и выполнены отдельные дипломные работы, в которых анализировались возможности Ады при решении определенных проблем. Главный фактор академического интереса того времени – госзаказ для кадрового обеспечения стратегических КБ.

Тогда же стало понятным – освоение прикладного программирования на Аде в наименьшей степени затруднено освоением нотации (так как в ее основе лежит общеизвестная нотация языка Паскаль). Главное – научиться планировать структуру программы (наука, между прочим, полезная при использовании любых инструментов разработки ПО!).

90-е годы – язык Ада находит свое место в системе обучения IT

В годы после независимости, когда пропал госзаказ, язык Ада и связанные с ним технологии превратились в нашем университете преимущественно в средство обучения, позволяющее студентам на единой высокоуровневой платформе апробировать проектирование спецификаций, параллельное программирование, разработку проектов с использованием нескольких языков программирования, распределенные вычисления и многое другое. Поначалу использовалась разработка Ленинградского университета – система Лада для ЕС ЭВМ, которая позволила успешно осваивать язык и характерные для него приемы программирования студентам и научным работникам. Разрабатывались небольшие прикладные программы расчетного характера. Вскоре началось перебазирование на персоналки класса АТ286/386 с использованием «голых» Ада-компиляторов, поскольку для поддержки полноценного окружения мощности этих машин было маловато.

Вскоре после официального введения в 1996 г. нового стандарта языка практически доступными системами, поддерживающими этот стандарт на ПК новых поколений, оказались только демо-версия Alsys Ada и свободно распространяемые издания GNAT от AdaCore (без ограничений). Вслед за другими университетами в Харьковском университете, получившем тем временем статус национального, был освоен для учебного процесса компилятор GNAT совместно с полиплатформенной графической библиотекой GTK-Ada. Работа с ними в комплексе, может быть, и не столь удобна для пользователей ПК, как, например, работа с Delphy под Windows, но, с другой стороны, позволяет демонстрировать возможности параллельного программирования и платформенную независимость. Компиляторы марки GNAT почти на десятилетие становятся технической базой общего курса «Инструментальные средства программирования» на выпускном курсе прикладного отделения механико-математического факультета. На основе обязательных зачетных заданий накапливается важный опыт относительно того, что лучше и что хуже усваивается студентами. Обнаружилось, что сильные студенты готовы отдать предпочтение языку Ада в прикладном программировании, но, к сожалению, в 90-е это не имело никакого стимула со стороны перспектив дальнейшей профессиональной деятельности на родине.

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

Преимущества сотрудничества с Ada-ru и GAP от AdaCore

Оказалось, что сложилась группа молодых программистов из разных городов и стран СНГ (см. сайт Ada-ru.org), которые, подобно их западным коллегам, видят перспективу для Ада-технологий в широком спектре применений (помимо военных), включая некоторые бизнес-приложения и сетевые технологии. При этом они положили себе за правило поддерживать полноценное использование русского языка в проектах и бесплатную техподдержку начинающих русскоязычных пользователей. Наладив с ними контакт, наша небольшая группа сотрудников ХНУ, которая вела преподавание языка Ада (она постепенно перебазировалась на новый в университете факультет компьютерных наук), получила в свое распоряжение инструментальные средства, наработанные участниками Ада-ру, переводы на русский язык той документации, которая интересует начинающего Ада- программиста, написанный по-русски подробный электронный учебник А. Гаввы, посвященный Аде и профессиональному использованию GNAT. Плюс специализированный форум, на котором не остаются без ответа разумные вопросы относительно языка Ада и связанных с ним технологий, в том числе связанных не с GNAT, а с другими системами на базе языка Ада.

Поддержка пришла и с другой стороны – со стороны AdaCore - производителя Ада-компилятора и связанных с ним инструментальных средств. Программа GNAT Academic Program, в которой мы уже 6 лет, обеспечивает доступ ко всем свободно распространяемым компанией продуктам в самых свежих версиях и, что уникально, - техническую поддержку участников данной программы. Поэтому на сегодня GNAT может быть основой любых учебных курсов, использующих Аду, как в начальном обучении программированию, так и в специальных областях.

Ада сегодня в учебном процессе факультета компьютерных наук

Язык Ада создавался с прицелом на тесную связь с процессом проектирования ПО. В частности, система спецификации программных модулей - его неотъемлемая часть. Ее следует задействовать на этапе перехода от общей схемы проектируемой программной системы (СПС) к компонентам этой системы и их интерфейсам. Это удобно сопровождать графическими образами. Можно использовать стандартизованный подход – UML. Поэтому учебный курс «Основы проектирования ИС» на втором-третьем годах обучения по специальности «Управляющие системы и технологии» закладывает основу для согласованного использования UML и языка Ада на старших курсах, хотя формально язык Ада не используется за исключением некоторых тем курсовых работ по выбору. Зато на пятом году обучения в двухсеместровом лекционном курсе «Разработка больших программных систем», поддерживаемом лабораторным практикумом, Ада широко используется для демонстрации особенностей разработки больших программных проектов. В частности, демонстрируется, что полностью всем требованиям к базовому языку проекта удовлетворяет именно язык Ада (при указании, конечно, и на другие языки, которые удовлетворяют этим требованиям в большей или меньшей степени). Также особое внимание уделяется компилируемым и программным модулям, специальным особенностям средств параллельного программирования, настройке модулей, обработке исключений. Разъясняется модель ООП на основе пакетов и дискриминантов, принятая в языке Ада, которая кратко сравнивается со знакомой студентам моделью, которая базируется на классах.

Академические связи, летние школы

С благодарностью отмечу плодотворное сотрудничество в области обучения языку Ада и исследованиям в области Ада-технологий с факультетом ВМК и НИВЦ МГУ, с Киевской политехникой, с Кременчужским политехническим университетом, с Национальным Аэрокосмическим университетом «ХАИ». Очные встречи участников Ада-ру происходят обычно на сборах по приглашениям оргкомитетов международных научных мероприятий. Примеры – международная конференция SCALNET-2004 (Кременчуг, берег Днепра), летние школы ВИТ-Ада при международных симпозиумах МДОЗМФ-2005, 07, 09 (пос. Лазурное, берег Черного моря), выставка PTS-2009 в Минске.

Перспективы: уже появились спонсоры

Вместо бодрых, но общих фраз ограничусь примером. При подготовке летней школы ВИТ-Ада 2011 встал вопрос о привлечении студентов средних курсов из Украины, России, Беларуси, для которых самостоятельная поездка на школу сложна организационно и обычно не по карману. Благодаря объявившимся частным спонсорам, заинтересованным в подготовке специалистов в области Ада-технологий, удалось организовать конкурс для студентов 2-4 курсов обучения (необходимо самостоятельно доработать требования к проекту, разработать проект, проверить решения на модельной реализации и, наконец, создать прототип требуемой системы с полноценным современным интерфейсом на базе одной из библиотек OEM - http://www.mediascan.by/index.files/Page695.html или Qt-Ada - http://www.qtada.com). Приз – оплата поездки на школу и трехдневного на ней пребывания. Будучи руководителем нескольких харьковских студентов, решивших принять участие в конкурсе, должен отметить, что существующая в известных мне вузах постсоветских стран система обучения инструментам и (в небольшой мере) методам информатики недостаточна для того, чтобы студент выполнил подобное конкурсное задание с той же смелостью, как олимпиадное или учебное задание (неважно – использует он Аду или С++). Поэтому (уже в качестве одного из координаторов будущей летней школы) рекомендовал бы полномочному жюри дать смелым возможность прислать заявки и проекты требований, скажем, еще до конца Рождества 2011, а затем приславшим дать фиксированное время на выполнение (по условиям конкурса, выполнение не обязательно должно быть стопроцентным – будет оценено, что успеют). Тогда и у некоторых из читателей возникнет шанс поучаствовать, не правда ли?

Следите за объявлениями по адресу http://www.ada-ru.org/contest-2010 или http://www.dsmmph.org.ua/news/Uslovija-konkursa-GUI-2010.html и не бойтесь попробовать. Еще раз подчеркну свое мнение: Ада как формальный язык осваивается мгновенно, а вот ее целенаправленное применение воспитывает не только техничных исполнителей, а, прежде всего, будущих руководителей проектных групп, главных программистов и грамотных менеджеров проектов!

В.О. Мищенко, Украина, Харьков


Компьютерная газета. Статья была опубликована в номере 47 за 2010 год в рубрике программирование

©1997-2024 Компьютерная газета