- PVSM.RU - https://www.pvsm.ru -

Ada 2012 и Windows: начало

Большинство из слышавших о языке Ада довольствуются шутками о его названии, часть из них знает историю его разработки, многие считают его бесполезным и давно забытым. Гораздо меньшее количество людей знает, что этот язык жив и здравствует. В декабре 2012 года вышел 900-страничный мануал-спецификация Ada Reference Manual, тем временем известный в кругах Ада Джон Барнс (John Barnes) опубликовал 6-ой черновик Ada 2012 Rationale [1], новая версия которого ожидается через пару месяцев. В финальной версии будет дан обзор особенностей Ada 2012 с примерами кода, описание изменений относительно предыдущих версий языка и совместимости.
Автор этого поста берется за перевод черновой рукописи, о результате сообщу дополнительно.

Ада и я

Я давно хотел познакомиться с Адой, однако друг другу нас никто не представил, да и времени было мало. Узнав о новом стандарте и столкнувшись с необходимостью выбора текста для перевода к диплому, решил убить двух зайцев. Здесь хочу кратко описать свой небольшой опыт взаимодействия с GNAT (GNU Ada compiler), надеюсь, эта информация окажется полезна и другим.

Разработка под GNU/Linux

Имея Raspberry Pi с установленной сборкой SqueezePlug [2] в качестве домашнего веб- и медиа-сервера, захотелось использовать его же для экспериментов на языке Ада. Если GNAT отсутствует (как, например, у меня), установка не представляет сложностей:

$ apt-get install gnat

Далее создаем произвольную директорию и в ней файл с расширением ".adb". Продублирую содержание стандартного адского «Hello, World»:

with Ada.Text_IO;
procedure Hello is
begin
   Ada.Text_IO.Put_Line("Hello, world!");
end Hello;

Для компиляции и сборки выполняется команда:

$ gnatmake yourSourceNameHere.adb

К сожалению, прелести новой Ады недоступны в данной сборке: версия GNAT, устанавливаемая из репозитория, не поддерживает последний стандарт. Так как с GNU/Linux я особенных отношений никогда не имел, решил не отвлекаться на сборку из исходников, оставить Raspberry Pi удел медиа-сервера и вернуться к Windows.

Разработка под Windows

Здесь есть несколько вариантов. Первый — использование GPS (GNAT Programming Studio). Эта IDE от AdaCore [3] позволяет вести разработку и на других языках, или, по крайней мере, обеспечивает подсветку синтаксиса. По умолчанию установка производится в каталог C:GNAT2012. После запуска среды предлагается создать проект из шаблона, воспользоваться помощником или открыть существующую разработку. Далее все прозаично и не требует подробного описания: создание нового файла, сохранение его с расширением ".adb", добавление этого файла в Main Files (Project-Edit Project Properties), build, run. Что важно: для поддержки нового стандарта при компиляции следует добавить флаг "-gnat12".
image
Второй вариант — использование cygwin [4]. При установке стоит отметить пункты, связанные с Адой, их можно найти по ключевым словам gnat, gcc, ada. Возможно, вам этого хватит для обеспечения работы GNAT, но мне компилятор настойчиво сообщал об ошибке:

$ gcc -c yourSourceNameHere.adb
$ gcc: error trying to exec 'gnat1': execvp: no such file or directory

Эта проблема решилась после установки GPS и выполнения следующей команды:

$ which gcc
/usr/bin/gcc
$ export PATH=/cygdrive/c/GNAT/2012/bin:$PATH
$ which gcc
/cygdrive/c/GNAT/2012/bin/gcc

Стоит отметить, что исполняемый файл «Hello, World» у меня весит около 500кБ, но это без указания каких-либо флагов. Если знать, как пользоваться флагами, подобная программа займет не более 20кБ.

Автор: idlhero

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/razrabotka/30280

Ссылки в тексте:

[1] Ada 2012 Rationale: http://www.ada-auth.org/standards/rationale12.html

[2] SqueezePlug: http://www.squeezeplug.eu/

[3] Эта IDE от AdaCore: http://libre.adacore.com/

[4] cygwin: http://www.cygwin.com/

[5] Источник: http://habrahabr.ru/post/174073/