1. паспорт ((1,п)) и

  2. п элементов, выбираемых по (і), принимающих значение ложь, ес­ли 1 < і < п — т, и (і + т — п) -е истинностное значение из { последова­тельности} W в противном случае.

  1. Естественное логическое значение последовательности-ДВОИЧНЫХ- цифр S есть кратчайшая последовательность истинностных значений, кото­рая, рассматривается как двоичное число (истина соответствует 1, а ложь — 0), совпадает с естественным целочисленным значением { с } последова­тельности S.

  2. Естественное целочисленное значение последовательности-двоичных- (-четверичных-, -восьмеричных-, -шестнадцатеричных-) цифр S есть целое число, двоичным (четверичным, восьмеричным, шестнадцатеричным) пред­ставлением которого в эталонном языке является S {9.3.bJ, где пред­ставления а (а), b (б), с (ц), d (д), е (е) и f (ф) рассматриваются как цифры, имеющие значения 10, И, 12,13,14и 15 соответственно.

8.3. Изображения строки

{ Изображения-строки дают удобный способ спецификации „строк” т.е. массивов вида ’вектор из литерных'.

Пример:

строк сообщение := ’’все в порядке”.}

  1. Синтаксис

  1. изображение вектора из литерных {80а} :

символ кавычка { 94b}, возможная строка {b}, символ кавычка {94b} .

  1. строка {а} : элемент строки {814bJ ,

последовательность элементов строки {814b} .

с)* изображение строки : изображение вектора из литерных { а} .

{ Примеры:

а) ”абв” Ь) абв}

  1. Семантика

Выдача изображения-строки Ь есть массив V, определяемый следую­щим образом:

  • пусть п — число элементов-строки, содержащихся в D;

  • паспорт V есть ((1, п));

  • для і = 1, ..., п элементом этого V с индексом (і) является естественное значение (8.1.4.2.b} і-го составляющего символа строки этого D.

{ ”а” есть изображение-литерного, а не изображение-строки. Однако во всех сильных позициях, например строк S := ”а”, оно может векторизовать­ся до некоторого массива (6.6) . Во всех остальных местах, где требуется массив, можно использовать ядро (5.5.1.1.а),

например,

об (лит, строк) cs := строк (”a”).J

9. ЗНАКИ И СИМВОЛЫ

  1. Знаки

{ Знаки (9.1.1.f) — это символы (9.1.1.h), возможно предшествуемые пояснениями (9.2.1.а). Следовательно, пояснения могут встречаться между символами повсюду, где синтаксис порождает непрерывный ряд знаков. Однако в нескольких местах синтаксис порождает исключительно символы, а не знаки, а именно в изображениях (8), текстах-формата (10.3.4.1.1.а) и, конечно, внутри пояснений. Поэтому на таких местах пояснения встречать­ся не могут. }

  1. Синтаксис

  1. старт ВЫБИРАЮЩЕГО ОФОРМЛЕННЫЙ {34а}.

если (ВЫБИРАЮЩЕЕ) есть (выбирающее по логическому), знак если ОФОРМЛЕННЫЙ { 94f, ;

если (ВЫБИРАЮЩЕЕ) есть (ВАРИАНТНОЕ),
знак выбрать ОФОРМЛЕННЫЙ { 94f, -} .

  1. вход в собственно ВЫБИРАЮЩЕЕ ОФОРМЛЕННЫЙ {34е}:

если (ВЫБИРАЮЩЕЕ) есть (выбирающее по логическому), знак то ОФОРМЛЕННЫЙ { 94f, -} ;

если (ВЫБИРАЮЩЕЕ) есть (ВАРИАНТНОЕ), знак в ОФОРМЛЕННЫЙ f 94f, J.

  1. продолжатель ВЫБИРАЮЩЕГО ОФОРМЛЕННЫЙ { 341}:

если (ВЫБИРАЮЩЕЕ) есть (выбирающее по логическому), знак иначе если ОФОРМЛЕННЫЙ { 94f, -} ;

если (ВЫБИРАЮЩЕЕ) есть (ВАРИАНТНОЕ),

знак либо выбрать ОФОРМЛЕННЫЙ { 94f, -}. , ,

  1. выход собственно ВЫБИРАЮЩЕГО ОФОРМЛЕННЫЙ і 341} :

если (ВЫБИРАЮЩЕЕ) есть (выбирающее по логическому), знак иначе ОФОРМЛЕННЫЙ {94f, -};

если (ВЫБИРАЮЩЕЕ) есть (ВАРИАНТНОЕ),

знак либо ОФОРМЛЕННЫЙ { 94 f, -} .

  1. финиш ВЫБИРАЮЩЕГО ОФОРМЛЕННЫЙ (34а) :

если (ВЫБИРАЮЩЕЕ) есть (выбирающее по логическому),

знак все ОФОРМЛЕННЫЙ [ 94f, -} ;

если (ВЫБИРАЮЩЕЕ) есть (ВАРИАНТНОЕ), знак конец выбора ОФОРМЛЕННЫЙ (94f, ■}. f) знак ПОНЯТИЕ:

