Факультет компьютерных наук

кафедра моделирования систем и технологий,

кафедра искусственного интеллекта и программирования

 

В.О. Мищенко

(Украина, Харьков)

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

 

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

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

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

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

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

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

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

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

 

  Авторы настоящего сообщения в учебном классе в год присоединения к GAP

 

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

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

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

Заваф.электроники и управления Н.Г. Стервоедов и администратор GAP в ХНУ В.О. Мищенко обсуждают возможности Ады в практике разработки управляющих программно-аппаратных комплексов (ФКН, 2005 г.)

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

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

В рядах летней школы-семинара «Высокие информационные технологии – Ада», 2005

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

С благодарностью отмечу плодотворное сотрудничество в области обучения языку Ада и исследованиям в области Ада-технологий с факультетом ВМК и НИВЦ МГУ, с Киевской политехникой, с Кременчужским политехническим университетом, с Национальным Аэрокосмическим университетом «ХАИ».

Очные встречи участников Ада-ру происходят обычно на сборах по приглашениям оргкомитетов международных научных мероприятий. Примеры – международная конференция 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 и не бойтесь попробовать. Еще раз подчеркну своё мнение: Ада, как формальный язык осваивается мгновенно, а вот её целенаправленное применение воспитывает не только техничных исполнителей, а, прежде всего, будущих руководителей проектных групп, главных программистов и грамотных менеджеров проектов!

В рядах ВИТ-Ада 2007

В рядах ВИТ-АДА 2009