A ,

Б ,

в ,

Т ,

'д',

'е',

Е ,

Ж

'з',

'й',

'й',

'к',

'л',

'м',

'н',

'о'

'п',

'р',

'с',

'т'.

'у',

'ф',

'х',

'ц'

'ч',

'ш',

'ш',

' 1> ’,

'ы',

'ь',

'э',

'ю'

'я',

а >

’б',

в ,

1 1 г ,

'д',

е ,

• е ,

ж ,

з ,

и ,

'й',

к ,

л ,

м ,

н .

о ,

п ,

'р',

с ,

Т ,

У ,

'ф',

X !

'ц',

ч ,

ш ,

ш',

Ъ ,

ы ,

ь ,

э ,

ю ,

Я ,

'зб);






for CHARACTER use - - 256 символов набора

(О, 1,2, 3, 4, 5,..., 193, 194, 255);

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

package ASCII is

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

NUL : constant CHARACTER : = nul; - - пусто

SOH : constant CHARACTER : = so/i; - - начало заголовка

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; - - возврат на шаг

НТ : constant CHARACTER : = hr, - - горизонтальная табуляция

LF : constant CHARACTER : = If-, - - перевод строки

VT : constant CHARACTER : = vt; - - вертикальная табуляция

FF : constant CHARACTER : = ff; - - перевод формата

CR : constant CHARACTER : = cr; - - возврат каретки

SO : constant CHARACTER : = so; - - выход

SI : constant CHARACTER : = si; - - вход

DLE : constant CHARACTER : = die; - - авторегистр 1

DC1 ; constant CHARACTER : = del: - - символы устройства

DC2 : constant CHARACTER : = dc2;

DC3 : constant CHARACTER : = dc3;

DC4 : constant CHARACTER : = dc4, - - стоп

NAK : constant CHARACTER : = пак; - - отрицание

SYN : constant CHARACTER : = syn; - - синхронизация

ETB : constant CHARACTER : = etb; - - конец блока

CAN : constant CHARACTER : = can; - - аннулирование EM : constant CHARACTER : = em; - - конец носителя SUB : constant CHARACTER : = sub; - - замена ESC : constant CHARACTER : = esc; - - авторегистр 2 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 : = ’M- - знак денежной единицы

PERCENT : constant CHARACTER : = '%'; - - процент AMPERSAND : constant CHARACTER : = - - коммерческое И

COLON : constant CHARACTER : = двоеточие SEMICOLON : constant CHARACTER : = - - точка с запятой

QUERY : constant CHARACTER . = - - вопросительный знак

AT_SIGN : constant CHARACTER : = коммерческое ЭТ L_BRАСКЕТ : constant CHARACTER : = - - левая квадратная скобка

BACK-SLASH : constant CHARACTER : = 'V; - - обратная дробная черта BRACKET : constant CHARACTER : = - - правая квадратная скобка

CIRCUMFLEX •• constant CHARACTER : = 'a - - стрелка вверх UNDERLINE : constant CHARACTER : - -подчеркивание

GRAVE : constant CHARACTER : = A'; - - слабое ударение L_BRACE : constant CHARACTER : = - - левая фигурная скобка

BAR : constant CHARACTER : = T; - - вертикальная черта R-BRACE : constant CHARACTER : = 'У; - - правая фигурная скобка TILDE : constant CHARACTER : = - - черта сверху

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

LC_A : constant CHARACTER : = 'a';

LC_Z : constant CHARACTER : = z';

end ASCII;

package ГОСТ is

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

ПУС : constant CHARACTER : = nul; - - пусто

H3 : constant CHARACTER : - soh; --начало заголовка

НТ : constant CHARACTER : = stx; - - начало текста KT : constant CHARACTER : = etx; - - конец текста КП : constant CHARACTER : = eot; - - конец передачи KTM : constant CHARACTER : = enq; - - кто там? ДА : constant CHARACTER : = ask; - - подтверждение ЗВ : constant CHARACTER : = bel; - - звонок

BUI : constant CHARACTER : = bs; - - возврат на шаг

ГТ : constant CHARACTER : = ht; - - горизонтальная табуляция ПС : constant CHARACTER . = lf; - - перевод строчки ВТ : constant CHARACTER : = vt; - - вертикальная табуляция ПФ : constant CHARACTER : = ff; - - перевод формата BK : constant CHARACTER : = cr; - - возврат каретки ВЫХ : constant CHARACTER : = so; - - выход BX : constant CHARACTER : = si; - - вход

