14.1 зона и область действия описанияПравила видимости ( visibility rules ) основываются в языке на понятиях зоны описания и области действия описания. Зона описания ( region declarative) - часть текста программы, внутри которой имеется : • любое описание, отличное от описания перечисления; • оператор блока; • оператор цикла; • оператор принятия (accept); • обработчик исключений. Зона описания может включать также дополнительно следую-щее: • если в зоне описания имеется след тела, то - соответствующее тело; • если в зоне описания имеется описание типа записи, то - соответствующий контекст представления записи; • если в зоне описания имеется описание библиотечного модуля, то -описания всех его дочерних модулей ; Каждая зона описания рассматривается как логически непрерывная часть текста программы. Зоны описания могут быть вложены в другие зоны описания, например при вложенности пакетов, подпрограмм, задач, блоков и др., а также если в них имеются описания перечисляемых типов, оператор цикла или оператор принятия accept. Е 170 Ада 95. Введение в программирование Описание находится непосредственно в описательной части, если его зона описания есть внутренняя зона описания, то есть является вложенной. Локальное описание находится непосредственно внутри зоны описания. Глобальное описание находится внутри другого описания, являющимся внешним по отношению к рассматриваемому. Например, зона описания библиотечного пакета Standard содержит глобальные описания, так как этот пакет является внешним для всех библиотечных модулей. Дочерние модули от библиотечного считаются находящимися внутри зоны описания родительского модуля, несмотря на то , что они располагаются вне спецификации или тела родительского модуля. Все библиотечные модули являются потомками (дочерними модулями ) пакета Standard и находятся в его зоне описания . Они не находятся внутри спецификации ( тела ) пакета Standard , но находятся внутри его зоны описания. Область действия описания ( scope of declarations ) - часть текста программы, где и только где имеют силу описания : обьявленные описания идентификатора, символьного литерала, знака операции. Область действия описания, находящегося непосредственно в зоне описания, распространяется от начала описания до конца зоны. Этот раздел называется непосредственной областью действия описания. Для перечисленных ниже описаний область действия распространяет-ся за пределы непосредственной области действия: • описание в видимом разделе описания пакета; • описание входа ; • описание компоненты ; • спецификация дискриминанта; • спецификация параметра; • описание параметра настройки. Если отсутствует описание подпрограммы, то спецификация подпрограммы, заданная в теле подпрограммы или следе тела, действует как описание и распространяется как спецификация параметра в указанном выше списке описаний. Видимая часть описания - часть текста описания, содержащего описания, видимые из-вне. Приватная часть описания - не видима извне. Видимая и невидимая части описания определяются только для программных модулей и сложных типов. Область действия всегда содержит непосредственную область действия. В дополнение для данного описания, которое имеет место непо-
171 Глава 14. Правила видимости средственно в видимой части внешнего описания или есть публичным дочерним модулем для внешнего описания, область действия данного описания распространяется до конца зоны внешнего описания , исключая область действия библиотечных элементов. В языке существует нотация для введения видимых описаний, которые не являются прямо видимыми. Например, спецификация параметров находится в видимой части описания подпрограммы и они могут использоваться при помощи именованной нотации при вызове подпрограммы. В то же время, описание ресурсов из видимой части пакета может обозначаться через расширенное имя при вызове из-вне пакета или может быть сделано непосредственно видимым с помощью спецификатора Use. |
| Оглавление| |