Справочное руководство по языку Ада-83

         

c предопределенное окружение языка


Ниже дана спецификация пакета STANDARD, содержащая все предопределенные в языке идентификаторы. Соответствующее тело пакета определено реализацией и не показано.

Предопределенные для описанных в пакете STANDARD типов операции даны в виде комментариев, так как они описаны неявно. Для псевдоимен анонимных типов

(универсальный-вещественный,

например), а также для неопределенной информации (например,

определен-реализацией

и

любой-фиксированный-тип)

используется курсив.

package STANDARD is

type BOOLEAN is (FALSE, TRUE);

-- Предопределенными операциями отношения -- для этого типа являются следующие:

-- function "=" (LEFT, RIGHT : BOOLEAN) return BOOLEAN; -- function "/=" (LEFT, RIGHT : BOOLEAN) return BOOLEAN; -- function "<" (LEFT, RIGHT : BOOLEAN) return BOOLEAN; -- function "<=" (LEFT, RIGHT : BOOLEAN) return BOOLEAN; -- function ">" (LEFT, RIGHT : BOOLEAN) return BOOLEAN; -- function ">=" (LEFT, RIGHT : BOOLEAN) return BOOLEAN;

-- Предопределенными логическими операциями -- для этого типа являются следующие:



-- function "and" (LEFT, RIGHT : BOOLEAN) return BOOLEAN; -- function "or" (LEFT, RIGHT : BOOLEAN) return BOOLEAN; -- function "xor" (LEFT, RIGHT : BOOLEAN) return BOOLEAN;

-- function "not" (RIGHT : BOOLEAN) return BOOLEAN;

-- Предопределен универсальный тип универсальный, целый.

type INTEGER is определен-реализацией;

-- Для этого типа предопределены следующие операции:

-- function "=" (LEFT, RIGHT : INTEGER) return BOOLEAN; -- function "/=" (LEFT, RIGHT : INTEGER) return BOOLEAN; -- function "<" (LEFT, RIGHT : INTEGER) return BOOLEAN; -- function "<=" (LEFT, RIGHT : INTEGER) return BOOLEAN; -- function ">" (LEFT, RIGHT : INTEGER) return BOOLEAN; -- function ">=" (LEFT, RIGHT : INTEGER) return BOOLEAN;

-- function "+" (RIGHT : INTEGER) return INTEGER; -- function "-" (RIGHT : INTEGER) return INTEGER; -- function "abs" (RIGHT : INTEGER) return INTEGER;


-- function "+" (LEFT, RIGHT : INTEGER) return INTEGER; -- function "-" (LEFT, RIGHT : INTEGER) return INTEGER; -- function "*" (LEFT, RIGHT : INTEGER) return INTEGER; -- function "/" (LEFT, RIGHT : INTEGER) return INTEGER; -- function "rem" (LEFT, RIGHT : INTEGER) return INTEGER; -- function "mod" (LEFT, RIGHT : INTEGER) return INTEGER;

-- function "**" (LEFT : INTEGER; RIGHT : INTEGER) return INTEGER;

-- Реализация может обеспечить другие предопределенные целые типы. Рекомендуется, чтобы -- имена этих дополнительных типов оканчивались на INTEGER, например, SHORT_INTEGER или -- LONG_INTEGER. Спецификация каждой операции для типа универсальный-целый или для -- любого дополнительного предопределенного целого типа может быть получена заменой -- идентификатора INTEGER на имя этого типа в спецификации соответствующей операции для -- типа INTEGER исключая правый операнд операции возведения в степень.

-- Универсальный тип универсальный-вещественный предопределен.

type FLOAT is определен-реализацией;

-- Для этого типа предопределены следующие операции:

-- function "=" (LEFT, RIGHT : FLOAT) return BOOLEAN; -- function "/=" (LEFT, RIGHT : FLOAT) return BOOLEAN; -- function "<" (LEFT, RIGHT : FLOAT) return BOOLEAN; -- function "<=" (LEFT, RIGHT : FLOAT) return BOOLEAN; -- function ">" (LEFT, RIGHT : FLOAT) return BOOLEAN; -- function ">=" (LEFT, RIGHT : FLOAT) return BOOLEAN;

-- function "+" (RIGHT : FLOAT) return FLOAT; -- function "-" (RIGHT : FLOAT) return FLOAT; -- function "abs" (RIGHT : FLOAT) return FLOAT;

-- function "+" (LEFT, RIGHT : FLOAT) return FLOAT; -- function "-" (LEFT, RIGHT : FLOAT) return FLOAT; -- function "*" (LEFT, RIGHT : FLOAT) return FLOAT; -- function "/" (LEFT, RIGHT : FLOAT) return FLOAT;

-- function "**" (LEFT : FLOAT; RIGHT : INTEGER) return FLOAT;



for CHARACTER use -- 128 ASCII character set without holes (0, 1, 2, 3, 4, 5, ..., 125, 126, 127);

-- Предопределенные операции для типа CHARACTER те же самые, что и для любого перечислимого типа.

package ASCII is

-- Управляющие символы:

