{В настоящем стандарте синтаксис определяет, какие последовательно­сти символов являются терминальными порождениями понятия 'програм­ма', а семантика - какие действия осуществляются вычислителем, когда программа исполняется. Как синтаксис, так и семантика рекурсивны. Хотя некоторые последовательности символов могут быть терминальными по­рождениями 'программы' (см. также 1.1.3.2.f), порождаемыми более чем одним способом, эта синтаксическая неоднозначность не приводит к семан­тической двусмысленности.}

  1. В Алголе 68 предусмотрен специальный синтаксис для конструктов. Вместе с их рекурсивным определением он дает возможность описывать и пазличать произвольно большие деревья порождения, различать произволь- много значений данного вида (исключая такие виды, как 'логическое и стое значение') и различать как угодно много видов. Этот синтаксис поз­воляет существовать в вычислителе произвольно большому числу объектов и позволяет исполнению программы включать в себя произвольно боль­шое, не обязательно конечное, число действий. Из этого не следует, что спо­соб записи этих объектов в вычислителе тот же, что и в настоящем стандар­те и что он имеет те же возможности. Не предполагается, что эти два спосо­ба записи одинаковы и даже что между ними существует взаимно однознач­ное соответствие, фактически множество разных способов обозначения объектов данной категории может быть конечным. Не предполагается, что вычислитель может обрабатывать произвольные объемы предлагаемой ин­формации, что скорость вычислителя достаточна для исполнения заданной программы за предписанный промежуток времени и что количество объек­тов и соотношений, которые можно определить в вычислителе, достаточно для ее исполнения вообще.

  2. Модель гипотетического вычислителя, использующая реальную вы­числительную машину, называется „реализацией” Алгола 68, если она не ограничивает применение настоящего языка в других аспектах, отличных от упомянутых выше. Кроме того, если определяется язык А, собственно- программы которого являются также собственно-програмьйми языка В; и смысл каждой такой собственно-программы, определяемый языком А, совпадает с ее смыслом, определяемым языком В, то А называется „подъ­языком” для В, а В называется „надъязыком” для А.

{Так, например, подъязык Алгола 68 можно определить, опуская от­дельные правила синтаксиса, обедняя данное стандартное-вступление и/или оставляя не определенным кое-что, определяемое в настоящем стан­дарте. Тем самым можно будет обеспечить более эффективное решение определенных классов задач или осуществить реализацию для малых ма­шин.

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

Модель называют реализацией подъязыка, если она не ограничивает использование этого подъязыка в иных аспектах, нежели упомянутые вы­ше.

{См. 9.3.с по поводу термина „реализация эталонного языка”.}

  1. ПРЕДЛОЖЕНИЯ

{Предложения обеспечивают

  • иерархическую структуру программ,

  • введение новых блоков определений,

. • последовательную или совместную композицию, параллелизм, разветвления и циклы.

3.0.1. Синтаксис

  1. * фраза: основа ДЕЙСТВУЮЩАЯ {32d}; J

описание ІОПИСАНИЙ в СРЕДЕ {41а}. <

  1. ’выражение ПРИВОДИМО выдающее ВИД:

ОСНОВА {5А} в СРЕДЕ ПРИВОДИМО выдающая ВИД.

  1. ’оператор:

ОСНОВА {5А} в СРЕДЕ сильно выдающая пустое значение.

  1. ’константа вида ЗНАЧЕНИЕ : ПРИМЕНЯЮЩИЙ СЛОВО

идентификатор в СРЕДЕ выдающий ЗНАЧЕНИЕ {48а, Ь};

изображаемое в СРЕДЕ выдающее ЗНАЧЕНИЕ {80а}.

  1. * переменная вида ВИД : ПРИМЕНЯЮЩИЙ СЛОВО

идентификатор в СРЕДЕ выдающий имя ВИДА {48а, Ь}.

  1. * блок в СРЕДЕ : определяющее СЛОЙ последовательное

предложение ПРИВОДИМОЕ В СРЕДЕ {32а};

состав ВЫБИРАЮЩЕГО предложения

ОФОРМЛЕННЫЙ ПРИВОДИМЫЙ в СРЕДЕ {34b};

вариант выбирающий по ПРЕДСТАВИТЕЛЮ ПРИВОДИМЫЙ в

СРЕДЕ {34І};

ОФОРМЛЕННЫЙ цикл с ОПИСАНИЕМ в СРЕДЕ {35е};

ОФОРМЛЕННЫЙ подчиненный условию цикл в СРЕДЕ {35f};

текст процедуры в СРЕДЕ выдающий ПРОЦЕДУРУ {541а, Ь} {Блоки-в-СРЕДЕ появляются в определении „идентификации” (7.2.2.Ь).}

3.0.2. Семантика

Всякая „среда” есть некоторая 'СРЕДА’. „Средой конструкта” явля­ется 'СРЕДА', заложенная в прообраз этого конструкта, но не заложенная ни в какой содержащийся в этом прообразе 'определяющий СЛОЙ'. .

{Среда конструкта содержит запись обо всех описаниях, образующих окружение, в котором этот конструкт должен интерпретироваться.

Конструкты, содержащиеся в некотором блоке R, но не содержащиеся ни в каком меньшем блоке, содержащемся в R, можно назвать образую­щими „зону”. Все конструкты в данной зоне имеют одну и ту же среду, а именно среду непосредственно окружающей ее зоны с добавлением одного дополнительного 'СЛОЯ'. Синтаксис гарантирует (3.2.l.b, 3.4.1.і, j, k, 3.5.l.e, 5.4.1.l.b), что каждой 'ПАРЕ' (4.8.l.E), отражающей некоторое „свойство” в этом дополнительном 'СЛОЕ', соответствует определяющий- индикатор (4.8.1.а), содержащийся в каком-то определении в данной зо­не.}

  1. Замкнутые предложения

{Замкнутые-предложения обычно используют, чтобы создавать основы из последовательных-предложений, как, например,

(вещ х; чит (х); х) в

(вещх; чит (х); х) +3.14}

  1. Синтаксис

А) ПРИВОДИМОЕ :: ПРИВОДИМО выдающее ЗНАЧЕНИЕ.

) УПАКОВКА :: упакованное ОФОРМЛЕННОЕ.

