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

H.3.1 Предикат Reviewable

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

Синтаксис

Форма предиката Reviewable следующая:
pragma Reviewable;

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

Предикат Reviewable является конфигурационным предикатом. Он применяется ко всем compilation_unit элементам, включенным в раздел.

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

Реализация должна предоставлять следующую информацию для любого модуля компиляции, к которому применяется такой предикат:
  • Местоположение остаточных проверок, сгенерированных компилятором;
  • Идентификатор любого конструктора с определённой в языке проверкой, которая распознаётся до времени выполнения как определённо неудачная при выполнении (даже если генерация проверок времени выполнения была подавлена);
  • Для каждой ссылки на скалярный объект, идентификация ссылки как «известная как инициализированная» или «возможно неинициализированная», независимо от того, применяется ли предикат Normalize_Scalars;
  • Местоположение неявного вызова служебных программ времени выполнения;
  • Список объектного кода, включая:
  • Машинные инструкции с относительными смещениями;
  • Местоположение каждого объекта данных во время его существования;
  • Соответствие с исходной программой, включая идентификацию кода, сгенерированного по каждой декларации и каждому оператору.
  • Идентификатор каждого конструктора, для которого реализация обнаруживает возможность ошибочного выполнения;
  • Для каждой подпрограммы, блока, задачи или другого конструктора, реализованного путём резервирования и последующего освобождения области в стеке времени выполнения, идентификация длины фиксированной части области и указание, резервируется ли часть переменной длины в стеке или в динамически управляемой области памяти.
Реализация должна предоставлять следующую информацию для любого раздела, к которому применяется предикат:
  • Список объектного кода всего раздела, включая код инициализации и завершения, а также компоненты системы времени выполнения, и с идентификацией тех инструкций и данных, которые будут перемещены во время загрузки;
  • Описание модели времени выполнения, относящейся к разделу.
Реализация должна предоставлять информацию о потоках управления и данных как внутри каждого модуля компиляции, так и между модулями компиляции раздела.

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

Реализация должна предоставлять указанную выше информацию как в удобочитаемом, так и в машиночитаемом формате и должна документировать последний, чтобы облегчить дальнейшую обработку автоматизированными инструментами.
Списка объектного кода должны быть предоставлены как в символическом формате, так и в соответствующем числовом формате (например, шестнадцатеричном или восьмеричном).
ПРИМЕЧАНИЯ
6 Порядок разработки библиотек будет документирован даже в отсутствие предиката pragma Reviewable (см. 10.2).


Spec-Zone.ru

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