Справочник по Ada 2005
5.6 Блочные операторы
Оператор block_statement заключает в себе обработанную последовательность операторов, которая может быть необязательно предваряется определяющей частью.
Синтаксис
block_statement ::=
[block_идентификатор_оператора:]
[declare
определяющая_часть]
begin
обработанная_последовательность_операторов
end [block_идентификатор];
[block_идентификатор_оператора:]
[declare
определяющая_часть]
begin
обработанная_последовательность_операторов
end [block_идентификатор];
Если у оператора block_statement есть block_идентификатор_оператора, то идентификатор должен повторяться после end; в противном случае, идентификатор после end отсутствует.
Статическая семантика
Оператор block_statement, у которого нет явной определяющей части, имеет неявную пустую определяющую часть.
Динамическая семантика
Выполнение оператора block_statement включает в себя разработку его определяющей части, за которым следует выполнение его обработанной последовательности операторов.
Примеры
Пример оператора блока с локальной переменной:
Swap:
declare
Temp : Integer;
begin
Temp := V; V := U; U := Temp;
end Swap;
declare
Temp : Integer;
begin
Temp := V; V := U; U := Temp;
end Swap;