замкнутое предложение в СРЕДЕ

ПРИВОДИМОЕ {22а, 5D, 551а, A341h, А349а}:

УПАКОВКА определяющего СЛОЙ последовательного предложения ПРИВОДИМОГО в СРЕДЕ {32а}

{СЛОЙ :: новые ?ОПИСАНИЯ 7МЕТКИ.}

{Пример:

а) начало х: =1; у: =2 конец}

{Выдачей замкнутого-предложения является вследствие предысполне- ния (2.1.4.1.с) выдача его составляющего последовательного предложе­ния.

  1. }Последовательные предложения

{Назначение последовательных-предложений состоит в:

  • построении новых блоков определений и

  • последовательной композиции действий.

Всякое последовательное-предложение состоит из возможно пустой последовательности непомеченных фраз, последняя из них, если она есть, является описанием, за которым идет последовательность возможно поме­ченных основ. Эти фразы и основы разделяются знаками-продолжать, а именно точками с запятой. Некоторые из этих основ могут, однако, раз­деляться завершителями, а именно выходами; основа, следующая за за­вершителем, должна быть помечена, чтобы быть достижимой. Значение последней основы или основы, предшествующей выходу, определяет зна­чение всего последовательного-предложения.

Например, следующее последовательное-предложение выдает значение истина тогда и только тогда, когда вектор а содержит целое число 8:

цел п; чит (п);

[1 : п] цел а; чит (а);

для і до п цк если а [і] = 8 то на найдено все кц;

ложь выход

найдено : истина}

  • .2.1. Синтаксис

  1. определяющее новые ?ПАРЫ последовательное предложение ПРИВОДИМОЕ В СРЕДЕ {31а, 34f, 1, 35h}:

кортеж с 7ПАРАМИ ПРИВОДИМЫЙ

в СРЕДЕ с новыми 7ПАРАМИ {Ь}

{Здесь 7ПАРЫ :: 7ОПИСАНИЯ 7МЕТКИ.}

  1. кортеж с 7ПАРАМИ ПРИВОДИМЫЙ в СРЕДЕ {а, Ь, 34с}:

основа в СРЕДЕ сильно выдающая пустое значение {d},