возможная последовательность пояснений (92а} , символ ПОНЯТИЕ (94а, b, с, d, е, f, g, hj .

g)* знак : знак ПОНЯТИЕ {fj.

h)* символ : символ ПОНЯТИЕ { 94а, b, с, d, е, f, g, h} .

  1. Примечания и прагматы

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

С другой стороны, прагматы могут снабжать реализацию некоторым количеством информации, затрагивающей какие-то аспекты смысла данной программы, не определенные настоящим стандартом, например:

  • действие, которое следует предпринять при переполнении (2.1.4.3.11) или при нарушении правила об областях действия (, как в 5.2.1.2.Ь), например прагм включить проверку переполнения прагм, прагм выключить проверку переполнения прагм, прагм включить проверку областей действия прагм или прагм выключить проверку областей действия прагм;

  • действие, которое следует предпринять по завершении процесса трансляции, например прагм только транслировать прагм, прагм выдать содержимое памяти прагм или прагм запустить прагм;

  • что язык, который надо реализовать, является некоторым подъ­языком или надъязыком Алгола 68, например прагм нерекурсивная прагм (для текста-процедуры, предполагаемой нерекурсивной);

  • что трансляция может проверить истинность или попытаться дока­зать правильность некоторого утверждения, например;

цел а, Ь: чит ((а, Ь)) прагм здесь а > О АЬ > 0 прагм;

цел q : = 0, г : = а;

пока г > b прагм здесь а=ЬХ q + г А 0 < г прагм

цк (q +: = 1, г -: = Ь) кц

прагм здесь а = b X q+rA0<r<b прагм.

Прагматы можно также использовать, чтобы указать реализации, что данный входной текст надо дополнить каким-то другим текстом или отре­дактировать, например:

  • надо вызвать некоторую, предварительно оттранслированную пор­цию данной собственно-ирограммы, например прагм с модулем из биб­лиотеки прагм;

  • данный входной текст продолжается на некотором другом носите­ле, например прагм читать из другого файла прагм;

  • достигнут конец входного текста, например прагм конец прагм. 9.2.1. Синтаксис

А) ПОЯСНЕНИЕ :: прагмат; примечание.

  1. пояснение {80а, 9If, A341b, h,

А348а, b, с, А349а, А34А b] : ПОЯСНЕНИЕ [ b] .

  1. ПОЯСНЕНИЕ £а/:

символ ПОЯСНЕНИЕ ОФОРМЛЕННЫЙ {94h, -} , возможная последовательность элементов

ПОЯСНЕНИЯ ОФОРМЛЕННЫХ {с}, символ ПОЯСНЕНИЕ ОФОРМЛЕННЫЙ [94h, -} .

{ОФОРМЛЕННЫЙ :: краткий; выделенный; стиля НОМЕР.}

  1. элемент ПОЯСНЕНИЯ ОФОРМЛЕННЫЙ {b} : элемент основного набора {814с} ;

добавочный элемент ПОЯСНЕНИЯ ОФОРМЛЕННЫЙ { d} .

  1. Для каждого понятия, обозначаемого 'добавочным элементом ПОЯС- НИЯ ОФОРМЛЕННЫМ' { с, для которого не задано никакого гипер­правила в настоящем стандарте }гможно добавить порождающее пра­вило, каждой альтернативой которого будет какой-нибудь символ {1.1.3.1.f}, отличный от любого терминального порождения понятия 'элемент основного набора' {8.1.4.1.с} и такой, что никакое терми­нальное порождение 'добавочного элемента ПОЯСНЕНИЯ ОФОРМ­ЛЕННОГО' не совпадает с соответствующим 'символом ПОЯСНЕНИЕ ОФОРМЛЕННЫМ' ( 94h, -}.

{Так, например, примечанием может быть прим 0прим, но не

{ Примеры:

а) прагм листинг прагм •

т/і исходная программа будет распечатана $

с) 1 ° ?}

  1. Представления

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

{Назначение настоящего эталонного языка — использование его для представления собственно-программы и их наследных конструктов. Однако в разд. 10 он также применяется для определения стандартной языковой обстановки. Язык представления, приспособленный для использования в машине, называется языком реализации. Требования к языку реализации содержатся в приложении 2. }

