Spec-Zone.ru › Ada 95
Справочник по Ada 95

13.12 Ограничения pragma

Предикат Restrictions выражает намерение пользователя соблюдать определённые ограничения. Это может способствовать созданию более простых сред выполнения.

Синтаксис

Форма предиката Restrictions следующая:
pragma Restrictions(ограничение{, ограничение});
ограничение ::= идентификатор_ограничения
| идентификатор_параметра_ограничения => выражение

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

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

Правила легальности

Если не указано иное для конкретного ограничения, выражение должно быть статическим и его значение должно быть неотрицательным.

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

Набор ограничений определяется реализацией.

Правила после компиляции

Предикат Restrictions является конфигурационным предикатом; если не указано иное для конкретного ограничения, раздел должен подчиняться ограничению, если pragma Restrictions применяется к любому модулю, включённому в раздел.
Для проверки того, содержит ли раздел конструкции, нарушающие какое-либо ограничение (если не указано иное для конкретного ограничения):
  • Примеры обобщений логически раскрываются в точке инстанцирования;
  • Если объект типа объявлен или выделен и не инициализирован явно, то все выражения, появляющиеся в определении типа и всех его предков, предполагаются используемыми;
  • Выражение по умолчанию для формального параметра или формального объекта обобщения считается используемым только тогда, когда соответствующий фактический параметр не указан в данном вызове или инстанцировании.

Разрешения реализации

Реализация может установить ограничения на поддерживаемые значения выражения и ограничения на поддерживаемые комбинации ограничений. Последствия нарушения таких ограничений определяются реализацией.
Реализация имеет право опустить проверки ограничений для кода, который распознаётся на этапе компиляции как недостижимый и для которого не генерируется код.
В случае, если принудительное выполнение ограничения не требуется до выполнения, реализация может, тем не менее, принудительно выполнить ограничение перед выполнением раздела, к которому относится ограничение, при условии, что любое выполнение раздела будет нарушать ограничение.
ПРИМЕЧАНИЯ
28 Ограничения, предназначенные для облегчения создания эффективных систем выполнения задач, определены в D.7. Ограничения, связанные с безопасностью и защитой, определены в H.4.
29 Реализация должна обеспечивать соблюдение ограничений в тех случаях, когда это необходимо, даже если она выбирает не использовать преимущества ограничений с точки зрения эффективности.


Spec-Zone.ru

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