знак продолжать {94f},

кортеж с 7ПАРАМИ ПРИВОДИМЫЙ в СРЕДЕ {Ь};

если (7ПАРЫ) есть (! ОПИСАНИЯ 7ОПИСАНИЯ 7МЕТКИ),

описание ЮПИСАНИЙ в СРЕДЕ {41а}, знак продолжать {94f}, кортеж с 1ОПИСАНИЯМИ 7МЕТКАМИ ПРИВОДИМЫЙ в

СРЕДЕ {Ь};

если (7ПАРЫ) есть (МЕТКА 7МЕТКИ),

определение метки через МЕТКУ в СРЕДЕ {с},

кортеж с 7МЕТКАМИ ПРИВОДИМЫЙ в СРЕДЕ {Ь};

если (7ПАРЫ) есть (МЕТКА 7МЕТКИ) и ПРИВОДИМОЕ уравнивает ПРИВОДИМОЕ! и ПРИВОДИМОЕ? {е},

основа в СРЕДЕ ПРИВОДИМАЯ! {d}, знак завершить {94f}, определение метки через МЕТКУ в СРЕДЕ {с},

кэртеж с 7МЕТКАМИ ПРИВОДИМЫЙ? в СРЕДЕ {Ь};

если (?ПАРЫ)-есть (ПУСТО),

основа в СРЕДЕ ПРИВОДИМАЯ {d}.

  1. определение метки через СЛОВО для метки в СРЕДЕ {Ь}: определяющий СЛОВО идентификатор в СРЕДЕ выдающий метку {48а]-, знак метка {94f}.

  2. основа ДЕЙСТВУЮЩАЯ {b, 33b, g, 34i, 35d, 46m, n, 521c, 532e, 541a. b. 543c, A34Ab, c, d}:

ОСНОВА {5А,—}■ДЕЙСТВУЮЩАЯ.

  1. ЕСЛИ ПРИВОДИМО выдающее ЗНАЧЕНИЕ уравнивает ПРИВОДИМО! выдающее ЗНАЧЕНИЕ 1 и ПРИВОДИМО2 выдающее ЗНАЧЕНИЕ2 {b, 33b, 34d, h} : ЕСЛИ ПРИВОДИМО уравнивает ПРИВОДИМО! и

ПРИВОДИМО2 {f} и ЗНАЧЕНИЕ уравнивает ЗНАЧЕНИЕ! и ЗНАЧЕНИЕ2 {g}.

  1. ЕСЛИ ПРИВОДИМО уравнивает

ПРИВОДИМО! и ПРИВОДИМО2 {е, 522аТ: если (ПРИВОДИМО! есть (сильно),

ЕСЛИ (ПРИВОДИМО2) есть (ПРИВОДИМО);

если (ПРИВОДИМО2) есть (сильно).

ЕСЛИ (ПРИВОДИМО!) есть (ПРИВОДИМО).

  1. ЕСЛИ ЗНАЧЕНИЕ уравнивает ЗНАЧЕНИЕ! и ЗНАЧЕНИЕ2 Те}: * если (ЗНАЧЕНИЕ!) есть (ЗНАЧ ЕНИЕ2).

ЕСЛИ (ЗНАЧЕНИЕ) есть (ЗНАЧЕНИЕ!);

если (ЗНАЧЕНИЕ!) есть (временное ЗНАЧЕНИЕ2).

ЕСЛИ (ЗНАЧЕНИЕ) есть (ЗНАЧЕНИЕ!);

если (ЗНАЧЕНИЕ2) есть (временное ЗНАЧЕНИЕ!).

ЕСЛИ (ЗНАЧЕНИЕ) есть (ЗНАЧЕНИЕ2). h)* ПРИВОДИМОЕ основное предложение:

основа в СРЕДЕ ПРИВОДИМАЯ {d}. і) * определяющее предложение;

определяющее СЛОЙ последовательное

предложение ПРИВОДИМОЕ в СРЕДЕ {32а)-;

определяющее СЛОЙ выясняющее

