Статус документа
Статус документа

ГОСТ 27831-88 (ИСО 8652-87) Язык программирования АДА

     3.9. Разделы описаний


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

раздел_описаний : : = {основной_элемент_описания}

{дополнительный_элемент_описания}

основной_элемент_описания : : = основное_описание

спецификатор_представления

спецификатор_использования

дополнительный_элемент_описания : : = тело

описание_подпрограммы описание_пакета

описание_задачи

описание_настройки

спецификатор_использования конкретизация_настройки

тело : : = соответствующее_тело след_тела

соответствующее_тело : : = тело_подпрограммы

тело_пакета тело_задачи


Предвыполнение раздела описаний состоит из предвыполнения элементов описания, если они есть, в порядке их следования в разделе описаний. После своего предвыполнения элемент описания называется предвыполненным. До окончания своего предвыполнения (включая фазу перед предвыполнением) элемент описания еще не предвыполнен.

Для нескольких форм элементов описания правила языка (в частности, правило определения области действия и правила видимости) таковы, что использование понятия до предвыполнения элемента описания, который объявляет это понятие, либо невозможно, либо является неправильным. Например, невозможно использование имени типа для описания объекта, если соответствующее описание типа еще не предвыполнено. В случае тел осуществляются следующие проверки:

При вызове подпрограммы проверяется, предвыполнено ли уже тело подпрограммы.

При активизации задачи проверяется, предвыполнено ли уже тело соответствующего задачного модуля.

При конкретизации настраиваемого модуля, имеющего тело, проверяется, предвыполнено ли уже тело настраиваемого модуля.

Если одна из этих проверок дает отрицательный результат, возбуждается исключение PROGRAM_ERROR.

Если описание подпрограммы, описание пакета, описание задачи или описание настраиваемого понятия является элементом описания данного раздела описаний, то тело (если оно существует) программного модуля, описанного элементом описания, должно само быть элементом описания этого раздела описаний (и должно помещаться ниже). Если тело представлено следом тела, то для этого программного модуля необходим раздельно компилируемый субмодуль, содержащий соответствующее тело (см. 10.2).