Spec-Zone.ru › Ada 2022
Руководство по Ada (Ada 2022)

3.11 Разделы описания

Раздел описания содержит элементы описания (возможно, ни одного).

Синтаксис

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

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

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

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

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


Spec-Zone.ru

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