Ада-95. Компилятор GNAT

       

Первая программа


Для того, чтобы дать "почувствовать", что представляет из себя программа написанная на языке Ада рассмотрим простую программу. Традиционно, первая программа - это программа которая выводит на экран приветствие: "Hello World!". Не будем нарушать традицию. Итак, на Аде такая программа будет иметь следующий вид:

with Ada.Text_IO; use Ada.Text_IO;

procedure Hello is

begin

Put_Line("Hello World!"); end Hello;

Давайте детально рассмотрим из каких частей состоит текст этой программы.

Строка "procedure Hello is" является заголовком процедуры и она указывает имя нашей процедуры.

Далее, между зарезервированными словами begin и end, располагается тело процедуры Hello.

В этом примере тело процедуры очень простое и состоит из единственной инструкции "Put_Line("Hello World!");".

Эта инструкция осуществляет вывод приветствия на экран, вызывая процедуру Put_Line.

Процедура Put_Line располагается в пакете текстового ввода/вывода Ada.Text_IO, и становится доступной благодаря спецификации контекста в инструкциях "with Ada.Text_IO;" и "use Ada.Text_IO;" (спецификация контекста необходима для указания используемых библиотечных модулей). Здесь, спецификатор контекста состоит из двух спецификаторов: спецификатора совместности with и спецификатора использования use. Cпецификатор совместности with указывает компоненты которые будут использоваться в данном компилируемом модуле. Cпецификатор использования use делает имена используемых объектов непосредственно доступными в данном компилируемом модуле.

Программа Hello настолько проста, что в ней нет ни переменных, ни какой-либо обработки данных, поэтому, несколько забегая вперед, приведем общий вид процедуры.

with ... ; use ... ;    спецификаторы контекста, указывающие используемые модули (могут отсутствовать)
      
procedure < имя процедуры > ... is    спецификация процедуры, определяющая имя процедуры и ее параметры (если они есть)
      
. . .   описательная (или декларативная) часть, которая может содержать описания типов, переменных, констант и подпрограмм
      
begin     
. . .    исполняемая часть процедуры, которая описывает алгоритм работы процедуры
      
end < имя процедуры >;    здесь, указание имени процедуры не является обязательным
<


Необходимо заметить, что в отличие от языков С/C++, которые имеет функцию main, и языка Паскаль, который имеет program, в Аде, любая процедура без параметров может быть подпрограммой main

(другими словами - головной программой). Таким образом, процедура без параметров может быть выбрана как головная программа во время линковки.

Теперь, приведем еще один простой пример, в котором, для выдачи сообщения приветствия, используется ранее рассмотренная процедура Hello:

with Hello; -- указывает на использование показанной ранее -- процедуры Hello

procedure Use_Hello is

begin

Hello; -- вызов процедуры Hello end Use_Hello;


Содержание раздела