API : constant CHARACTER : = die; - - авторегистр 1

СУ1 : constant CHARACTER : = del; - - символы устройства

СУ2 : constant CHARACTER : = dc2;

СУЗ : constant CHARACTER : = dc3;

СУ4 : constant CHARACTER : = dc4; - - стоп HET : constant CHARACTER : = пак; - - отрицание СИН : constant CHARACTER : = syn; - - синхронизация КБ ; constant CHARACTER : = etb; - - конец блока АН : constant CHARACTER : = can; - - аннулирование KH : constant CHARACTER : = em; - - конец носителя ЗМ : constant CHARACTER : = sub; - - замена AP2 ; constant CHARACTER : = esc; - - авторегистр 2 РФ : constant CHARACTER : = fs; - - разделитель файлов РГ : constant CHARACTER : = gs; - - разделитель групп РЗ : constant CHARACTER : = rs; - - разделитель записей РЭ : constant CHARACTER : = us; - - разделитель элементовЗБ : constant CHARACTER : = зб; - - забой - - другие символы:

ВОСКЛ-ЗНАК : constant CHARACTER : = - - восклицательный знак

КАВЫЧКИ : constant CHARACTER : = - - кавычки

НОМЕР : constant CHARACTER : = - - номер

ДЕНЕЖНЫЙ.ЗНАК : constant CHARACTER : =-'& - знак денежной единицы

ПРОЦЕНТЫ : constant CHARACTER : = - - проценты

АМПЕРСАНД : constant CHARACTER : = '&'; - - коммерческое И ДВОЕТОЧИЕ : constant CHARACTER : = - - двоеточие

ТОЧКА_С_ЗАПЯТОЙ : constant CHARACTER - - точка с запятой ВОПРОС-ЗНАК : constant CHARACTER : = - - вопросительный знак

КОММЕРЧ-ЭТ : constant CHARACTER : = '(?>'; - - коммерческое ЭТ Л-СКОБКА : constant CHARACTER : = - - левая квадратная скобка

ОБР-ЧЕРТА : constant CHARACTER : = ''; - - обратная дробная черта П_СКОБКА : constant CHARACTER : = - - правая квадратная скобка

СТРЕЛКА-ВВЕРХ : constant CHARACTER : = 'л'; - - стрелка вверх ПОДЧЕРК : constant CHARACTER : = - - подчеркивание

СЛАБОЕ-УДАРЕНИЕ : constant CHARACTER : = ' V; . - слабое ударение ЛФ_СКОБКА : constant CHARACTER : = левая фигурная скобка ВЕРТИК_ЧЕРТА : constant CHARACTER ; = - - вертикальная черта

ПФ_СКОБКА : constant CHARACTER : = правая фигурная скобка

НАДЧЕРК : constant CHARACTER : = черта сверху (надчеркивание) - - Строчные русские буквы:

LR_A : constant CHARACTER : = 'а';

LR-Я : constant CHARACTER : = 'я';

end ГОСТ;

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

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) reuturn 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 (см. разд. 9.6);

  • пакет SYSTEM (см. разд. 13.7);

  • пакет MACHINE-CODE (см. разд. 13.8) (если он предусмотрен);

  • настраиваемая процедура UNCHECKED-DEALLOCATION (см. разд. 13.10.1);

  • настраиваемая функция UNCHECKED-CONVERSION (см. разд. 13.10,2);

  • настраиваемый пакет SEQUENTIAL-IO (см. разд. 14.2.3);

  • настраиваемый пакет DIRECT-IO (см. разд. 14.2.5);

  • пакет TEXT-IO (см. разд. 14.3.10);

  • пакет IO-EXCEPT1ONS (см. разд. 14.5);

  • пакет LOW_LEVEL_IO (см. разд. 14.6).

I ПРИЛОЖЕНИЕ 4

Обязательное

ХАРАКТЕРИСТИКИ, ЗАВИСЯЩИЕ ОТ РЕАЛИЗАЦИИ

Определение языка Ада допускает в контролируемых пределах машинную зависимость. Не допускаются машинно-зависимые расширения или ограничения синтаксиса или семантики. Машинная зависимость допускается только в определен­ных реализацией прагмах и атрибутах, в машинно-зависимых соглашениях, перечис­ленных в гл. 13, а также в ограничениях на использование спецификаторов представ­ления. ■