NUL : constant CHARACTER := nul; SOH : constant CHARACTER := soh: STX : constant CHARACTER := stx; ETX : constant CHARACTER := etx; EOT : constant CHARACTER := eot; ENQ : constant CHARACTER := enq: ACK : constant CHARACTER := ack; BEL : constant CHARACTER := bel; BS : constant CHARACTER := bs; HT : constant CHARACTER := ht; LF : constant CHARACTER := lf; VT : constant CHARACTER := vt; FF : constant CHARACTER := ff; CR : constant CHARACTER := cr; SO : constant CHARACTER := so; SI : constant CHARACTER := si; DLE : constant CHARACTER := dle; DC1 : constant CHARACTER := dc1; DC2 : constant CHARACTER := dc2; DC3 : constant CHARACTER := dc3; DC4 : constant CHARACTER := dc4; NAK : constant CHARACTER := nak; SYN : constant CHARACTER := syn; ETB : constant CHARACTER := etb; CAN : constant CHARACTER := can; EM : constant CHARACTER := em: SUB : constant CHARACTER := sub; ESC : constant CHARACTER := esc; FS : constant CHARACTER := fs; GS : constant CHARACTER := gs; RS : constant CHARACTER := rs; US : constant CHARACTER := us; DEL : constant CHARACTER := del;

-- Другие символы:

EXCLAM : constant CHARACTER := '!'; QUOTATION : constant CHARACTER := '"'; SHARP : constant CHARACTER := '#'; DOLLAR : constant CHARACTER := '$'; PERCENT : constant CHARACTER := '%'; AMPERSAND : constant CHARACTER := '&'; COLON : constant CHARACTER := ':'; SEMICOLON : constant CHARACTER := ';'; QUERY : constant CHARACTER := '?'; AT_SIGN : constant CHARACTER := '@'; L_BRACKET: constant CHARACTER := '['; BACK_SLASH: constant CHARACTER := '\'; R_BRACKET: constant CHARACTER := ']'; CIRCUMFLEX: constant CHARACTER := '~'; UNDERLINE: constant CHARACTER := '_'; GRAVE : constant CHARACTER := '`'; L_BRACE : constant CHARACTER := '{'; BAR : constant CHARACTER := '|'; R_BRACE : constant CHARACTER := '}'; TILDE : constant CHARACTER := '~';



-- Строчные буквы:

LC_A : constant CHARACTER := 'a'; ... LC_Z : constant CHARACTER := 'z';

end ASCII;

-- Предопределенные подтипы:

subtype NATURAL is INTEGER range 0 .. INTEGER'LAST; subtype POSITIVE is INTEGER range 1 .. INTEGER'LAST;

-- Предопределенный строковой тип:

type STRING is array(POSITIVE range <>) of CHARACTER;

pragma PACK(STRING);

-- Следующие операции для этого типа предопределены:

-- function "=" (LEFT, RIGHT : STRING) return BOOLEAN; -- function "/=" (LEFT, RIGHT : STRING) return BOOLEAN; -- function "<" (LEFT, RIGHT : STRING) return BOOLEAN; -- function "<=" (LEFT, RIGHT : STRING) return BOOLEAN; -- function ">" (LEFT, RIGHT : STRING) return BOOLEAN; -- function ">=" (LEFT, RIGHT : STRING) return BOOLEAN;

-- function "&" (LEFT : STRING; RIGHT : STRING) return STRING; -- function "&" (LEFT : CHARACTER; RIGHT : STRING) return STRING; -- function "&" (LEFT : STRING; RIGHT : CHARACTER) return STRING; -- function "&" (LEFT : CHARACTER; RIGHT : CHARACTER) return STRING;

type DURATION is delta определен-реализацией range определен-реализацией;

-- Для типа DURATION предопределены все те операции, -- что и для любого фиксированного типа

-- Предопределены следующие исключения:

CONSTRAINT_ERROR : exception; NUMERIC_ERROR : exception; PROGRAM_ERROR : exception; STORAGE_ERROR : exception; TASKING_ERROR : exception;

end STANDARD;

Некоторые аспекты предопределенных понятий не могут быть выражены в терминах самого языка. Хотя, например, перечислимый тип BOOLEAN может быть записан посредством двух литералов перечисления FALSE и TRUE, формы управления промежуточной проверкой в самом языке выражены быть не могут.

Примечание.

Определением языка предопределены следующие библиотечные модули:


  • пакет CALENDAR

    пакет SYSTEM

    пакет MACHINE_CODE(ecnu он предусмотрен)

    настраиваемая процедура UNCHECKED_DEALLOCATION

    настраиваемая функция UNCHECKED_CONVERSION

    настраиваемый пакет SEQUENTIAL_IO

    настраиваемый пакет DIRECT_IO

    пакет TEXT_IO

    пакет IO_EXCEPTIONS

    пакет LOW_LEVEL_IO


    Пред.  Уровень выше  След.

    Приложение B.

    ПРАГМЫ, ПРЕДОПРЕДЕЛЕННЫЕ В ЯЗЫКЕ  
    Содержание  Приложение D.

    ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ

    Содержание раздела