Всякий „конструкт в языке представления” получается из терми- Нального порождения Т {1.1.3.2.f } соответствующего конструкта в стро­гом языке {1.1.3.2-е J заменой всех символов в Т их представлениями, ко­торые для данного эталонного языка заданы в подразделе 9.4.

[Так, например, собственно-программа в строгом языке с терминаль­ным порождением

'символ начало стиля f

'символ пропуск'

'символ конец стиля I

создает в эталонном языке собственно-программу начало пропуск конец./

  1. Эталонный язык

  1. Настоящий эталонный язык предусматривает представления для различных символов, включая произвольно большое число символов- ОБОЗНАЧЕНИЕ [, где ОБОЗНАЧЕНИЕ :: СЛОВО; ИНДИКАНТ; ИН­ФИКС- ПРЕФИКС.}. Представления для некоторых из них заданы ниже £9.4.1 J , и к ним можно добавить подходящие представления для симво- лов-буква - АЛФАВИТА-стиля-НОМЕР и символов-префиксный-стиля-НО- МЕР, а также любые терминальные порождения 'добавочных элементов ПОЯСНЕНИЯ ОФОРМЛЕННЫХ' {9.2.1.(1}и 'добавочных элементов стро­ки' {8.1.4.1.d}. Ни для одного из них не предусмотрено представлений {, но эти представления могут вводиться отдельными реализациями, чтобы весь набор имеющихся у них знаков был доступен для использования в ка­честве литер, чтобы обеспечить дополнительные или расширенные алфавиты для построения символов-СЛОВО и символов-ИНДИКАНТ и предусмотреть дополнительные символы для использования в качестве обозначений-опера­ций}. Однако нет/, и не должно быть,} никакого представления для сим- вола-буква-алеф и символа-первичный, за исключением представлений стандартного-вступления и других вступлений {10.1.3.Шаг б} . /Относитель­но прочих символов-ОБОЗНАЧЕНИЕ см. 9.4.2. Имеются также отдельные порождаемые синтаксисом символы, для которых вообще не предусмотре­но представлений, например символ-прагмат-краткий. Это не препятствует представлению таких символов в других языках представления}

  2. Если для некоторого символа задано более одного представления, то может выбираться любое из них. Более того, для какой-нибудь реализа­ции эталонного языка достаточно обеспечить только одно из них. Также не обязательно предусматривать представление для каждого конкретного символа-ПРЕФИКСНЫЙ или символа-НЕПРЕФИКСНЫЙ при том условии, что обеспечивается представление по крайней мере для одной версии /10.1.3.Шаг з} каждого обозначения-операции, описанного в стандартном- вступлении.

/Для некоторых разных символов заданы одинаковые или почти оди­наковые представления; например, представление „задано для символа- признак-процедуры, символа-двоеточие и символа-вплоть-до, а „ : ” — для символа-метка. Вне пределов примечаний, прагматов или изображений- строки из синтаксиса однозначно вытекает, какой из этих четырех симво­лов представлен вхождением любого знака, подобного одному из этих представлений. В этом случае также можно без какой бы то ни было дву­смысленности использовать для любого из них представление „ .. и для реализаций с ограниченным набором знаков это действительно может ока­заться необходимым. Можно отметить, что в таких реализациях не возник­нет никакой двусмысленности и в случае, когда „(/” и „/)" будут пред­ставлять симвоп-открыть-индексы-стиля-П и символ-закрыть-индексы-сти- ля-П соответственно.

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

  1. Тот факт, что о заданных [9.4.1.а} представлениях символов-бук- ва-АЛФАВИТА обычно говорится как о малых буквах, не означает, что не­льзя использовать соответствующие большие буквы.

  2. Пробел, переход на новую строчку или страницу — это „особенности типографского набора”. Эти особенности не принимаются во внимание и, когда они появляются между символами какого-нибудь конструкта в эта­лонном языке, они не оказывают влияния на смысл этого конструкта. Од­нако пробелы, содержащиеся в пределах изображения-строки или изобра­жения-литерного, являются одним из представлений символа-пробел { 9.4.1.b} , а не особенностью типографского набора. Когда представление символа в эталонном языке состоит из нескольких знаков [, например, до, : = }, эти знаки образуют один {неделимый }символ, и, если явно не оговорено противное { 9.4.2.2.а, с} , особенности типографского набора не могут разделять их.

  1. . Представления символов а) Символы для букв символ представление

  1. символ буква а [814с, 82к, 942В, A346b} а

символ буква б { 814с, 82к, 942В, A344b} б

символ буква в { 814с, 942В } в

символ буква г { 814с, 942В } г

символ буква д { 814с, 82к, 942В, A342f } д

символ буква е { 812h, 814с, 82k,"942В, А343е{ е

символ буква ж { 814с, 942В} ж

символ буква з {814с, 942В } з

символ буква и ( 814с, 942В, А345Ь_/ и

символ буква й (814с, 942В J й

символ буква к £ 814с, 942В, A341fJ к

символ буква л {814с, 942В, A341fj л

символ буква м { 814c, 942B j м

символ буква и {814с, 942В, A341hJ н

символ буква о {814с, 942В} о

символ буква п {814с, 942В, A341f] п

символ буква р {814с, 942В, А347с } р

символ буква с {814с, 82к, 942В, А348а} с

символ буква т {814с, 942В } т

символ буква у [814с, 942В, А341 f} у