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

13.12 Ограничения директивы pragma

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

Синтаксис

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

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

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

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

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

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

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

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

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

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

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


Spec-Zone.ru

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