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

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) следующим образом:
  • Для вызова (незащищённой) подпрограммы с явным телом, выполняется проверка, что тело уже выполнено. Эта проверка и вычисления фактических параметров вызова выполняются в произвольном порядке.
  • Для вызова защищённой операции защищённого типа (с телом — проверка не выполняется, если защищённый тип импортирован — см. B.1), выполняется проверка, что protected_body уже выполнен. Эта проверка и вычисления фактических параметров вызова выполняются в произвольном порядке.
  • Для активации задачи, активизатор выполняет проверку, что task_body уже выполнен. Если две или более задачи активируются одновременно (см. 9.2), как результат выполнения declarative_part или инициализации объекта, созданного посредством аллокатора, эта проверка выполняется для всех задач перед активацией любой из них.
  • Для инстанцирования обобщённого элемента, имеющего тело, выполняется проверка, что это тело уже выполнено. Эта проверка и вычисление любых explicit_generic_actual_parameter инстанцирования выполняются в произвольном порядке.
Исключение Program_Error генерируется, если любая из этих проверок завершится неудачно.


Spec-Zone.ru

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