Остальные случаи {, когда значение V отлично от указанных}:
Если С содержит составляющее продолжение-ВЬІБТІРАЮЩЕ- ГО предложения О, то S есть О в Е2;
иначе S есть пропуск-выдающий ЗНАЧЕНИЕ в Е2.
Циклические предложения
{Циклические-предложения используются для динамического повторе- тия одной и той же последовательности инструкций. Число таких повторений регулируется или некоторой конечной последовательностью равноот- тоящих целых чисел, или каким-либо проверяемым каждый раз условием, ли и тем и другим.
Пример 1:
цел фак : = 1;
идя і от п шаг — 1 до 1цк фак Х;= і кц
Пример 2:
цел а. Ь; чит ((а, Ь)) прагм здесь а > ОЛ b > 0 прагм;
цел q := 0, г : = а; '
пока г > b прагм здесь a=bXq+rAO<r прагм
цк (q+:= 1, г —:=Ь) кц
прагм здесь а = ЬХ q+rAO<rAr<b прагм
(см. 9.2. где,объясняются прагматы) .
Идентификатор переменной цикла, например і в примере 1, определен над всем циклом. Вводимые условием-цикла определения действуют также и в теле-цикла.
Если идентификатор переменной цикла не применяется в цикле, то за- главие-цикла можно опустить. Можно опустить настройку-нижнего-предела от 1; точно так же можно опустить и шаг 1. Настройку-верхнего-предела можно опустить, если не требуется проверять конечное значение переменной цикла. Можно опустить и условие-цикла пока истина. Например, вместо для і от 1 шаг 1 до п пока истина цк печ („а”) кц можно написать
до п цк печ („а”) кц Иерархия блоков выглядит так:
- для 1 от , шаг до —
пока
цк
кц
Синтаксис
ЦИКЛ :: нижний предел; шаг; верхний предел.
циклическое предложение в СРЕДЕ 1
сильно выдающее пустое значение {5D, 551а}: ОФОРМЛЕННОЕ заглавие цикла определяющее
новое СЛОВО2 для целого в СРЕДЕ1 {Ь}, ОФОРМЛЕННАЯ настройка цикла в СРЕДЕ 1 {с}, ОФОРМЛЕННЫЙ цикл с СЛОВОМ2 для целого в СРЕДЕ1 {е}.
ОФОРМЛЕННОЕ заглавие цикла определяющее
новое СЛОВО2 для целого в СРЕДЕ1 {а}:
знак для ОФОРМЛЕННЫЙ {94g, -},
определяющий СЛОВО2 идентификатор в СРЕДЕ 1
с новым СЛОВОМ2 для целого выдающий целое {48а}:если (СЛОВО2) есть (буква алеф), ПУСТО.
ОФОРМЛЕННАЯ настройка цикла в СРЕДЕ1 {а}:
возможно ОФОРМЛЕННАЯ
настройка нижнего предела в СРЕДЕ {d}.
возможная ОФОРМЛЕННАЯ настройка шага в СРЕДЕ1 {d}.
возможно ОФОРМЛЕННАЯ
настройка верхнего предела в СРЕДЕ1 {d}.
ОФОРМЛЕННАЯ настройка ЦИКЛА в СРЕДЕ1 {с}:
знак ЦИКЛ ОФОРМЛЕННЫЙ {94g, -},
основа в СРЕДЕ 1 раскрыто выдающая целое {32d}.
ОФОРМЛЕННЫЙ ЦИКЛ с ОПИСАНИЕМ2 в СРЕДЕ1 {а}: ОФОРМЛЕННЫЙ подчиненный условию цикл
в СРЕДЕ1 с новым ОПИСАНИЕМ2 {f};
ОФОРМЛЕННОЕ тело цикла в СРЕДЕ1 с новым
ОПИСАНИЕМ2 {h}.
ОФОРМЛЕННЫЙ подчиненный условию цикл в СРЕДЕ2 {е }: ОФОРМЛЕННОЕ определяющее СЛОЙЗ
условие цикла в СРЕДЕ2 {g},
ОФОРМЛЕННОЕ тело цикла в СРЕДЕ2 с СЛОЕМЗ {h}.
ОФОРМЛЕННОЕ определяющее СЛОЙЗ
условие цикла в СРЕДЕ2 {f}:
знак пока ОФОРМЛЕННЫЙ {94g, -}, определяющее СЛОЙЗ выясняющее предложение выдающее логическое в СРЕДЕ2 {34с, -}, h) ОФОРМЛЕННОЕ тело цикла в СРЕДЕЗ {е, f }:
знак цикл ОФОРМЛЕННЫЙ {94g, -},
определяющее СЛОЙ4 последовательное предложение сильно выдающее пустое значение в СРЕДЕЗ {32а}, знак конец цикла ОФОРМЛЕННЫЙ {94g, -}
{Примеры:
для і пока і < п цк задача 1 кц • до п цк задача 1; задача2 кц
для і
от —5 до +5
от -5
пока і < п цк задачаї кц • цк задачаі; задача2 кц
пока і < п цк задачаї; задача2 кц
пока і < п
цк задачаї; задача2 кц}
Семантика
Циклическое-предложение С в окружении Е1 исполняется посредством следующих шагов:
Шаг 1: Все составляющие настройки-ЦИКЛА из С, если они вообще есть, исполняются совместно с Е1;
пусть f — выдача составляющей настройки-нижнего-предела из С, если она есть, а иначе f будет 1;пусть b - выдача составляющей настройки-шага из С, если она есть, а иначе b будет 1;
пусть t — выдача составляющей настройки-верхнего-предела из С, если она есть, а иначе пусть t отсутствует;
пусть Е2 будет -[нелокализующим (3.2.2.Ь) } окружением, устанавливаемым вокруг Е1 согласно заглавию-цикла-определяющему-новое- СЛОВО2-ДЛЯ целого из С и с целым числом f;
Шаг 2: Пусть і - целое число, доступное {2.1.2.с} для 'СЛОВА2 для целого' внутри участка окружения Е2;
Если t не отсутствует, то
если b < 0 и і < t или если b > 0 и і > t, то С в El {завершается и} выдает пусто;
{иначе предпринимается шаг 3; }
Шаг 3: Пусть окружение ЕЗ и истинностное значение w определяются следующим образом:
Случай А: С не содержит составляющего условия-цикла:
ЕЗ есть Е2;
w есть истина;
Случай В: С содержит составляющее условие-цикла Р:
ЕЗ есть {возможно нелокализующее (3.3.2.Ь) 3-окружение, устанавливаемое вокруг Е2 согласно выясняющему- предложению из Р;
w — выдача этого выясняющего-предложения в ЕЗ;
Шаг 4:
Если w — истина, то
составляющее тело-цикла данного С исполняется в ЕЗ;
СЛОВО2 для целого' получает доступ к і + b внутри участка окружения Е2;
шаг 2 предпринимается снова; иначе
• С в Е1 {завершается и} выдает пустое.
{ Циклическое-пре дложение
для і от ul шаг и2 до иЗ пока условие цк действие кц эквивалентно, таким образом, замкнуто му-предложению- выдающему-пустое-значение
начало цел f := ul , цел b = u2, t = u3;
шаг2:
если (b>O/f<t)V(b<OAf>t)Vb=O то цел і = f;
если условие
то действие; f+:=b; на шаг2
все
все
конец.
Разумеется, такой эквивалентности может не быть, если данное цикличе- ское-предложение содержит локальные-генераторы или некоторые из использованных обозначений-операций не идентифицируют обозначения-опе- раций в стандартной языковой обстановке (10).} •
4. ОПИСАНИЯ, ОПИСАТЕЛИ И ИНДИКАТОРЫ
{Описания служат для того, чтобы
вводить новые индикаторы, например, идентификаторы,
определять их виды или приоритеты и
приписывать этим индикаторам значения и инициализировать переменные.}
. Описания
Синтаксис
А) ОБЪЕКТ :: вид; приоритет; тождество для ПРОВИДА;
переменная как имя ПРОВИДА; операция как ПРОВИД;
ПАРАМЕТР; поле вида ВИД среди ПО ЛЕЙ.
{ПРОВИД :: процедура; ВИД.}
описание 1ОПИСАНИЙ в СРЕДЕ {a, 32b}: описание ОБЪЕКТОВ через .'ОПИСАНИЯ
в СРЕДЕ {42а, 43а, 44а, е, 45а, -};
' если (.'ОПИСАНИЯ) есть (1ОПИСАНИЯ1 ІОПИСАНИЯ2), описание ОБЪЕКТОВ через ІОПИСАНИЯ1
в СРЕДЕ {42а, 43а, 44а, е, 45а, -}, знак а также {94f}, описание ІОПИСАНИЙ2 в СРЕДЕ {а}.
групповое определение ОБЪЕКТОВ через !ПАРЫ ПАРУ
в СРЕДЕ {Ь, 42а, 43а, 44а, е, 45а, 46е, 541е}:
групповое определение ОБЪЕКТОВ через !ПАРЫ в СРЕДЕ {Ь, с}, знак а также {94f}, групповое определение ОБЪЕКТА через ПАРУ в СРЕДЕ {с}.
групповое определение ОБЪЕКТА через ПАРУ
в СРЕДЕ {Ь, 42а, 43а, 44а,е, 45а, 46е, 541е}:
определение ОБЪЕКТА через ПАРУ
в СРЕДЕ {42b, 43b, 44с,f, 45с, 46f, 541 f, -}.
* определение ПАРЫ: определение ОБЪЕКТА через ПАРУ
в СРЕДЕ {42b, 43b, 44с, f, 45с, 46f, 541 f};
определение метки через ПАРУ в СРЕДЕ {32с}
{Примеры:
вид г = имя вещ, s = лит •, приоV = 2, А = 3 • цел m = 4096 • вещ х, у •
оп/= (лог а, Ь) лог : (а ІистинаІ b)
г = имя вещ, s = лит • /= 2, А = 3 • m = 4096 •
х, у • /= (лог а, Ь) лог : (а ІистинаІ b)
г = имя вещ • V= 2 • m = 4096 • х •
V = (лог а, Ь) лог : (а I истина! Ь) }
Семантика
Исполнение описания состоит в совместной исполнении его описания- ОБЪЕКТОВ и его описания, если оно есть. {Таким образом, все описания- ОБЪЕКТОВ, разделенные знаками-а-также, исполняются совместно.}
Описания видов
{Описания-видов задают определяющие-индикаторы-вида, играющие роль сокращений для описателей, построенных из более примитивных компонент, или из других описателей, или даже из самих себя.
Например,
вид массив = [ш, п] вещ и
вид книга = ст (строк текст, имя книга следующая)
В последнем примере использующий-индикатор-вида книга служит не только удобным сокращением, но и по существу необходим для данного описания.}
Синтаксис
описание видов через ЮПИСАНИЯ в СРЕДЕ {41а}:
знак вид {94d},
групповое определение видов
через .'ОПИСАНИЯ в СРЕДЕ {41b, с}:
определение вида через ИНДИКАНТ
для ЗНАЧЕНИЯ НОМЕР в СРЕДЕ {41с}:
если (ИНДИКАНТ) есть (выделенное СЛОВО) или
(СРЕДА) есть (новое с СЛОЕМ),
определяющий ИНДИКАНТ индикатор вида в
СРЕДЕ выдающий ЗНАЧЕНИЕ НОМЕР {48а},
знак определяется как {94d},
фактический описатель ЗНАЧЕНИЯ НОМЕР в СРЕДЕ {с}.
фактический описатель ЗНАЧЕНИЯ НОМЕРІ в СРЕДЕ {Ь}:
если (НОМЕРІ) есть (I),
фактический определитель ЗНАЧЕНИЯ в СРЕДЕ {46с, d,g,h,o, s,-};
если (НОМЕРІ) есть (НОМЕР2 I),
использующий ИНДИКАНТ2 индикатор вида в
СРЕДЕ выдающий ЗНАЧЕНИЕ НОМЕР2 {48b}
{Примеры:
вид г = имя вещ, s = лит
г = имя вещ с) имя вещ • лит
{Использование 'НОМЕРА' исключает круговые цепочки определений- видов, такие, как вида = b, Ъ =а.
Определяющие-?РАЗМЕРНОЕ-СТАНДАРТНОЕ-индикаторы-видов могут описываться только в стандартном-вступлении, где среда имеет форд: 'новое с СЛОЕМ' (lO.l.l.b).}
Семантика
Исполнение описания-видов {не требует действия, не выдает значек тем самым! завершено.
Описание приоритетов
{Описания-приоритетов используются для определения приоритета обозначений-операций. Существуют приоритеты от 1 до 9.
Так как обозначения-унарных-операций фактически имеют только один уровень приоритета, более высокий, чем у всех обозначений-бинарных- операций, то описания-приоритетов для обозначений-унарных-операций не нужны.}
Синтаксис
описание приоритетов через ІОПИСАНИЯ в СРЕДЕ {41а}:
знак приоритет {94d},
групповое определение приоритетов
через ІОПИСАНИЯ в СРЕДЕ {41b, с}.
определение приоритета через ИНФИКС для
приоритета ПРИОРИТЕТ в СРЕДЕ {41с}:
определяющее ИНФИКС обозначение операции в СРЕДЕ
выдающее приоритет ПРИОРИТЕТ {48а},
знак определяется как {94d}, знак ЦИФРА {94b}, если ЦИФРА считает ПРИОРИТЕТ {с, d}.
{ЦИФРА :: цифра нуль; цифра один; цифра два; цифра три;
цифра четыре; цифра пять; цифра шесть; цифра семь;
цифра восемь; цифра девять.}
ЕСЛИ ЦИФРА1 считает ПРИОРИТЕТ I. {Ь, с}:
ЕСЛИ ЦИФРА2 считает ПРИОРИТЕТ {с, d},
если (цифра один цифра два цифра три цифра четыре
цифра пять цифра шесть цифра семь цифра восемь
цифра девять) содержит (ЦИФРУ2 ЦИФРУ 1).
ЕСЛИ цифра один считает I -{Ь, с} : ЕСЛИ истина.
{Примеры:
а) прио V= 2, А =3 b)V = 2}
Семантика
Исполнение описания-приоритетов {не требует действий, не выдает значения и тем самым} завершено.
. Описания идентификаторов
{Описания-идентификаторов задают определяющие-идентификаторы- выдающие-ВИД при помощи либо описаний-тождеств, либо описаний-переменных.
Примеры:
вещ пи = 3.1416 •
вещ точность :=0.05.
Второй пример, который служит описанием-переменной, можно рассматривать как эквивалентную форму для описания-тождества
имя вещ точность = лок вещ := 0.05.
Исполнение описаний-идентификаторов вызывает приписывание значений их идентификаторам; в приведенных выше примерах 3.1416 приписы-
в
точно-
ается пи и новое локальное имя, именующее 0.05, приписывается сти.}Синтаксис
ПРОВИД :: процедура; ВИД.
ЛОКАЛИЗУЮЩИЙ :: локальный, глобальный: первичный.
описание тождеств для ПРОВИДА
через ЇОПИСАНИЯ в СРЕДЕ {41а}:
формальный описатель ПРОВИДА в СРЕДЕ {b, 46b}, групповое определение тождеств для ПРОВИДА через ЇОПИСАНИЯ в СРЕДЕ {41 Ь, с}.
ЛЮБОЙ описатель процедуры
в СРЕДЕ {a,523b}: знак процедура {94d}.
определение тождества для ПРОВИДА
через СЛОВО для ВИДА в СРЕДЕ {41с};
определяющий СЛОВО идентификатор в СРЕДЕ
выдающий ВИД {48а}, знак определяется как {94d}, источник вида ВИД для ПРОВИДА в СРЕДЕ {d}.
источник вида ВИД для ПРОВИДА в СРЕДЕ {с, f, 45с}:
если (ПРОВИД) есть (ВИД),
источник вида ВИД в СРЕДЕ {521с};
если (ПРОВИД) есть (процедура), текст процедуры в СРЕДЕ выдающий ВИД {541а, Ь, -}. е) описание переменных как имен ПРОВИДА
через ЇОПИСАНИЯ в СРЕДЕ {41а}:
задание ЛОКАЛИЗУЮЩЕГО генератора в СРЕДЕ
выдающего имя ПРОВИДА {523b},
групповое определение переменных как
имен ПРОВИДА через ЇОПИСАНИЯ в СРЕДЕ {41b, с}.
определение переменных как имен ПРОВИДА
через СЛОВО для имени ВИДА в СРЕДЕ {41с}: определяющий СЛОВО идентификатор в СРЕДЕ
выдающий имя ВИДА {48а}, знак присвоить {94с}, источник вида ВИД для ПРОВИДА в СРЕДЕ { d};
если (ПРОВИД) есть (ВИД),
определяющий СЛОВО идентификатор в СРЕДЕ
выдающий имя ВИДА {48а}.
* описание идентификаторов:
описание тождеств для ПРОВИДА
через ЇОПИСАНИЯ в СРЕДЕ {а};
описание переменных как имен ПРОВИДА
через .'ОПИСАНИЯ в СРЕДЕ {е}.
{Примеры:
цел m = 4096 • проц г 10 = вещ : псч X 10
проц с) ш = 4096