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

H.7 Расширения аспектов Global и Global'Class

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

Синтаксис

Следующий дополнительный синтаксис предназначен для переопределения режима формального параметра, чтобы отразить косвенное влияние на переменные, доступные из формального параметра с помощью одной или нескольких дескрипций доступа к значению:
extended_global_mode ::=
переопределение basic_global_mode

Правила разрешения имен

object_имя, связанное с режимом переопределение, должно статически обозначать формальный объект или формальный параметр связанной сущности.

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

Наличие ключевого слова переопределение в режиме глобального доступа указывает, что спецификация переопределяет режим формального параметра на другой режим, отражая общее воздействие вызова вызываемой сущности на состояние, связанное с соответствующим фактическим параметром.
Как описано в 6.1.2, следующие правила определяются в терминах операций, выполняемых или выполняемых от имени сущности.
Аспект Global для подтипа идентифицирует глобальные переменные, которые могут быть обращены во время инициализации по умолчанию, корректировки в рамках присваивания, финализации объекта подтипа или преобразования в подтип, включая вычисление любых выражений утверждений, которые применяются. Если не указано для первого подтипа производного типа, аспект по умолчанию — аспект предкового подтипа; если не указано для непроизводного составного первого подтипа, аспект по умолчанию — аспект содержащего библиотечного модуля; если не указано для непроизводного элементарного первого подтипа (или скалярного базового подтипа), аспект по умолчанию — null в отсутствие предиката (или когда предикат статически истиннен), и аспект содержащего библиотечного модуля в противном случае. Если не указан для непервого подтипа S, аспект Global по умолчанию — аспект подтипа, идентифицированного в subtype_indication, определяющего S.
Аспект Global'Class может быть указан для первого подтипа помеченного типа T, указывая верхнюю границу аспекта Global любого потомка T. Если не указан, он по умолчанию устанавливается как Неопределено.

Правила законности

Для помеченного подтипа T каждый режим его аспекта Global должен идентифицировать подмножество переменных, идентифицированных либо соответствующим режимом, либо режимом в выход аспекта Global'Class первого подтипа любого предка T.


Spec-Zone.ru

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