символ не есть {522 b} : / :

:/ = :

isnt

несть

символ нил {524а} о

nil

НИЛ


символ из {531а}

символ признак процедуры {541а, Ь}

of


из

символ на выделенный {544 Ь} символ на краткий {544b}

goto

на


символ иди выделенный {544 b}

go



символ пропуск {552а}

skip

пропуск

скип

символ форматор {А341а}

І

Ф


символ ситуация

exception


ситуация

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

on


присит

символ возбудить

raise


возбуд

9.4.2. Символы прочих обозначений соответствуют ГОСТ 27974.

10. СТАНДАРТНАЯ ЯЗЫКОВАЯ ОБСТАНОВКА



Прагматическое замечание соответствует ГОСТ 27974.

  1. Тексты программ

Все прагматические замечания соответствуют ГОСТ 27974.

  1. Синтаксис

А) ВНЕШНЕЕ : : стандартное;

библиотечное; системное; собственное; личное.

Метаправило В и гиперправила a, b, с, d, е, g, h, 1 соответствуют ГОСТ 27974.

f) задача пользователя в СРЕДЕ1 {d}:

собственное вступление с [ОПИСАНИЯМИ в СРЕДЕ2 {с}, личное вступление с 7МОДУЛЯМИ в СРЕДЕ2 {с}, УПАКОВКА собственнр-программы в СРЕДЕ2 {g}, знак продолжать {94f}, собственное-заключение в СРЕДЕ2 Ті}, если (СРЕДА2) есть (СРЕДА1 с

новыми ОПИСАНИЯМИ 7МОДУЛЯМИ {и} СТОПОМ).

  1. Соответствие языковой обстановке

Определения, a, b, с, d, е соответствуют ГОСТ 27974.

f) Если явно не оговорено противное {10.6.2.а}-, то каждое состав­ляющее личное-вступление всех текстов-программ есть ПУСТО.

    1. Способ описания стандартной языковой обстановки соответст­вует ГОСТ 27974.

  1. С т а н д а р т н о е вступление

Все прагматические замечания соответствуют ГОСТ 27974.

  1. Запросы к обстановке

Описания a, b, с, d, е, f, g, h, і, j, k, 1, m, n, o, p, q, r, s, t, u соответст­вуют ГОСТ 27974.

  1. проц Д цел переполнение включено =лог:

с истина, если при возникновении ситуации, для которой в качестве вос­станавливающего действия задан вызов процедуры Д цел восстановление после переполнения £10.2.3.13), реализация действительно выполняет такое действие; ложь в противном случае с;

проц лог L int overflow enabled = Д цел переполнение включено;

проц Д вещ переполнение включено =лог:

