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