Число различаемых целых или вещественных чисел данного размера увеличивается (уменьшается) вместе с ним вплоть до достижения опреде­ленного размера, а именно до „числа добавочных удлинений” (взятого с обратным знаком „числа добавочных укорочений”) целых или веществен­ных чисел соответственно {10.2.1.a, b, d, е}, после чего оно остается посто­янным.

  1. Для объяснения смысла приведения, называемого обобщением, и описанных в стандартном-вступлении обозначений-операций предполагают, что арифметические значения обладают следующими свойствами:

  2. для каждой пары целых чисел или вещественных чисел одинаково­го размера определено соотношение „быть меньше” в его обычном ма­тематическом смысле {10.2.3.3.а, 10.2.3.4.а};

  3. для каждой пары целых чисел одинакового размера может суще­ствовать отличимое от них третье число того же размера: первое целое число „минус” второе {10.2.3.3.gj;

  4. для каждой пары вещественных чисел одинакового размера могут существовать три различимых вещественных числа того же размера: первое вещественное число „минус” („умноженное на”, „деленное на”) второе число {10.2.3.4.g, 1, mJ;

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

  6. каждое целое число данного размера „обобщаемо” до некоторого близкого к нему вещественного числа того же размера {6.5

  7. каждое целое (вещественное) число данного размера может быть „удлинено до” некоторого близкого к нему целого (вещественного) числа, имеющего на единицу больший размер {10.2.3.3.q, 10.2.3.4.nJ. f) Всякое „истинностное значение” есть или „ИСТИНА”, или „ЛОЖЬ”. Его видом является 'логическое'.

  8. Каждая „литера” „эквивалентна” некоторому неотрицательному целому числу размера нуль - ее „целочисленному эквиваленту” {10.2.1 .п }; это соотношение определено только в той степени, что разные литеры име­ют разные целочисленные эквиваленты и существует „наибольший целочис­ленный эквивалент” {10.2.1.р} . Видом литеры является 'литерное'.

  9. Единственное „пустое значение” есть „пустое”. Его видом является 'пустое значение'.

{Исполнение конструкта выдает пустое значение, когда нет надобности в более полезном результате. Поскольку синтаксисом не предусмотрены переменные-вида-пустое-значение, описания-тождеств-для-пустого-значения, формальные-параметры-вида-пустое-значение, программист не может вос­пользоваться пустыми значениями, за исключением тех, которые появляют­ся при объединении (6.4) .}

  1. Областью действия всякого простого значения является область дей­ствия первичного окружения {2.2.2.а}.

  1. Имена.

  1. Всякое „имя” есть значение, которое может или „начать именовать”

{d,5.2.3.2.а, 5.2.1.2.b} какое-нибудь другое значение, или быть „псевдоиме­нем” {и не именовать тогда никакого значения}; более того, для каждого вида, начинающегося с 'имя', существует в точности одно имя этого вида, которое является псевдоименем.

Имя может быть „вновь созданным” {при исполнении генератора (5.2.3.2) или ФОРМЫ-после-векторизации (6.6.2), когда некоторое состав­ное имя снабжается подыменами (2.1.3.3.Є, 2,1.3.4.g) и, возможно, когда имя „генерируется” (2.1.3.4.j, 1) }. Созданное таким образом имя отличает­ся от всех остальных уже существующих имен.

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

  1. Видом всякого имени N является некоторое 'имя ВИДА' и любое именуемое N значение должно быть „приемлемо для” {2.1,3.6.d} этого 'ВИДА'. Если 'ВИД' есть какое-то 'СОСТАВНОЕ', то N называется „состав­ным именем”.

  2. Область действия всякого имени — это область действия некоторого конкретного окружения {, которым обычно будет „локализующее окруже­ние” (5.2.3.2.Ь) некоторого генератора}. Область действия имени, являю­щегося псевдоименем, есть область действия первичного окружения {2.2.2.а}.

  3. Если N — составное имя, именующее структуру (массив) V {2.1.3.3, 2.1.3.4}, и какое-то его подымя {2.1.2.g}, выбираемое {2.1.3.3.Є, 2.1.3.4.g} по 'СЛОВУ' (индексу) 1, начинает именовать {новое} значение X, то N начинает именовать структуру (массив), отличающуюся от V толь­ко своим полем (элементом), выбираемым по 1, которое {стало теперь} этим X.

{Относительно вида подымени см. 2.1.3.3Ди 2.1.3.4.f}

  1. Структуры.

  1. Всякая „структура” составлена из последовательности других значе­ний — ее „полей”, каждое из которых „выбирается” {Ь} по определенному 'СЛОВУ' {9.4.2.1.А} {О выборке поля по указателю-поля см. 2.1,5.g.}

{Упорядоченность полей структуры используется в семантике записей-структуры (3.3.2.Ь), текстов-формата (10.3.4) и в выстраива­нии (10.3.2.3.с).}

  1. Видом структуры V является некоторая 'структура содержащая !ПОЛЯ в себе'. Если заложенное в эти '!ПОЛЯ' п-е 'ПОЛЕ' есть некоторое 'СЛОВО для выборки ВИДА', то это п-е поле значения V „выбирается” по данному 'СЛОВУ' и приемлемо для {2.1,3.6.d} данного 'ВИДА'.

  2. Область действия всякой структуры — это самая младшая из обла­стей действия ее полей.

Если вид имени N {, именующего какую-то структуру,} есть неко­торое 'имя структуры содержащей !ПОЛЯ в себе' и выполняется предикат 'если СЛОВО для выборки ВИДА находится в !ПОЛЯХ' {7.2.l.b, с}, то ви­дом выбираемого {е} по этому 'СЛОВУ' подымени данного N является 'имя ВИДА'.

  1. Когда имя N, именующее структуру V, „снабжается подыменами” {е, 2.1.3.4.g, 4.4.2.b, 5.2.3.2.а}, тогда для каждого 'СЛОВА', выбирающего поле F в V:

  2. создается новое подымя М с такой же, как и у N, областью дей­ствия;

  3. М начинает именовать поле F;

  4. М называется именем, „выбираемым” по этому 'СЛОВУ' в N;

  5. если М — составное имя {2.1.3.2.6}, то оно само снабжается поды­менами { е, 2.1.3.4.gl.

  1. Массивы.

  1. Всякий {п-мерный} „массив” составлен из „паспорта” и последова­тельности других значений, его „элементов”, каждый из которых можно „выбрать” по определенному набору из п целых чисел, называемому „ин­дексом” этого элемента.

  2. „Паспорт” имеет форму

((11,41), (І2 , U2) , On,Un)),

где каждая пара (lj ,Uj), і = 1, .... п, является целочисленной „граничной парой”, в которой lj есть і-я „нижняя граница”, а щ есть і-я „верхняя гра­ница”.

  1. Если щ < lj для некоторого і, і = 1,..., п, то паспорт называется „вы­рожденным” и существует единственный элемент массива, называемый „скрытым элементом” {и не выбираемый ни по какому индексу; см. так­же 5.2.1.2.Ь}; в противном случае число элементов равно

(uj - lj + 1) X (u2 - 12 + 1) X ... X (un - ln + 1) и каждый из них вы­бирается ПО определенному индексу (Г1 , ..., Гп) , где lj < Tj < Uj, і = 1,..., п.

  1. Вид всякого массива V — это 'МАССИВ из ВИДА', где 'МАССИВ' со­держит 'вектор' столько раз, сколько граничных пар в паспорте этого V, и каждый элемент значения V приемлем для {2.1.3.6.d} 'ВИДА'.

{ Например, если [ ] об (цел, вещ) ruir = (1; 2,0), то вид выдачи ruir есть 'вектор из объединения целого вещественного воедино', вид ее первого элемента есть 'целое', а вид второго — 'вещественное'.}

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

  2. Массив вида 'МАССИВ из ВИДА' может именоваться либо „именем подвижного” с видом 'имя подвижного МАССИВА из ВИДА1', либо „име­нем фиксированного” с видом 'имя МАССИВА из ВИДА1', где {в обоих случаях} ,ВИД' „фиксирует” {2.1.3.6.Ь} 'ВИДІ'.

{Это различие предполагает возможную разницу в способе, которым данное значение хранится в вычислителе. В случае подвижного должно быть позволено присваивать {5.2.1.2.Ь} массивы с различными границами одно­му и тому же имени, в то время как в случае фиксированного можно быть уверенным, что эти границы будут оставаться фиксированными с течение

всего времени существования данного имени. Отметим, что „подвижность” есть свойство имени: указываемое значение является в обоих случаях од­ним и тем же массивом.}

Если видом имени N {, именующего массив,} является некоторое 'имя 7ПОДВИЖНОГО МАССИВА из ВИДА’, то видом каждого подымени этого N является 'имя ВИДА'.

  1. Когда имя N, именующее массив V, „снабжается подыменами” {g, 2.1.3.3.Є, 4.4.2.b, 5.2.1.2.Ь, 5.2.3.2.а}, тогда для каждого индекса, выби­рающего элемент Е в V;

  • создается новое подыми М с такой же, как и у N, областью дей­ствия;

  • М начинает именовать элемент Е;

  • М называется именем, „выбираемым” в N по этому индексу;

  • если М — составное имя {2.1.3.2.Ь}, то оно само снабжается поды­менами {g, 2.1.3.3.е}

{В дополнение к выбору по индексу элемента (а) или имени (g) мож­но выбирать значение или генерировать новое имя, именующее такое значе­ние, с помощью отрезка (h, і, j) или 'СЛОВА' (k, 1). Как эти отрезки, так и индексы используются при исполнении вырезок (5.3.2.2.) .}

  1. Всякий „отрезок” — это набор из п элементов, причем каждый эле­мент есть либо целое число {, соответствующее индексу}, либо тройка (1, u, d) {, соответствующая отрезку или возможной-сдвинутой-нижней- границе}, так что по крайней мере один из элементов отрезка является тройкой {; если все эти'элементы - целые числа, то данный n-набор есть индекс (а)}. Каждый из элементов упомянутых троек или является целым числом, или „отсутствует”.

{Отрезок (или индекс) выдается при исполнении индексатора (5.3.2.2.Ь).}

  1. Массив W {размерности т}, „выбираемый” по некоторому отрезку Т в {п-мерном, 1 < m < ц} массиве V, определяется так:

  • Пусть Т состоит из целых чисел и троек Т], і = 1,..., n, m из которых фактически являются тройками; пусть j-я тройка есть (lj, Uj, dj), j = 1,..., m;

  • W составляется из:

  1. паспорта ((Ц - dj, Uj - dj), (12 - d2, u2 - d2>,..., (lm - dm, um — dm))J

  2. элементов массива V, причем выбираемым в W по индексу (Wj, ..., wm ){lj - dj < Wj < Uj — dj} элементом, если он существу­ет, будет элемент, выбираемый В V ПО индексу (V1 , ..., vn), опре­деляемому следующим образом:

Для і = 1,..., п,

Случай А : Tj — целое число:

  • vi ~ Тр

Случай В : Т, есть j -я тройка (lj, Uj, dj) отрезка Т:

  1. Vi = Wj + dj.Имя М, „генерируемое” по отрезку Т из имени N, именующего мас­сив V, есть имя {фиксированного, — не обязательно вновь созданное}-, имеющее ту же область действия, что и N. Имя М именует массив W, выби­раемый {і} по Т в V. Каждое подыми этого М, выбираемое по индексу lw, является одним из выбираемых по некоторому индексу lv {уже суще­ствующих} подымен имени N, где каждый индекс iv определяется по этому Т и соответствующему lw определенным в предыдущем подразделе мето­дом.

  2. Массив W, „выбираемый” по 'СЛОВУ' в массиве V {, каждый эле­мент которого является структурой,} составляется из:

  1. паспорта этого V и

  2. выбираемых по данному 'СЛОВУ' в элементах этого V полей; при­чем выбираемым в W по некоторому индексу 1 элементом, если он су­ществует, будет выбираемое по данному 'СЛОВУ' поле в том элементе массива V, который выбирается по индексу 1.

  1. Имя М, „генерируемое” по 'СЛОВУ' из имени N, именующего мас­сив V {, каждый элемент которого является структурой}, есть имя {фик­сированного - не обязательно вновь созданное -}, имеющее ту же область действия, что и N. Имя М именует массив, выбираемый {к} в V по этому 'СЛОВУ'. Каждое выбираемое по индексу 1 подыми этого М является {уже существующим} именем, выбираемым {2.1.3.3.е} по данному 'СЛО­ВУ' в том подымени имени N, которое выбирается {g} по индексу 1.

  1. Процедуры.

  1. Всякая „процедура” есть сцена {2.1.1.1.d}, составленная из текста процедуры {5.4.1.1.а, Ь} и некоторого окружения {2.1.1.1.с}

{Процедура может быть „вызвана (5.4.3.2.Ь) и тогда будет исполнять­ся основа ее текста-процедуры.}

  1. Видом процедуры, составленной из текста-процедуры-выдающего- ПРОЦЕДУРУ, является 'ПРОЦЕДУРА'.

  2. Область действия всякой процедуры — это область действия ее окру­жения.

  1. Приемлемость значений.

  1. {Значений, вид которых начинается с 'объединение', не существует, но существуют имена, вид которых начинается с 'имя объединения', напри­мер и в об (цел, вещ) и;. В данном случае и, видом которого является 'имя объединения целого вещественного воедино', именует либо значение вида 'целое', либо значение вида 'вещественное'. При помощи сопоставляющего- предложения (3.4.1.q) в любой момент можно проверить, какая из этих си­туаций имеет место.}

Вид 'ЗНАЧЕНИЕ' „объединен из” вида 'ОБЫЧНОЕ', если это 'ЗНАЧЕ­НИЕ' - некоторое 'объединение 7ОБЫЧНЫХ1 ОБЫЧНОГО 7ОБЫЧНЫХ2 воедино'.

  1. Не существует значений, вид которых начинается с 'подвижное', но существуют имена подвижного, вид которых начинается с 'имя подвижно­го', например al в подв [1 :п] вещ al;. В данном случае al, видом которого

является 'имя подвижного вектора из вещественных', именует массив с видом 'вектор из вещественных' (см. также 2.1.3.4.f). Вообще существу­ют значения только тех видов, которые получаются „фиксацией”. }

Вид 'ЗНАЧЕНИЕ?' „фиксирует” вид 'ЗНАЧЕНИЕ1', если выполняется предикат 'если ЗНАЧЕНИЕ? фиксирует ЗНАЧЕНИЕ1' {4.7.1.а, Ь, с}

{В ходе процесса фиксации 'ЗНАЧЕНИЕ?', получается за счет устра­нения всех 'подвижное', содержащихся в 'ЗНАЧЕНИИ!' на тех местах, на которых они не содержатся ни в каком 'ИМЕНИ ЗНАЧЕНИЯЗ'. Так, на­пример,

'структура содержащая букву а для выборки подвижного вектора из литерных в себе';