с истина, если при возникновении ситуации, для которой в качестве, восста­навливающего действия задан вызов процедуры Д вещ восстановление после переполнения (ЇО.2.3.13 J, реализация действительно выполняет такое действие; ложь в противном случае с ;

проц лог L real overflow enabled = Д вещ переполнение включено;

проц Д вещ потеря значимости включена =лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры Д вещ восстановление пос­ле потери значимости {10.2.3.13]-, реализация действительно выполняет такое действие: ложь в противном случае с;

проц лог L real underflow enabled = Д вещ потеря значимости включена;

проц Д цел ошибка аргумента включена =лог:

с истина, если при возникновении ситуации, для которой в качестве вос­станавливающего действия задан вызов процедуры Д цел восстановление после ошибки аргумента {1'0.2.3.13]-, реализация действительно выполняет такое действие; ложь в противном случае с;

проц лог L int argument error enabled = Д цел ошибка аргумента включена;

проц Д вещ ошибка аргумента включена =лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры Д вещ восстановление пос­ле ошибки аргумента {10.2.3.13]-, реализация действительно выполняет та­кое действие; ложь в противном случае с;

проц лог L real argument error enabled = Д вещ ошибка аргумента вклю­чена;

  1. проц ошибка присваивания включена =лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры восстановление после ошибки присваиванияО-З.ІД.Ь}-, реализация действительно выполняет та­кое действие: ложь в противном случае с;

проц лог assignment error enabled = ошибка присваивания включена;

проц ошибка границы включена =лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры восстановление после ошибки границы {5.3.2.2.а}, реализация действительно выполняет такое действие; ложь в противном случае с;

проц лог bound error enabled = ошибка границы включена;

проц ошибка записи массива включена =лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры восстановление после

«

ошибки записи массива {3.3.2.bl, реализация действительно выполняет та­кое действие; ложь в противном случае с;

проц лог row display error enabled = ошибка записи массива включена;

проц ошибка псевдоимени включена = лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры восстановление после ошибки псевдоимени {5.2.1.2.Ь, 5.3.1.2, 5.3.2.2.а, 6.2.2]-, реализация дейст­вительно выполняет такое действие;

ложь в противном случае с;

проц лог nil error enabled = ошибка псевдоимени включена;

проц ошибка области действия включена =лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры восстановления после ошибки области действия {3.2.2.а, 5.2.1.2.Ь; 5Л.5.2.Ь}-, реализация дейст­вительно выполняет такое действие; ложь в противном случае с;

проц лог scope error enabled = ошибка области действия включена;

проц тупик включен =лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры восстановление .после ту­пика {10.2.4.d}, реализация действительно выполняет такое действие;

ложь в противном случае с;

проц лог deadlock enabled = тупик включен;

проц исчерпание времени включено =лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры восстановление после ис­черпания времени {2.1.4.3.І}, реализация действительно выполняет такое действие; ложь в противном случа с;

проц лог time eshaustion enabled = исчерпание времени включено;

проц исчерпание памяти включено =лог:

с истина, если при возникновении ситуации, для которой в качестве восста­навливающего действия задан вызов процедуры восстановление после исчерпания памяти {2.1.4.3.і}, реализация действительно выполняет такое действие; ложь в противном случае с;

проц лог space exhaustion enabled = исчерпание памяти включено;

  1. Стандартные виды соответствуют ГОСТ 27974.

  2. Стандартные обозначения операций и функции

    1. Стандартные приоритеты определены в ГОСТ 27974.

    2. Массивы и связанные с ними операции соответствуют ГОСТ 27974.

    3. Операции над логическими операндами определены в ГОСТ 27974.

    4. Операции над целыми операндами определены в ГОСТ 27974.Операции над вещественными операндами определены в ГОСТ 27974.

    5. Операции над арифметическими операндами определены в ГОСТ 27974.

    6. Операции над литерными операндами определены в ГОСТ 27974.

    7. Операции над комплексными операндами определены в ГОСТ 27974.

    8. Битовые и связанные с ними операции соответствуют ГОСТ 27974.

    9. Слоговые и связанные с ними операции соответствуют ГОСТ 27974.

    10. Строковые и связанные с ними операции соответствуют ГОСТ 27974.

    11. Операции, соединенные с присваиваниями, соответствуют ГОСТ 27974.

    12. Стандартные математические константы и функции соответ­ствуют ГОСТ 27974.

    13. Восстанавливающие действия для стандартных операций и функций.

Для случаев, когда операции и функции из п. 10.2.3 не дают осмыслен­ного результата, определяются восстанавливающие действия в виде вызо­вов процедур из 10.2.5.g.

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

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

Процедура Д цел восстановление после ошибки аргумента (Д вещ вос­становление после ошибки аргумента) вызывается при неудаче со значе­нием {параметра! х вида Д цел (Д вещ). Если это значение было исполь- ювано в качестве значения фактического параметра или операнда и неу- ;ача связана с тем, что для этого значения результат не определен мате­матически.

  1. Операции синхронизации

Описания а, Ь, с, е соответствуют ГОСТ 27974.

d) on вниз, down $> = (сема эдсгер) пуст:

начало имя цел дейкстра = F из эдсгер;

пока прагм начало несовместимой части прагм

если дейкстра >1 то дейкстра — : = 1; ложь иначе с пусть Р будет таким процессом, что исполнение дан­ного псевдопримечания {10.1.3. Шаг 71 есть наследное действие этого Р, но никакого другого процесса, наследного для Р; данный процесс Р приостанавливается {2.1.4.3.fl, если все процессы, наследные для собственно-программы, приостановлены таким образом и ни один из них не возоб­новлен, то последующее исполнение не определено, а вос­станавливающее действие определяется как вызов процеду­ры восстановление после тупика ■[ 10.2.5 .п} с выдачей 'эдсгер' {в качестве значения параметра} с; истина

все

прагм конец несовместимой части прагм цк пропуск кц

конец;

  1. Стандартные ситуации и восстанавливающие действия а) ситуация пуст Д цел переполнение,

пуст Д вещ переполнение, пуст Д потеря значимости, ситуация (Д цел) пуст Д цел ошибка аргумента, ситуация (Д вещ) пуст Д вещ ошибка аргумента; ситуация пуст L int overflow, пуст L real overflow, пуст L underflow,

ситуация (Д цел) пуст L argument error.

ситуация (Д вещ) пуст Lreal argument error;

присит L int overflow: пуст: возбуд Д цел переполнение,

L real overflow: пуст: возбуд Д вещ переполнение,

L underflow: пуст: возбуд Д потеря значимости, L int argument error:

(Д цел а) пуст: возбуд Д цел ошибка аргумента (а), L real argument error:

(Д вещ а) пуст: возбуд Д вещ ошибка аргумента (а);

  1. ситуация (цел) пуст ошибка присваивания, ситуация (цел, имя цел) пуст ошибка границы, ситуация пуст ошибка записи массива, пуст ошибка псевдоимени, пуст ошибка области действия, ситуация (сема) пуст тупик, ситуация пуст общая ситуация; ситуация (цел) пуст assignment error, ситуация (цел, имя цел) пуст bound error, ситуация пуст row display error, пуст nil error, пуст scope error, ситуация (сема) пуст deadlock, ситуация пуст general exception;

присит assignment error:

(цел а) пуст: возбуд ошибка присваивания (а),

bound error: (цел а, имя цел Ь) пуст: возбуд ошибка границы (а, b).

row display error: пуст: возбуд ошибка записи массива, nil error: пуст: возбуд ошибка псевдоимени, scope error: пусі:возбуд ошибка области действия, deadl ock: (сема s) пуст: возбуд тупик (s), general exception: пуст: возбуд общая ситуация;

{Ситуация общая ситуация возбуждается, если не найдена процедура реакции для некоторой возбужденной ситуации.}

  1. ситуация пуст исчерпание времени,

пуст исчерпание памяти, пуст окончание, пуст ? немедленное окончание;

ситуация пуст time exhaustion;

присит time exhaustion: пуст: возбуд исчерпание времени;

ситуация пуст space exhaustion;

присит space exhaustion: пуст: возбуд исчерпание памяти;

ситуация Пуст termination;

присит termination: пуст: возбуд окончание;

{Ситуация окончание возбуждается в случаях неисправимых ошибок для того, чтобы дать программисту возможность обеспечить необходи­мые завершающие действия, определяя реакцию на эту ситуацию в некотором окружении. Однако предполагается, что исполнение этой реакции закончится тем, что то же самое исключение будет возбужде­но вновь, чтобы обеспечить завершающие действия в старших окруже­ниях. }

  1. вид имя массива = с фактический-описатель, специфицирующий вид, объединенный из {2.1.3.6.а} достаточного набора видов, каждый из которых начинается с имя массива' или имя подвиж­ного массива' с;

  2. ситуация массив образец массива, массив образец получателя, ситуация [ ] массив список образцов массива, ситуация (имя массива) лог вырезано из, ситуация цел размерность, ситуация лог это имя;

ситуация Массив row specimen,

массив destination specimen, ситуация [ ] массив row specimen list, ситуация (имя массива) лог isslice of, ситуация цел dimension, ситуация лог is name;

присит row specimen: массив: возбуд образец массива, destination specimen: массив: возбуд образец получателя, row specimen list: [ ] массив: возбуд список образцов массива, is slice of: (имя массива а) лог: возбуд вырезано из (а), dimension: цел: возбуд размерность.

is name: лог: возбуд это имя;

{Эти ситуации используются в некоторых процедурах восстановления для других ситуаций,}

  1. проц закончить =пуст:

(с некоторое системное действие, помогающее идентифицировать текущее окружение с;

возбуд окончание:

возбуд немедленное окончание);

проц пуст terminate = закончить;

  1. проц^-Д цел восстановление после переполнения =пуст:

(возбуд Д цел переполнение; закончить),