Факультет компьютерных наук
кафедра моделирования систем и технологий,
кафедра искусственного интеллекта и программирования
В.О. Мищенко
(Украина, Харьков)
Язык Ада возрождает
свои позиции в постсоветских странах: взгляд из Харьковского национального университета
Оглядываясь лет на 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
и не бойтесь попробовать. Еще раз подчеркну своё мнение: Ада, как формальный
язык осваивается мгновенно, а вот её целенаправленное применение воспитывает не
только техничных исполнителей, а, прежде всего, будущих руководителей проектных
групп, главных программистов и грамотных менеджеров проектов!
|
|