Системный пакет
Для каждой реализации имеется предопределенный библиотечный пакет SYSTEM, который включает определения некоторых характеристик, зависящих от конфигурации. Спецификация пакета зависит от реализации и должна быть приведена в приложении F. Видимый раздел этого пакета должен содержать по крайней мере следующие описания:
package SYSTEM is
type ADDRESS is определен-реализацией;
type NAME is определенный-реализацией-перечислимого-типа;
SYSTEM-NAME : constant NAME := определен - реализацией;
STORAGE-UNIT : constant := определен-реализацией;
MEMORY-SIZE : constant := определен-реализацией;
-- зависящие от системы именованные числа: MIN-INT : constant := определен-реализацией;
МАХ-INT : constant := определен-реализацией;
MAX-DIGITS : constant := определен-реализацией;
MAX-MANTISSA : constant := определен-реализацией;
FINE-DELTA : constant := определен-реализацией;
TICK : constant := определен-реализацией;
-- другие зависящие от системы описания: subtype PRIORITY is INTEGER range определен-реализацией;
end SYSTEM;
Тип ADDRESS — это тип адресов, задаваемых спецификаторами адреса; к этому же типу принадлежат значения, вырабатываемые атрибутом ADDRESS. Значения перечислимого типа NAME — это имена альтернативных машинных конфигураций, обрабатываемых реализацией;
одно из них — константа SYSTEM-NAME. Именованное число STORAGE-UNIT равно числу разрядов в кванте памяти, а именованное число MEMORY-SIZE — числу квантов памяти, доступных в конфигурации; эти именованные числа имеют
универсальный-целый
тип.
Альтернативная форма пакета SYSTEM с другими значениями SYSTEM-NAME, STORAGE-UNIT и MEMORY-SIZE может быть получена использованием соответствующих прагм. Эти прагмы допустимы только в начале компиляции до первого компилируемого модуля (если он есть) компиляции.
pragma
SYSTEM-NAME (литерал-перечисления);
В результате выполнения этой прагмы заданный идентификатором литерал перечисления будет использован для определения константы SYSTEM-NAME.