Copyright (C) А.Гавва V-0.4w май 2004

3. Спецификация пакета System.



package System is
pragma Pure (System);

    type Name is Определяемый_Реализацией_Перечислимый_Тип;
    System_Name : constant Name := Определяется_Реализацией;



    --  Системно-зависимые именованные числа

    Min_Int                : constant := Root_Integer'First;
    Max_Int                : constant := Root_Integer'Last;

    Max_Binary_Modulus     : constant := Определяется_Реализацией;
    Max_Nonbinary_Modulus  : constant := Определяется_Реализацией;

    Max_Base_Digits        : constant := Root_Real'Digits;
    Max_Digits             : constant := Определяется_Реализацией;

    Max_Mantissa           : constant := Определяется_Реализацией;
    Fine_Delta             : constant := Определяется_Реализацией;

    Tick                   : constant := Определяется_Реализацией;



    --  Описания относящиеся к хранению информации в памяти

    type Address is Определяется_Реализацией;  -- обычно, приватный тип
    Null_Address : constant Address;

    Storage_Unit           : constant := Определяется_Реализацией;
    Word_Size              : constant := Определяется_Реализацией * Storage_Unit;
    Memory_Size            : constant := Определяется_Реализацией;



    --  Сравнение адресов

    function "<"  (Left, Right : Address) return Boolean;
    function "<=" (Left, Right : Address) return Boolean;
    function ">"  (Left, Right : Address) return Boolean;
    function ">=" (Left, Right : Address) return Boolean;
    function "="  (Left, Right : Address) return Boolean;



    --  Другие системно-зависимые описания

    type Bit_Order is (High_Order_First, Low_Order_First);
    Default_Bit_Order : constant Bit_Order;



    --  Описания относящиеся к приоритетам (RM D.1)

    subtype Any_Priority is Integer range Определяется_Реализацией;

    subtype Priority is Any_Priority
        range Any_Priority'First..Определяется_Реализацией;

    subtype Interrupt_Priority is Any_Priority
        range Priority'Last + 1 .. Any_Priority'Last;

    Default_Priority : constant Priority :=
        (Priority'First + Priority'Last) / 2;

private

    --  Стандартом языка не определено

end System;


Copyright (C) А.Гавва V-0.4w май 2004