Для работы достаточно скачать набор компиляторов GCC. Он включает в себя Аду. Для Windows можно скачать с сайта. Есть 32- и 64-разрядные версии. Какую выбрать — по желанию. При установке нужно будет поставить галочку напротив Ады (по умолчанию компилятор Ады не устанавливается). Для Linux компилятор Ады есть в репозитории (все-таки GCC — стандартный компилятор для Linux).
Для linux Mint (да и для любого другого дистрибутива, родственного Linux Debian) команда установки такая: sudo apt-get install gnat Также можно скачать бесплатный компилятор GNAT (вместе с IDE). Здесь необходимо учесть, что если имя пользователя Windows, под которым Вы работаете в системе, создано на русском языке, то с запуском GNAT (вернее среды разработки GTS, которая установится вместе с GNAT), могут возникнуть проблемы. Но в любом случае сам компилятор будет прекрасно работать. Есть и другие компиляторы, но они платные. По крайней мере, из известных мне.
2 Общая информация по языку Ада
В этом разделе даны основные понятия (но, конечно же, далеко не все), необходимые для понимания материала. Остальные термины и разъяснения я постараюсь вводить по мере необходимости, в порядке их появления в текстах. 1. Переменная — это участок памяти, которому присвоено имя и в котором хранятся определённые данные (целое число, дробное число, символ (буква), строка и т.д.).
Cardano ADA Shocks Investors with UNEXPECTED News — Details Inside!
Программа оперирует (читает, считает, изменяет) этими данными в процессе работы. Грубо говоря, это коробка, в которую можно что-то положить и на которой написано название. 2. Комментарий. Строка, начинающаяся с двух символов тире «−−» — это комментарий. Всё, что следует за этими символами игнорируется компилятором до конца строки.
Комментарии — своего рода заметки и напоминания о том, что делает тот или иной участок кода. Далее в программах комментарии будут использоваться для объяснения и описания кода, поэтому их стоит читать наравне с основным текстом. 3. Компиляция. Создание исполняемого файла — процесс многоступенчатый.
Сначала идёт непосредственно процесс компиляции — трансляция («перевод») программы из написанного программистом текста в программу на низкоуровневом языке, близком к машинному (иногда трансляция происходит в язык ассемблера). В результате получается так называемый объектный модуль. 4. Компоновка (линковка). Это следующий после компиляции этап создания программы.
На этом этапе из объектных модулей, созданных в процессе компиляции, собирается (компонуется) исполняемый файл. 5. Подпрограмма, процедура, функция. Подробно все эти термины будут рассмотрены далее, а сейчас будем считать, что синонимом всех этих терминов является слово «команда». Т.е. подпрограмма/процедура/функция — это команда, которая должна быть выполнена для получения какого-либо результата. Основные арифметические и логические операторы, а также операторы сравнения:
+ | Сложение чисел (a + b) |
— | Разность чисел (a — b) |
* | Произведение чисел (a * b) |
/ | Деление чисел (a / b) |
** | Возведение в степень (a ** b (a в степени b)) |
rem | Остаток от деления (a rem b) |
= | Проверка чисел на равенство (a = b) |
/= | Не равно (a /= b) |
> | Сравнение чисел (a > b) |
Сравнение чисел (a < b) | |
>= | Сравнение чисел (a >= b) |
Сравнение чисел (a | |
not | Отрицание |
and | И |
or | Или |
xor | Исключающее или |
Для работы я советую использовать редактор Geany. Он кроссплатформенный и поддерживает синтаксис Ады. К тому же компиляция и трансляция сведётся к нажатию кнопки F9 на клавиатуре, а запуск программы — к нажатию F5. Код по умолчанию не будет оптимальным, но в Geany можно настроить опции компиляции и сборки.
3 Hello world на Ada
Не будем отклонятся от традиций и напишем самую популярную в мире программу. Итак, «Hello, world!», дамы и господа! Создаём в текстовом редакторе (типа блокнота, Geany, Notepad++ и т.д. Только не MS Office, LibreOffice и иже с ними) файл main.adb со следующим содержимым:
Cardano ADA Whales Only control this much of the supply! #cardano #cardanoada #ada
with Ada.Text_IO; —Подключаем пакет Text_IO. Он нужен для работы с текстом procedure Main is —Начало программы (процедуры) begin —Начало блока исполнения команд Ada.Text_IO.Put_Line(«Hello, world!»); —Вывод строки и переход на следующую строку end Main; —Конец программы (процедуры)
Где-то так. Как и договаривались, описание каждой строчки программы дано в комментариях. Как из этого текста сделать исполняемый файл показано в конце страницы. Писать каждый раз ради вывода строки конструкцию «Ada.Text_IO.Put_Line(«Hello, world!»);» — малопривлекательное занятие, поэтому немного сократим код:
with Ada.Text_IO; use Ada.Text_IO; —Подключаем пакет для работы с текстом и говорим компилятору, что —если он встретит какую-то команду (в данном случае —Put_Line()), то её реализацию нужно посмотреть в пакете —Ada.Text_IO procedure Main is begin Put_Line(«Hello, world!»); end Main;
Можно use Ada.Text_IO разместить таким образом:
with Ada.Text_IO; procedure Main is use Ada.Text_IO; —Просмотр пакета Ada.Text_IO будет осуществляться в пределах procedure Main. —Если в коде будут другие процедуры (procedure), то, если внутри них понадобится —ввод/вывод текста, нужно будет прописывать use Ada.Text_IO внутри этих процедур begin Put_Line(«Hello, world!»); end Main;
Также можно вместо команды Put_Line() использовать команду Put() , но тогда не произойдёт перевода курсора в начало новой строки. Для перехода на новую строку можно использовать команду New_Line .
with Ada.Text_IO; use Ada.Text_IO; procedure Main is begin Put(«Hello, world!»); —Вывод текста на экран New_Line; —Перевод курсора на новую строку. end Main;
Каждое действие (вызов функции или процедуры, арифметическая операция и т.д) должно заканчиваться символом ‘;’ . После ‘;’ можно продолжить писать команды в этой же строке (иногда это целесообразно), а можно перейти к новой строке.
Тут уже вопрос собственных предпочтений и пряморукости. Язык Ада — регистронезависимый, поэтому текст программы можно писать как в верхнем, так и в нижнем регистрах. Однако есть некоторые соглашения, которых стоит придерживаться. Например, названия переменных, а также слова в названиях процедур и функций пишутся с заглавной буквы, слова разделяются символом ‘_’ . Будем стараться придерживаться этих правил.
4 Компиляция Ada-программы
Итак, чтобы программа заработала, её нужно скомпилировать и скомпоновать. Рассмотрим несколько вариантов (более подробную информацию стоит смотреть в документации компилятора). Если Вы используете редактор Geany, то для компиляции и компоновки Вам достаточно нажать F9, а затем F5 для запуска программы. Рассмотрим компиляцию и компоновку в консоли.
Способ 1. Это самый простой способ — открываем консоль, переходим в папку с нашим файлом (main.adb) и пишем следующую команду: gnatmake main.adb В итоге получим исполняемый файл. В Linux его размер будет около 8 Кбайт. В Windows — около 850 Кбайт. Это очень много и связано с тем, что внутрь итогового файла добавлено много «ненужностей» (Run-Time Library).
Способ 2. Компиляцию можно выполнить так (если Вы уже испробовали способ 1, то итоговый файл main.exe перед компиляцией лучше удалить, т.к компилятор «посмотрит», что в исходный файл (main.adb) никаких изменений не внесено, а итоговый файл уже существует, и «ругнётся», мол, «хозяин, ты что, издеваешься?») gnatmake -O1 xxx -bargs -shared Размер файла будет порядка 59 Кбайт. Это уже лучше, но всё-равно много. Способ 3. Опять удаляем main.exe и выполняем следующие команды:
gcc -c -O1 main.adb gnatbind -shared -x main.ali gnatlink main.ali -s -O1 -shared-libgcc
В результате получим исполняемый файл около 12 Кбайт. На этом, пожалуй, остановимся. Я предполагаю, что Hello, world! — это раздел для начинающих, поэтому подробно на опциях компилятора останавливаться не буду. Компиляторы бывают разные и опции у них тоже разные. С опытом придёт и знание того, какие опции нужны, а какие нет. Для самых любознательных могу посоветовать книгу Гавва А.Е. «Адское» программирование. Ada-95. Компилятор GNAT» и/или документацию к компилятору GNAT.
Список уроков | Следующий урок |
Источник: pro-prof.com
Ada что это за программа
Ищите подрядчика?
Устройте конкурс между агентствами и узнайте реальные цены и сроки выполнения вашего проекта. Создание заказа занимает 5 минут.
Об инструменте
Что такое Ada
Язык программирования, применяемый для больших встроенных систем. Занимает узкую нишу, из-за чего его распространение на IT-рынке очень ограничено.
На Ada написан ряд специализированных операционных систем. Язык оказал прямое влияние на PL/SQL, а также косвенное — на получивший широкую популярность в наши дни Go. Современная версия языка (в отличие от первоначальной) фактически является объектно-ориентированной. Отличается высокой надежностью и простым синтаксисом. Используется в авиации и банковской системе.
Ada – мультипарадигмальный высокоуровневый язык программирования со строгой статической типизацией. Язык разработали для министерства обороны США, чтобы управлять автоматикой в военных объектах. Первая версия языка появилась в 1980 году, но Ada до сих пор активно используют в разработке. Тем не менее, язык отличается малой популярностью в России.
Основные возможности Ada
Чаще всего язык используют на военных или критически важных гражданских объектах. С использованием GNAT, язык может компилироваться в машинный код для большого количества процессоров различных архитектур. Ada повышает безопасность и удобство сопровождения кода, используя компилятор для поиска ошибок времени выполнения. Язык поддерживает компиляцию для выполнения программ на Windows, Linux и macOS. Также язык может компилироваться в байт-код для JVM и .NET.
Особенности Ada
- Строгая типизация, которая абсолютно исключает неявное приведение типов.
- Глубокая проверка кода при компиляции на предмет ошибок.
- Поддержка параллельного программирования в виде концепции «рандеву».
Преимущества Ada
- Синтаксис Ada обеспечивает высокую надежность исполнения программ.
- Мультиплатформенность за счет широких возможностей компиляции.
Код Ada может транспилироваться в код таких языков, как C, C++, Java, JavaScript.
Источник: workspace.ru
Программирование на языке Ада
Довелось намедни на одном белорусском ресурсе прочесть статью «10 языков программирования, которые больше никому не нужны». Среди «заживо погребенных» оказались Fortran, Basic, J#, Turbo Pascal, Ada и другие. Так вот, наибольшую полемику, как ни странно, вызвало обсуждение Aдa (надеюсь в этом месте я не оскорбляю чьи-либо чувства). Что, собственно говоря и сподвигло покопаться в этой увлекательной теме.
Ада получил свое название в честь той самой Ады Лавлейс, великого математика и первого в мире программиста (кстати, она единственный законнорожденный ребёнок знаменитого английского поэта Джорджа Гордона Байрона и его жены Анны Изабеллы Байрон). Этот язык был создан в конце семидесятых годов для бортовых систем военных объектов Пентагона.
Тем удивительней, что в 1989 году в СССР материализовался ГОСТ (он же государственный стандарт) по работе с данным языком программирования. Если покопаться в документе, то там можно найти массу интересных вещей. Вообще хочется снять шляпу перед предшественниками, сделавшими эту по-настоящему впечатляющую работу. Честно говоря, в 80-е в СССР, как ни странно, вообще с книгами по программированию судя по всему было неплохо. Вот тут краткая Ада-библиография.
Эксперты сходятся во мнении, что настоящих служителей Ада на постсоветском пространстве не так уж и много. Это и понятно. Все-таки, в основном данный язык применяется для программной разработки в авионике, атомной энергетике и в других промышленных отраслях, к которым на Java, ну никак, не подъедешь.
Стоит отметить, что язык изначально разрабатывался для встраиваемых систем. Отсюда — неразвитость Ады по части GUI и СУБД. А раз с этим у неё туго, то и шансов развиться не было. Зачем она массовому разработчику, ведь ~99% пользовательских приложений нуждаются в GUI и СУБД.
Синтаксис
У Ada – простой, понятный, легко читаемый синтаксис, который существенно снижает риск ситуаций, когда случайная опечатка приводит к тому, что код не становится формально неправильным, но существенно меняется его семантика.
Изначально, Ада — модульный язык программирования со строгой типизацией, унаследовавший синтаксис от Паскаль и Алгол. Если вы учили первый в школе или институте, то глядя на «Hello, World!» должны испытать ностальгию:
with Ada.Text_IO; procedure Hello is use Ada.Text_IO; begin Put_Line(«Hello, world!»); end Hello;
Одним из главных требований к языку была надёжность его использования. Соответственно, это повлекло за собой строгие ограничения по структуре, типам, написанию и многому другому. Кроме того, почти все ошибки здесь улавливаются на этапе компиляции. Другим требованием была максимальная читаемость кода в распечатанном виде, что повлекло за собой тяжеловесность полученного языка и невысокую гибкость.
Более поздние стандарты частично решали эти проблемы, но по понятным причинам, они не сделали из Ада второй Python. (с)
Где больше Ада?
Покопавшись в «этих-ваших» интернетах оказалось, что Boeing, Airbus и даже российские Ил-96 и Бе-200 летают благодаря программным разработкам из Ада. Вся авиация плотно сидит там же. ПО для атомных станций и даже банковская система, включая сети банкоматов от Ада тоже не далеко ушли. Аналогичное можно сказать про автопром.
Тем не менее, если сравнить количество запросов из HR на специалистов по С#, Python, Java, С++, то очевидно, что адептов Ада требуется в разы меньше. Но это не означает, что они вовсе не нужны. Не случайно в 2012 году были разработаны новые стандарты языка. Есть мнение, что совсем скоро он получит второе дыхание. Однако, справедливости ради, стоит отметить, что за его почти сорокалетнюю историю, подобных прогнозов было не мало.
Если вас заинтересовал данный язык и вы вдруг решили узнать, где сегодня в мире грызут гранит Ада, заходите по ссылке. Но, если вы спец по С++, то в Parallels для вас есть местечко. Велкам!
- Блог компании Parallels
- Читальный зал
- История IT
- Старое железо
Источник: habr.com