Spec-Zone.ru › Ada 2005
Справочник по Ada 2005

3.11 Декларативные части

Часть declarative_part содержит declarative_item (возможно, ни одного).

Синтаксис

declarative_part ::= {declarative_item}
declarative_item ::=
basic_declarative_item | body
basic_declarative_item ::=
basic_declaration | aspect_clause | use_clause
body ::= proper_body | body_stub
proper_body ::=
subprogram_body | package_body | task_body | protected_body

Статическая семантика

Список declarative_item в declarative_part называется списком объявлений declarative_part.

Динамическая семантика

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


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API