предложение выдающее ВИД в СРЕДЕ {34с}- {Примеры:

  1. чит (xl) ; вещ s : = 0;

суммирование : для і до п цк (х! [і] > 0 I s +: =xl [і] І не положительное) кц выход не положительное : печ (s) • вещ s : = 0;

суммирование : для і до п цк (xl [і] > 01 s + := xl [і] I не положительное) кц выход не положительное : печ (s) • суммирование : для і до п цк (xl [і] > 01 s +: =х! [і] I не положительное) кц выход не положительное : печ (s) •

для і доп цк (xl [i] >0ls + :=xl [і] I неположительное) кц выход не положительное : печ (s) •печ (s)

  1. суммирование: d) печ (s) }

{Во многих случаях кортежи должны „уравниваться” (3.2.1.е). Заме­чания относительно уравнивания см. в 3.4.1.}

3.2.2. Семантика

  1. Выдачей последовательного-предложения в окружении Е является выдача исполнения,его кортежа или любого кортежа, исполняемого „вмес­то него” {5.4.4.2}, в окружении, „устанавливаемом” {Ь}вокругЕ соглас­но этому последовательному-предложению; требуется, чтобы по области действия эта выдача не была младше данного Е.

  2. Окружение Е, „устанавливаемое”

  • по окружению Е1, возможно не обусловленному, {которое опреде­ляет его область действия,}

  • вокруг окружения Е2, {определяющего его состав,}

  • согласно опре деляющему-новые-?П АРЫ-ПОНЯТИЮ С, возможно отсутствующему, {которое задает его участок,}

‘ >со значениями V, ..., Vn, возможно отсутствующими, {которые возможно буду і приписаны,}

определяется следующим образом:

  • если Е1 не обус: явлено, то пусть Е1 будет Е2;

  • Е младше Е1 , области действия и составлено из Е2 и нового участ­ка, соответствуюи го '7ПАРАМ', если С присутствует, а иначе соответ­ствующего 'ПУСТО';

Случай А: С есть опре' іяющее-предложение:

Для каждого сое Шлющего определения-вида М этого С, если они во­обще есть.

• сцена,составленная из

  1. фактического-описателя этого М и

  2. окружения, необходимого для {7.2.2.с} этого фактического-опи­сателя в Е, приписывается индикатору-вида этого М в Е;

Для каждого составляющего определения-метки L этого С, если они вообще есть,

• сцена, составленная из

  1. кортежа, для которого L — прямой наследник, и

  2. окружения Е, приписывается идентификатору-метки этого L в Е;

Если каждая 'ПАРА', заложенная в '7ПАРЫ', есть 'ИНФИКС для БИ­НАРНОГО' или 'СЛОВО для метки', то Е называется „нелокализую­щим” {см. 5.2.3.2.Ь};

Случай В: С есть задание-аргументов, заглавие-цикла или спецификация: Для і = 1, ..., п, где п - число 'ОПИСАНИЙ', заложенных в'7ПАРЫ', • Vj приписывается {4.8.2.а} і-му составляющему определяющему- идентификатору этого С в Е, если они вообще есть, а иначе {в случае невидимого заглавия-цикла} некоторому определяющему-букву- алеф-идентификатору-выдающему-целое;

Если С служит заглавием-цикла или спецификацией, то Е является нелокализующим.

{В остальных случаях, т.е. когда С отсутствует:

• Е является локализующим (см. 5.2.3.2.Ь), но дальнейшее не опре­делено. ]-

с) Выдача W всякого кортежа С определяется следующим образом:

Если С содержит прямую наследную основу, за которой нет знака-про- должать, то

  • W — выдача этой основы;

а иначе

  • исполняется описание или основа этого С, если они вообще есть;

  • W — выдача кортежа этого С.

{См. также 5.4.4.2. Случай А.}

  1. Совместные и параллельные предложения

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

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

Совместные-предложения, но не параллельные-предложения, могут вы­давать составные значения, составленные из выдач их составляющих основ.

Примеры совместных-предложений, выдающих составные значения:

[ ] цел q = (1,4, 9, 16, 25) ;

ст (цел цена, строк класс) велосипед : = (150, „спортивный”).

Пример параллельного-предложения, синхронизирующего еду и разго­воры за едой:

проц пуст есть, говорить; сема рот = уст 1;

пар начало

цк вниз рот; есть; вверх рот кц, цк вниз рот; говорить; вверх рот кц