Справочное руководство по языку Ада-83


Контекст разрешения совмещения - часть 2


е) правила, данные в разд. 6.6 по разрешению вызовов совмещенных подпрограмм, в разд. 4.6 по неявным преобразованиям универсальных выражений, в разд. 3.6.1 по интерпретации дискретных диапазонов с границами, имеющими универсальный тип, в разд. 4.1.3 по интерпретации расширенного имени, чей префикс обозначает подпрограмму или оператор принятия.

Имена подпрограмм, используемые в качестве аргументов прагмы, следуют другому правилу: прагма может применяться для нескольких совмещенных подпрограмм, как пояснено в разд. 6.3.2 для прагмы INLINE, в разд. 11.7 для прагмы SUPPRESS и в разд. 13.9 для прагмы INTERFACE.

Подобно данные в спецификаторах контекста (см. 10.1.1) и спецификаторах адреса простые имена следуют другим правилам.

Примечание.

Если существует только одна возможная интерпретация, то идентификатор обозначает соответствующее понятие. Однако данное утверждение не означает, что это вхождение обязательно правильно, так как существуют другие требования, которые не учитываются при разрешении совмещения: например, являетсятти выражение статическим, каковы виды параметров, является ли объект константой, выполняются ли правила согласования, является ли вхождение в спецификатор представления предписывающим, каков порядок предвыполне-ния и т. п.

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

Спецификация параметра цикла есть описание и, следовательно, полный контекст.

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

Ссылки:

агрегат 4.3, базовая операция 3.3, вход 9.5, выражение 4.4, генератор 4.8, идентификатор 2.3, имя 4.1, исключение 11, класс типа 3.3, литерал 4.2, литерал перечисления 3.5.1, литерал




Начало  Назад  Вперед