Руководство по каждой реализации языка программирования Ада должно вклю­чать в себя такое обязательное1 приложение, которое описывает все характеристики, зависящие от реализации. В таком приложении для данной реализации должны быть перечислены;

  1. Форма, допустимые места расположения и результат каждой зависящей от реализации прагмы.

  2. Имя и тип каждого атрибута, зависящего от реализации.

  3. Спецификация пакета SYSTEM (см. разд. 13.7).

  4. Список всех ограничений на спецификаторы представления (см. разд. 13.1).

  5. Соглашения об использовании генерируемых реализацией имен, обозначаю­щих компоненты, зависящие от реализации (см. разд. 13.4).

  6. Интерпретация выражений, появляющихся в спецификаторах адреса, вклю­чая связанные с прерыванием (см. разд. 13.5).

  7. Любое ограничение на неконтролируемые преобразования (см. разд. 13.10.2) :

  8. Любые зависящие от реализации особенности для пакетов ввода-вывода (см, гл. 14).

ПРИЛОЖЕНИЕ 5 Справочное

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

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

Агрегат (aggregate) - базовая операция над типом, которая объединяет значения компонентов в составное значение индексируемого типа (агрегат массива) или име­нуемого типа (агрегат записи), являющихся разновидностями составного типа. Ком­поненты агрегата могут быть позиционными (координатными) и/или именованными (ключевыми).

Атрибут (attribute) - базовая операция над типом, которая вырабатывает предо­пределенную характеристику поименованного понятия, указанного префиксом; не­которые атрибуты являются функциями, типом или диапазоном.

Вещественный тип (real type) - набор приближенных значений вещественных чи­сел, заданных с относительной погрешностью (плавающий тип) или абсолютной погреш­ностью (фиксированный тип). Вещественный тип реализуется хранимыми в памяти вы­числительной машины числами и определяется точностью приближения и диапазоном.

Вид (mode) - см. параметр.

Видимость (visibility) - доступность характеристик описанного понятия при его применении в данной точке текста программы. Описание понятия, вводящее иденти­фикатор, называется видимым в данной точке текста программы, если это понятие ос­мысленно при появлении его идентификатора в этой точке программы. Прямая види­мость подразумевает одно описание понятия с характеристиками, уникальными в области действия, и некоторое число использований этого понятия. При именовании описание видимо на месте постфикса в именуемом компоненте или на месте имени в именованном сопоставлении. Иначе, описание видимо непосредственно всякий раз, когда единственный идентификатор имеет смысл, определяемый этим описанием.

Видимый раздел (visible part) - см. пакет.

Возбуждение исключения (raising an exception) - см. исключение.

Вход (entry) - именование точки синхронизации задачи передачи данных между ними. Вход используется для осуществления взаимодействия задач. Синтаксически вызов входа походит на вызов подпрограммы; его внутренний механизм определяет­ся одним или несколькими операторами принятия, специфицирующими действия, выполняемые при вызове входа.

Вычисление (evaluation) - процесс получения значения (например, выражения). Этот процесс происходит во время выполнения программы.

Выражение (expression) - формула, определяющая процесс получения значения.

Генератор (allocator) - базовая операция над типом, создающая объекти выраба­тывающая ссылочное значение, которое указывает на этот объект. Созданный объект должен сохраняться до тех пор, пока существует обозначение объекта некоторым именем.

Диапазон (range) - упорядоченный набор последовательных значений скалярного типа. Диапазон задается нижней и верхней границами этого набора значений. Значение из диапазона называется принадлежащим этому диапазону.

Дискретный тип (discret type) - упорядоченный набор различных значений. Диск­ретными типами являются перечислимый и целый типы. Дискретные типы использу­ются для индексирования и управления повторением в операторах цикла, а также в выборах операторов выбора и вариантах записи.

Дискриминант (discriminant) - специальный компонент объекта или значение именуемого типа. Подтипы других компонентов и даже их присутствие или отсутст­вие могут зависеть от значения дискриминанта.

Задача (task) — программный модуль, функционирующий параллельно с други­ми частями программы. Задача задается спецификацией задачи, которая задает имя задачи, а также имена и формальные параметры ее входов, и телом задачи, которое определяет ее выполнение. Заданный модуль (модуль-задача) является одним из видов программных модулей. Задачный тип - это тип, который предоставляет воз­можность последующего описания любого количества однотипных задач. Говорят, что значение заданного типа указывает задачу.