Справочник по Ada 2005
3.11 Декларативные части
Часть declarative_part содержит declarative_item (возможно, ни одного).
Синтаксис
Статическая семантика
Динамическая семантика
Выполнение declarative_part состоит из выполнения declarative_item, если таковые имеются, в порядке их следования в declarative_part.
Выполняемый конструкт находится в выполненном состоянии после нормального завершения его выполнения. До этого он еще не выполнен.
Для конструкции, которая пытается использовать тело, выполняется проверка (Elaboration_Check) следующим образом:
- Для вызова (не защищенной) подпрограммы с явным телом выполняется проверка, что тело уже выполнено. Эта проверка и вычисления фактических параметров вызова выполняются в произвольном порядке.
- Для вызова защищенной операции защищенного типа (имеющего тело — проверка не выполняется, если для защищенного типа применён pragma Import), выполняется проверка, что protected_body уже выполнен. Эта проверка и вычисления фактических параметров вызова выполняются в произвольном порядке.
- Для активации задачи выполняется проверка активатором, что task_body уже выполнен. Если две или более задачи активируются вместе (см. 9.2), в результате выполнения declarative_part или инициализации объекта, созданного с помощью аллокатора, эта проверка выполняется для всех их перед активацией любой из них.
- Для экземпляризации обобщенного блока, имеющего тело, выполняется проверка, что это тело уже выполнено. Эта проверка и вычисление любых explicit_generic_actual_parameter экземпляризации выполняются в произвольном порядке.
Исключение Program_Error возбуждается, если любая из этих проверок терпит неудачу.