ЧАсто задаваемые ВОпросы/ответы по языку Ада

Какие варианты программирования GUI на Аде?

Работа с СУБД

  • Мы рекомендуем использовать Матрёшку, где есть поддержка MySQL, Oracle, PostgreSQL, SQLite3.
  • в GNATCOLL есть доступ к Postgress и SQLite с одинаковым интерфейсом.
  • еще есть GNADE, там все как то на мой взгляд слабо систематизировано, но найти полезный код можно. Есть к примеру чисто для Оракла AdaOCI, с поддержкой его особенностей.
  • можно посмотреть другие способы на Awesome Ada.

Ада во встраиваемых системах

Как собрать статический исполняемый файл?

Команда для сборки статических исполнимых файлов выглядит так:

gprbuild hello.adb -largs -static -bargs -static

Какие существуют компиляторы с языка Ада?

1. GNAT

Существует как минимум три основные версии компилятора GNAT под Linux. GNAT Pro — версия от AdaCore под коммерческой лицензией; GNAT Community Edition — версия от AdaCore под лицензией GPL; GNAT FSF (из‐дистрибутива) — версия от сборщиков дистрибутива, обычно исходные материалы для сборки этой версии берутся из дерева GCC;

2. Object Ada

Например, можно попросить ObjectAda, если ты разрабатываешь код под открытой лицензией.

3. Janus Ada

Относительно недорогой компилятор Janus/Ada 95 работает на Windows.

4. Green Hills

Семейство кросс‐компиляторов Green Hills Optimizing Ada Compilers для систем реального времени.

В чём разница между GNAT Community Edition и GNAT FSF?

Первый представляет собой дистрибутив системы разработки от непосредственного производителя. Выпускается раз в год. Как правило имеет более свежую версию фронтэнда (чем GNAT FSF), соответственно больше новых возможностей и исправления ошибок. При этом имеет более старый бэкенд (генератор кода), т.е. потенциально меньше оптимизаций в момент генерации кода (хотя это обычно не заметно).

Второй представляет собой дистрибутив системы разработки из дерева GCC. Обновляется нерегулярно. Как правило имеет более старую версию фронтэнда, чем версия GNAT Community Edition. При установке (одной командой) устанавливаются все зависимости. Названия некоторых команд могут отличаться от версии GNAT Community Edition. Например, gnatgcc вместо gcc, в Debian/Ubuntu. Из плюсов можно отметить, что эта версия доступна практически на всех платформах, под которые собирается Debian/Fedora.

Как установить среду разработки GNAT FSF?

См. Как «поставить Аду».

Как установить среду разработки GNAT GPL 2013 под Ubuntu/x86_64? (Проверено на Ubuntu/x86_64 13.04 (а вообще должно подходить для Debian и всех основанных на нём дистрибутивах соответствующей архитектуры))?

Здесь и далее описывается установка именно версии GNAT GPL 2013 полученной с сайта AdaCore.

Скачиваем файл gnat-gpl-2013-x86_64-pc-linux-gnu-bin.tar.gz со страницы http://libre.adacore.com/download/

Далее разархивация и начальная установка:

$ tar xf gnat-gpl-2013-x86_64-pc-linux-gnu-bin.tar.gz
$ cd gnat-gpl-2013-x86_64-pc-linux-gnu-bin
$ sudo ./doinstall

Если не установлена библиотека libjpeg62, то GNAT Programming Studio (команда gps) запустится с ошибкой:

/usr/gnat/bin/gps_exe: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory

Установить недостающую библиотеку можно следующей командой:

$ sudo apt-get install libjpeg62

По‐умолчанию GNAT GPL устанавливается в каталог /usr/gnat. В соответствии с требованием установщика не забудьте разместить пути к GNAT'у в конце файла ~/.profile, а так же указываем другие переменные окружения:

$ nano ~/.profile
PATH=/usr/gnat/bin:$PATH; export PATH
CPATH=/usr/include/x86_64-linux-gnu; export CPATH
LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH; export LIBRARY_PATH

Вместо добавления последних двух строк, можно разместить символьную ссылку в каталоге /usr/, но это только если у вас есть права администратора и вы точно уверены, что это не повредит системе:

$ sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64

После внесения изменений в файл ~/.profile необходимо перезайти в систему или перечитать этот файл:

$ source ~/.profile

После этого новые переменные окружения вступят в силу и можно успешно пользоваться системой GNAT GPL 2013.

Вы можете задать вопрос, или уточнить что‐либо, если у вас данные инструкции не работают, а также высказать пожелания держателю этой секции по адресу virtual.lark@gmail.com и/или обратиться в Jabber‐конференцию, посвящённую языку программирования Ада (ada-ru@conference.jabber.ru).

Ошибка при старте GPS на Windows

Если при запуске GPS под Windows выдает 'The application failed to initialize properly' установите 'MSVC++ 2008 redistributable runtime'.