Язык АДА

Итак, теперь мы знаем достаточно о предшественниках Ады, потому приступим к непосредственной истории создания этого прекрасного языка.

Конкурс

В 60е-70е годы Министерство Обороны США (the United States Department of Defense) использовало для своих нужд более чем 2000 различных языков программирования (в основном для систем повышенной надежности). По большей части это были языки разработаные для выполнения какого-то конкретного задания. В результате Министерством Обороны была сформирована Рабочая Группа по Языкам Высокого Уровня (High-Order Language Working Group (HOLWG)), целью которой было найти решение создавшемуся в то время, так назваемому, "кризису программного обеспечения"

Члены Рабочей Группы постановили, что для выхода из создавшейся ситуации необходимо создание языка программирования, с помощью которого можно будет сделать практически все, будь то системное программирование, искусственный интеллект, и, что наиболее важно, системы работающие в реальном времени и встроенные системы. Системы реального времени это программы используемые для таких вещей как управление светофорами на дорогах, самонаводящихся ракет, и сканнеров штрих-кодов. Встроенными же называются системы такие как маленькие компьютеры встраеваемые в большинство современных машин, самолеты, и даже магнитофоны.

Вместо того чтобы создавать новый язык самим, было решено провести конкурс. Было образовано несколько команд, каждой из них был присвоен свой цвет. По случайному стечению обстоятельств все команды создали свои язык использовав Паскаль в качестве основы. В результате победила зеленая команда -- фирма Ханейвелл-Балл (Honeywell-Bull) из Франции. Познее, язык был назван "Ада" в честь леди Ады Августы Лавлейс (Lady Ada Augusta Lovelace), дочери известного поэта Байрона и ассистентки математика Чарльза Байбиджа (Charles Babbage), который изобрел Аналитическую Машину. Леди Аду принято считать первым программистом.

В 1979, МО США создало первый черновой вариант документации по Аде, затем язык был стандартизован в 1983 году. Сейчас этот стандарт принято называть "Ада83", первоначально он находился под полным контролем со стороны МО США, и ни кто не мог создать компилятор с языка без авторизации оного со стороны Министерства Обороны.

Однако все изменилось в 1987 году, когда МО США предоставило Аду в публичное распоряжение, и на язык был создан стандарт Международного Института по Стандартизации (International Standards Organization (ISO)). К 1990 году появилось более 200 проверенных на соответсвие стандарту компиляторов с этого языка, еще познее в 1995 году появился новый стандарт назваемый Ада95. Ада в редакции 95го года стала полностью объектно-ориетированым языком, а также оснащена очень удобными средствами взаимодействия с кодом написаным на Си, Фортране, Коболе и прочих языках.

Где взять Аду?

Скорее всего вы думаете, что компилятор для такого мощного как Ада языка стоит очень и очень дорого, однако вы заблуждаетесь, вы наверное удивитесь, но один из наиболее мощных и популярных компиляторов с Ады95, GNAT (Gnu/New york University Ada Translator) не будет стоить вам ни копейки (за исключением технической поддержки, но только в том случае если вы захотите ее иметь).

GNAT можно скачать с FTP-сервера Нью-Йоркского Университета ftp://cs.nyu.edu из каталога /pub/gnat. В нем содержатся различные версии GNAT'а для различных ОС например Unix, включая SunOS/Solaris, Linux, NetBSD, SGI IRIX, IBM's AIX, DEC's Digital Unix.

Так же там существуют версии GNAT'a для WinNT, Win95, MacOS, и даже версия для DOS называемая "EZ2Load".

Учебник

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

Сперва Я хочу чтобы читатель узнал что же такое Ада. Так же как и ее предшествинник Паскаль и ее кузен Си, Ада это структурый язык. Другими словами, программа на Аде это организованная последовательность различных секций, в то время как в неструктурных языках таких как Бейсик, вы можете писать что угодно и где угодно.

Также, Аде присуща своя собственная терминология, и Я далее буду использовать несколько таких слов, со значением которых вы возможно не знакомы:

· пакет (package), файл искодного кода программы в котором хранится определенный набор связанных по смыслу команд, которые делают например такие вещи как печать текста, математические вычисления, и т.д. Они в чем-то похожи на заголовки в языке Си, но не являются прямой аналогией. (прим перев: они ближе к модулям в Турбо Паскале (хотя точнее на оборот, они слизаны с Ады)

· переменная (variable), это именованая область памяти в которой может хранится некоторое значение, например число, символ, или слово.

· предложение или инструкция (statement), команда для выполнения специфического действия.

Все программы на Аде имеют следующую базовую структуру:

with Имя_Пакета; use Имя_Пакета;

procedure Имя_Процедуры

Переменная : Некоторый_Тип_Значений;

begin

Предложение_1;

Предложение_2;

end Имя_Процедуры;

Имя_Процедуры часто является и именем программы. (прим перев: В отличие от Паскале здесь нет выделенного блока begin - end, программой может считатся любая процедура библиотечного уровня (т.е. не вложеная в другую процедуру/функцию) без параметров).

Место где написано Переменная : Некоторый_Тип_Значений является объявлением переменной. Возможно вы спросите, а что значит "Некоторый_Тип_Значений"? Это означает какого типа значения могут хранится в переменной. Другими словами, если вы хотите иметь переменную для целых чисел вам необходимо написать Variable : Integer;. Если вам нужны числа с пляавающей запятой, то Variable : Float; и т.д.

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

Инструкция begin начинает последовательность настоящих команд программы.

Предложение_1; и Предложение_1; на самом деле ни чего не значат в Аде; в реальной программе на их месте будут настоящие команды, которые и будут выполнять необходимые нам действия.

Предлоджение end Имя_Процедуры; завершает последовательность команд программы. Теперь Я могу сказать вам, что эта маленькая "демо" програмка была нужна, чтобы просто показать вам структуру программы, но теперь мы можем посмотреть и на настоящую рабочую программу. По традиции ей будет, можно сказать, классическая ;-) программа выводящая "Hello World", которая обычно и используется при первом знакомстве с новым языком.


Страница: