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

1.1.3 Соответствие реализации стандарту

Требования к реализации

Соответствующая реализация должна:
  • Переводить и правильно выполнять законные программы, написанные на языке Ada, при условии, что они не превышают возможностей реализации;
  • Определять все программы или программные модули, которые превышают возможности реализации (или генерировать соответствующее исключение во время выполнения);
  • Определять все программы или программные модули, содержащие ошибки, обнаружение которых требуется этим международным стандартом;
  • Предоставлять все библиотечные модули, определенные языком и требуемые этим международным стандартом;
  • Не содержать отклонений, кроме явно разрешенных этим международным стандартом, или таких, которые невозможно или непрактично избежать, учитывая среду выполнения реализации;
  • Указывать все такие отклонения в соответствии с предписаниями этого международного стандарта.
Внешнее воздействие выполнения программы Ada определяется в терминах её взаимодействия с внешней средой. Следующее определяется как внешнее взаимодействие:
  • Любое взаимодействие с внешним файлом (см. A.7);
  • Выполнение определённых операторов_кода (см. 13.8); которые операторы_кода вызывают внешние взаимодействия определяется реализацией.
  • Любой вызов импортированной подпрограммы (см. Приложение B), включая любые передаваемые ей параметры;
  • Любой возвращаемый результат или распространяемое исключение из основной подпрограммы (см. 10.2) или экспортированной подпрограммы (см. Приложение B) внешнему вызывающему объекту;
  • Любой считывание или обновление атомного или изменчивого объекта (см. C.6);
  • Значения импортированных и экспортированных объектов (см. Приложение B) на момент любого другого взаимодействия с внешней средой.
Соответствующая реализация этого международного стандарта должна создавать для выполнения заданной программы Ada набор взаимодействий с внешней средой, порядок и время которых соответствуют определениям и требованиям этого международного стандарта для семантики данной программы.
Реализация, соответствующая этому стандарту, должна поддерживать каждую возможность, необходимую для базового языка, как указано. Кроме того, реализация, соответствующая этому стандарту, может соответствовать одному или нескольким приложениям по специальным потребностям (или ни одному). Соответствие приложению по специальным потребностям означает, что каждая возможность, требуемая приложением, предоставлена как указано.
Реализация, соответствующая этому международному стандарту, может предоставлять дополнительные аспекты, атрибуты, библиотечные модули и псевдонимы. Однако она не должна предоставлять какой-либо аспект, атрибут, библиотечный модуль или псевдоним с тем же именем, что и аспект, атрибут, библиотечный модуль или псевдоним (соответственно) указанные в приложении по специальным потребностям, если предоставленная конструкция не указана в приложении по специальным потребностям или имеет меньшие возможности, чем это требуется приложением. Программа, которая пытается использовать неподдерживаемую функцию приложения, должна быть идентифицирована реализацией до времени выполнения или должна вызвать исключение во время выполнения.

Требования к документации

Некоторые аспекты семантики определены как определяемые реализацией или неопределённые. В таких случаях набор возможных эффектов указан, и реализация может выбрать любой эффект в наборе. Реализации должны документировать своё поведение в ситуациях, определяемых реализацией, но документация не требуется для неопределенных ситуаций. Характеристики, определяемые реализацией, обобщены в M.2.
Реализация может выбрать документацию определяемого ею поведения, либо документировав, что происходит в общем случае, либо предоставив некоторый механизм для пользователя, чтобы определить, что произойдёт в конкретном случае.

Рекомендации по реализации

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


Spec-Zone.ru

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