4096 • вещ : псч X 10
вещ х, у • проц рр := вещ : псч X 10
рр := вещ : псч X 10 • х}
4.4.2. Семантика
Описание-тождеств D исполняется следующим образом:
совместно исполняются составляющие источники-для ПРОВИДА из D;
Для каждого составляющего определения-тождества D1 из D
выдача V источника-для-ПРОВИДА данного D1 приписывается <4.8.2.а} определяющему-идентификатору этого D1.
Описание-переменных D исполняется следующим образом:
задание-генератора {5.2.3.1 .b} G этого D и все источники-для-ПРО- ВИДА, если они есть, составляющих определений-переменных из D исполняются совместно;
Для каждого составляющего определения-переменной-через СЛОВО- для имени-ВИДА D1 из D,
пусть W1 — какой-то „вариант” {с} для 'ВИДА' значения, именуемого выдачей N данного G;
пусть N1 — вновь созданное, имя, равное N по области действия и именующее W1;
если N1 - составное имя <2.1.3.2.Ь}, то N1 снабжается поды- менами <2.1.3.3.е, 2.1.3.4.g};
N1 приписывается {4.8.2.а} определяющему-идентификатору данного D1;
выдача источника-для-ПРОВИДА, если он есть, этого D1 присваивается <5.2.1.2.b}Nl.
{Фактический-описатель, общий для нескольких определений-переменных, исполняется только однажды. Например, исполнение
цел m := 10; [1 : m +:= 1] цел р, q; печ (ш)
вызовет печать 11, а не 12; кроме того, р и q будут приписаны два новых локальных имени, именующих массивы с паспортами ((1, 11)) и неопределенными элементами.}
„Вариантом” значения V для вида М будет некоторое значение W, приемлемое для <2.1.3.6.d} М и определяемое следующим образом:
Случай А: М есть 'структура содержащая !ПОЛЯ в себе':
Для каждого 'СЛОВА для выборки ВИДА', заложенного в эти '!ПОЛЯ',
полем, выбираемым по 'СЛОВУ' в W, будет вариант для 'ВИДА' того поля, которое выбирается по СЛОВУ в V;
Случай В: М есть '7ПОДВИЖНЫЙ МАССИВ из ВИДА1':
паспортом значения W служит паспорт данного значения V;
каждый элемент этого W есть вариант для 'ВИДА1' некоторого элемента значения V;
Остальные случаи:
W - любое значение, приемлемое для М.
Выдачей фактического-описателя-процедуры является какая-нибудь процедура {, вид которой не существен}.
Описания операций
{Описания-операций задают определяющие-обозначения-операций.
Пример:
on тс = (вещ а, Ь) вещ : (З X а < b I al Ь).
В отличие от случая, например, описаний-идентификаторов, в одну и ту же зону могут входить более одного описания-операции с одним и тем же знаком-АФФИКСА; например, предыдущий пример прекрасно может находиться в одной зоне с
on тс = (компл маккарти, джон) компл: (псч < .5 І маккарти I джон) ;
в этом случае обозначение-оПерации тс называется „перегруженным”.} 4.5.1. Синтаксис
ОПЕРАЦИЯ :: ДВУМЕСТНАЯ; ОДНОМЕСТНАЯ.
АФФИКС :: ИНФИКС; ПРЕФИКС.
описание операций как ПРОВИДА
через [ОПИСАНИЯ в СРЕДЕ {41а}:
знак операция {94d}, формальный план ПРОВИДА
в СРЕДЕ {Ь, 46р, -},
групповое определение операций как ПРОВИДА через [ОПИСАНИЯ в СРЕДЕ {41b, с}.
формальный план процедуры в СРЕДЕ {в}: ПУСТО.
определение операции как ПРОВИДА через
АФФИКС для ОПЕРАЦИИ в СРЕДЕ {41с}:
определяющее АФФИКС обозначение операции в СРЕДЕ
выдающее ОПЕРАЦИЮ {48а}, знак определяется как {94d}, источник вида ОПЕРАЦИЯ для ПРОВИДА в СРЕДЕ {44d}.
{Примеры:
a) on V= (лог а, Ь) лог : (а I истина I Ь)
с) V = (лог а, Ь) лог : (а I истина I Ь) }
4.5.2. Семантика
Исполнение описания-операций состоит в совместном исполнении его составляющих определений-операций.
Определение-операции исполняется приписыванием {4.8.2.а} его определяющему-обозначению-операции процедуры, выдаваемой его источ- ником-для-ПРОВИДА.
4.6. Описатели
{Описатели специфицируют виды. Всякий описатель является или определителем, явно описывающим какой-то вид, или использующим-индикато- ром-вида, который употребляется вместо некоторого определителя через описание-вида. Определители формируются из символов пуст, цел, вещ, лог и лит (10.2.2) при помощи других символов, а именно имя, ст, [ ], проц и об. Например, проц (вещ) лог специфицирует вид 'процедура с параметром вида вещественное вырабатывающая логическое'
.Фактические-описатели, применяемые главным образом в генераторах, требуют, чтобы в них были заданы границы. Формальные-описатели, применяемые главным образом в формальных-параметрах и ядрах, не требуют границ. Следующий за имя описатель всегда 'виртуальный' и может, поскольку подвижность есть свойство имен, специфицировать подвижный МАССИВ из ВИДА'. Так как в генераторах фактические-описатели неявно следуют за 'имя', они также могут специфицировать 'подвижный МАССИВ из ВИДА'.}
Синтаксис
ЛЮБОЙ :: НЕФОРМАЛЬНЫЙ; формальный.
НЕФОРМАЛЬНЫЙ :: виртуальный; фактический.
ЗНАЧЕНИЯ :: ЗНАЧЕНИЕ; !ЗНАЧЕНИЯ ЗНАЧЕНИЕ.
НЕФОРМАЛЬНЫЙ описатель ЗНАЧЕНИЯ
в СРЕДЕ {с, е, g,h, 523а, b}:
НЕФОРМАЛЬНЫЙ определитель ЗНАЧЕНИЯ
в СРЕДЕ { с, d, g, h, о, s, -};
использующий ИНДИКАТ индикатор вида в СРЕДЕ
выдающий ЗНАЧЕНИЕ НОМЕР {48b, -}
формальный описатель ЗНАЧЕНИЯ
в СРЕДЕ {е, h, р, г, u, 34k, 44а, 541а, Ь, е, 551а}:
если ЗНАЧЕНИЕ фиксирует ЗНАЧЕНИЕ {47а, Ь, с, -}, формальный определитель ЗНАЧЕНИЯ
в СРЕДЕ {с, d, h, о, s, -};
использующий ИНДИКАТ индикатор вида в СРЕДЕ выдающий ЗНАЧЕНИЕ 1 НОМЕР [48b, j
если ЗНАЧЕНИЕ фиксирует ЗНАЧЕНИЕІ {47а, Ь, с, -}.
ЛЮБОЙ определитель имени ВИДА в СРЕДЕ {а, Ь, 42с}:
знак имя {94d},
виртуальный описатель ВИДА в СРЕДЕ {а}.
ЛЮБОЙ определитель структуры
содержащей !ПОЛЯ в себе в СРЕДЕ {а, Ь, 42с}:
знак структура {94d}, упакованный кратким
ЛЮБОЙ образ !ПОЛЕЙ среди !ПОЛЕЙ в СРЕДЕ £ е J.
е^ ЛЮБОЙ образ ІПОЛЕЙ1 среди ІПОЛЕЙ в СРЕДЕ { d, е}:
ЛЮБОЙ описатель ВИДА в СРЕДЕ {а, Ь},
групповое определение полей вида ВИД
среди ІПОЛЕЙ через ІПОЛЯ1 в СРЕДЕ {41b, с};
если (ІПОЛЯ1) есть (!ПОЛЯ2 1ПОЛЯЗ),
ЛЮБОЙ описатель ВИДА в СРЕДЕ {а, Ь},
групповое определение полей вида ВИД
среди ІПОЛЕЙ через !ПОЛЯ2в СРЕДЕ {41b, с},
знак а также {94f},
ЛЮБОЙ образ ІПОЛЕЙЗ среди ІПОЛЕЙ в СРЕДЕ {е}.
определение поля вида ВИД среди ІПОЛЕЙ
через СЛОВО для выборки ВИДА в СРЕДЕ {41с}: определяющий СЛОВО указатель поля вида ВИД среди !ПОЛЕЙ С48с}.
НЕФОРМАЛЬНЫЙ определитель подвижного МАССИВА
из ВИДА в СРЕДЕ {а, 42с}:
знак подвижное C94d}, НЕФОРМАЛЬНЫЙ описатель МАССИВА из ВИДА в СРЕДЕ {а}.
ЛЮБОЙ определитель МАССИВА из ВИДА в СРЕДЕ {а, Ь, 42с}: индексованный ОФОРМЛЕННЫЙ
ЛЮБОЙ диапазон МАССИВА в СРЕДЕ -Ci, j, k, 1}, ЛЮБОЙ описатель ВИДА в СРЕДЕ {а, Ь}.
ЛЮБОЙ диапазон вектора МАССИВОВ в СРЕДЕ Ch, і}: ЛЮБОЙ диапазон вектора в СРЕДЕ {j, k, 1}, знак а также C94f}, ЛЮБОЙ диапазон МАССИВА в СРЕДЕ Ci, j, k, 1}.
фактический диапазон вектора в СРЕДЕ Ch, і}:
нижняя граница в СРЕДЕ Ст}, знак вплоть до C94f}, верхняя граница в СРЕДЕ Сп};
верхняя граница в СРЕДЕ Сп}.
виртуальный диапазон вектора в СРЕДЕ Ch, і}: возможный знак вплоть до C94f}.
формальный диапазон вектора в СРЕДЕ Ch, і}: возможный знак вплоть до C94f}.
нижняя граница в СРЕДЕ {j, 532f, g}:
основа в СРЕДЕ раскрыто выдающая целое C32d}.
п) верхняя граница в СРЕДЕ С j, 532f}:
основа в СРЕДЕ раскрыто выдающая целое C32d}.
ЛЮБОЙ определитель ПРОЦЕДУРЫ в СРЕДЕ {а, Ь, 42с}:
знак процедура C94d}, формальный план ПРОЦЕДУРЫ в СРЕДЕ Ср}.
формальный план процедуры 7ПАРАМЕТРИЗОВАННОЙ вырабатывающей ЗНАЧЕНИЕ в СРЕДЕ Со, 45а}: если ^ПАРАМЕТРИЗОВАННАЯ) есть (ПУСТО), формальный описатель ЗНАЧЕНИЯ в СРЕДЕ СЬ};
если ^ПАРАМЕТРИЗОВАННАЯ) есть (с [ПАРАМЕТРАМИ), упакованный кратким групповой
описатель .'ПАРАМЕТРОВ в СРЕДЕ Cq, г}, формальный описатель ЗНАЧЕНИЯ в СРЕДЕ СЬ}.
групповой описатель [ПАРАМЕТРОВ ПАРАМЕТРА в СРЕДЕ Ср, q}: групповой описатель [ПАРАМЕТРОВ в СРЕДЕ Cq, г}, знак а также C94f}, групповой описатель ПАРАМЕТРА в СРЕДЕ С г}.
г) групповой описатель
параметра вида ВИД в СРЕДЕ Ср, q}: формальный описатель ВИДА в СРЕДЕ <Ь}.
s) |
ЛЮБОЙ определитель объединения !ОБЫЧНЫХ1 ОБЫЧНОГО! воедино в СРЕДЕ {а, Ь, 42с}-: если неверно что ПУСТО родственно ’ОБЫЧНЫМ 1 ОБЫЧНОМУ! {47f}, знак объединение {94d}, упакованный кратким групповой описатель ЗНАЧЕНИЙ в СРЕДЕ -Ct, и}, если ЗНАЧЕНИЯ сплетены с 1ОБЫЧНЫМИ2 {47g}- и укрытые 1ОБЫЧНЫЕ1 ОБЫЧНОЕ! входят в укрытые ЮБЫЧНЫЕ2 -[731J- и укрытые ЮБЫЧНЫЕ2 входят в укрытые 1ОБЫЧНЫЕ1 ОБЫЧНОЕ! {731, ш}. |
t) |
групповой описатель ІЗНАЧЕНИЙ ЗНАЧЕНИЯ в СРЕДЕ {s, t}: групповой описатель 13НАЧЕНИЙ в СРЕДЕ {t, и}, знак а также {94f}-, групповой описатель ЗНАЧЕНИЯ в СРЕДЕ {и}. |
U) |
групповой описатель ЗНАЧЕНИЯ в СРЕДЕ {s, t}: формальный описатель ЗНАЧЕНИЯ в СРЕДЕ {Ь} {Примеры: а) [1 : п] вещ • лицо Ь) [ ] веш • строк
h) [1 : пт, 1 : п] вещ і) 1 : m, 1 : n j) 1 : n k) : 1) : m) 1 n) n о) проц (лог, лог) лог р) (лог, лог) лог q) лог, лог г) лог s) об (цел, лит) t) цел, лит и) цел} {О фактических-описателях-ЗНАЧЕНИЯ-НОМЕР см. 4.2.1с, о фактиче- |
ских-описателях-процедуры см. 4.4.l.b.
Не существует описателей, специфицирующих такие виды, как 'объединение целого объединения целого вещественного воедино воедино' или 'объединение целого вещественного целого воедино'. В действительности описатели об (цел, об (цел, вещ)) и об (цел, вещ, цел) можно написать, но в обоих случаях специфицируемым видом будет 'объединение целого вещественного воедино’ (, что с таким же успехом можно выписать и как 'объединение вещественного целого воедино') .}
4.6.2. Семантика
Выдача W фактического-описателя-ВЙДА D в окружении Е определяется следующим образом:
Если 'ВИД' есть некоторое 'СОСТАВНОЕ', то
пусть D1 в Е1 „развертывается” {с} из D в Е;
W — выдача {определителя]- D1 в {локализующем, см. 3.2.2.Ь,} окружении, устанавливаемом по Е и вокруг Е1;
иначе
W - любое значение {приемлемое для 'ВИДА'}.
Выдача W фактического-определителя-СОСТАВНОГО D определяется следующим образом:
Случай А: 'СОСТАВНОЕ' является 'структурой содержащей !ПОЛЯ в себе':
совместно исполняются составляющие описатели данного D;
каждое поле выдачи W есть вариант {4.4.2.с}
(і) выдачи последнего составляющего описателя-ВИДА из D, находящегося перед составляющим определяющим-указа- телем-поля этого D, выбирающим {2.1.5.g} данное поле (И) для данного 'ВИДА';
Случай В: 'СОСТАВНОЕ' является 'МАССИВОМ из ВИДА':
совместно исполняются все составляющие нижние- и верхние-границы данного D и его описатель D1;
Для і = 1, ..., п, где п — число 'векторов', содержащихся в 'МАССИВЕ',
пусть lj — выдача нижней-границы, если она есть, і-го составляющего диапазона-вектора этого D, а иначе 1, будет 1;
пусть Uj — выдача верхней-границы этого диапазона- вектора,
• W состоит из
паспорта ((li.Uj), ..., (ln,un)),
вариантов выдачи описателя D1 для 'ВИДА';
Случай С: 'СОСТАВНОЕ' является 'подвижным МАССИВОМ из ВИДА': • W — выдача описателя данного D.
Сцена S, „развертываемая из” фактического-описателя-СОСТАВНО- ГО D в окружении Е, определяется следующим образом:
Если видимый прямой наследник D1 данного D есть некоторый индика- тор-вида, то
S — сцена, развертываемая из сцены, выдаваемой D1 в Е, иначе {D1 - определитель},
S — составляется из D1 и Е.
Всякий данный описатель-3НАЧЕНИЯ „специфицирует” вид 'ЗНАЧЕНИЕ'.
С о о т н о ш е н и я между видами
{Некоторые виды должны фиксироваться, потому что вид никакого значения не может быть подвижным {2.1.3.6.Ь}. Родственные объединения не должны допускаться во избежание двусмысленности. Множество 'ПРЕДСТАВИТЕЛЕЙ' и 'ОБЫЧНЫХ' может быть сплетено заменой всех этих 'ПРЕДСТАВИТЕЛЕЙ' их 'ОБЫЧНЫМИ' компонентами.}
Синтаксис
А) НЕСОСТАВНОЕ :: ПРОСТОЕ; ИМЯ ВИДА; ПРОЦЕДУРА; ПРЕДСТАВИТЕЛЬ; пустое значение.
7ОБЫЧНОЕ :: 1ОБЫЧНЫЕ; ПУСТО.
73НАЧЕНИЯ :: ЗНАЧЕНИЯ; ПУСТО.
ЕСЛИ НЕСОСТАВНОЕ фиксирует
НЕСОСТАВНОЕ {b, е, 46b, 521с, 62а, 71п} : ЕСЛИ истина.
ЕСЛИ МАССИВ из ВИДА2 фиксирует
7ПОДВИЖНЫЙ МАССИВ изВИДАІ {b, е, 46b, 521с, 62а, 71 п}:
ЕСЛИ ВИД2 фиксирует ВИДІ {а, Ь, с, -}.
ЕСЛИ структура содержащая !ПОЛЯ2 в себе фиксирует структуру содержащую !ПОЛЯ1 в себе {b, е, 46b, 521с, 62а, 71п}:
ЕСЛИ 1ПОЛЯ2 фиксируют ЇПОЛЯ1 {d, е,1
ЕСЛИ !ПОЛЯ2 ПОЛЕ2 фиксируют ІПОЛЯ1 ПОЛЕ1 {с, d}:
ЕСЛИ !ПОЛЯ2 фиксируют !ПОЛЯ1 {d, е, -} и ПОЛЕ2 фиксирует ПОЛЕ1 {е, -}.
ЕСЛИ СЛОВО для выборки ВИДА2
фиксирует СЛОВО для выборки ВИДА1 {с, d}:
ЕСЛИ ВИД2 фиксирует ВИДІ {a,b, с, - }.
ЕСЛИ 7ОБЫЧНЫЕ1 родственны 7ОБЫЧНЫМ2 {f, 46s}-: если (7ОБЫЧНЫЕ2) есть (ОБЫЧНОЕ 7ОБЫЧНЫЕЗ), ЕСЛИ 7ОБЫЧНЫЕ1 ОБЫЧНОЕ родственны 7ОБЫЧНЫМЗ {f} или ОБЫЧНОЕ скреплено с объединением 7ОБЫЧНЫХ1 7ОБЫЧНЫХЗ воедино {71m}-;
если (7ОБЫЧНЫЕ2) есть (ПУСТО), ЕСЛИ ложь.
ЕСЛИ ЗНАЧЕНИЯ сплетены с 1ОБЫЧНЫМИ {g, 46s}:
если (13НАЧЕНИЯ) есть (ЮБЫЧНЫЕ), ЕСЛИ истина;