Товары в корзине: 0 шт Оформить заказ
Стр. 1
 

245 страниц

1216.00 ₽

Купить ГОСТ 27974-88 — официальный бумажный документ с голограммой и синими печатями. подробнее

Официально распространяем нормативную документацию с 1999 года. Пробиваем чеки, платим налоги, принимаем к оплате все законные формы платежей без дополнительных процентов. Наши клиенты защищены Законом. ООО "ЦНТИ Нормоконтроль".

Наши цены ниже, чем в других местах, потому что мы работаем напрямую с поставщиками документов.

Способы доставки

  • Срочная курьерская доставка (1-3 дня)
  • Курьерская доставка (7 дней)
  • Самовывоз из московского офиса
  • Почта РФ

распространяется на язык программирования Алгол 68 и его варианты и устанавливает требования:

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

к реализациям языка программирования Алгол 68 и его вариантов, используемым при создании или эксплуатации программных средств, в части выполнения программ на языке Алгол 68

  Скачать PDF

Оглавление

1. Язык и метаязык

1.1. Метод описания

1.1.1. Введение

1.1.2. Прагматика

1.1.3. Синтаксис строгого языка

1.1.4. Семантика

1.2. Общие метаправила

1.2.1. Метаправила для видов

1.2.2. Метаправила, связанные с фразами и приведением

1.2.3. Метаправила, связанные со средствами

1.3. Общие гиперправила

1.3.1. Синтаксис общих предикатов

1.3.2. Выполнимость предикатов

1.3.3. Синтаксис общих конструкций

2. Вычислитель и программа

2.1. Терминология

2.1.1. Объекты

2.1.2. Соотношения

2.1.3. Значения

2.1.4. Действия

2.1.5. Сокращения

2.2. Программа

2.2.1. Синтаксис

2.2.2. Семантика

3. Предложения

3.0.1. Синтаксис

3.0.2. Семантика

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

3.1.1. Синтаксис

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

3.2.1. Синтаксис

3.2.2. Семантика

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

3.3.1. Синтаксис

3.3.2. Семантика

3.4. Выбирающие предложения

3.4.1. Синтаксис

3.4.2. Семантика

3.5. Циклические предложения

3.5.1. Синтаксис

3.5.2. Семантика

4. Описания, описатели и индикаторы

4.1. Описания

4.1.1. Синтаксис

4.1.2. Семантика

4.2. Описания видов

4.2.1. Синтаксис

4.2.2. Семантика

4.3. Описания приоритетов

4.3.1. Синтаксис

4.3.2. Семантика

4.4. Описания идентификаторов

4.4.1. Синтаксис

4.4.2. Семантика

4.5. Описания операций

4.5.1. Синтаксис

4.5.2. Семантика

4.6. Описатели

4.6.1. Синтаксис

4.6.2. Семантика

4.7. Соотношения между видами

4.7.1. Синтаксис

4.8. Индикаторы и указатели полей

4.8.1. Синтаксис

4.8.2. Семантика

5. Основы

5.1. Синтаксис

5.2. Основы, связанные с именами

5.2.1. Присваивания

5.2.2. Отношения одноименности

5.2.3. Генераторы

5.2.4. Псевдоимена

5.3. Основы, связанные с составными значениями

5.3.1. Выборки

5.3.2. Вырезки

5.4. Основы, связанные с процедурами

5.4.1. Тексты процедур

5.4.2. Формулы

5.4.3. Вызовы

5.4.4. Переходы

5.5. Основы, связанные со значениями любого вида

5.5.1. Ядра

5.5.2. Пропуски

6. Приведение

6.1. Приведенные

6.1.1. Синтаксис

6.2. Разыменование

6.2.1. Синтаксис

6.2.2. Семантика

6.3. Распроцедуривание

6.3.1. Синтаксис

6.3.2. Семантика

6.4. Объединение

6.4.1. Синтаксис

6.5. Обобщение

6.5.1. Синтаксис

6.5.2. Семантика

6.6. Векторизация

6.6.1. Синтаксис

6.6.2. Семантика

6.7. Опустошение

6.7.1. Синтаксис

6.7.2. Семантика

7. Виды и среды

7.1. Независимость свойств

7.1.1. Синтаксис

7.2. Идентификация в средах

7.2.1. Синтаксис

7.2.1. Семантика

7.3. Эквивалентность видов

7.3.1. Синтаксис

7.4. Правильность построения

7.4.1. Синтаксис

8. Изображения

8.0.1. Синтаксис

8.1. Изображения простого

8.1.1. Изображения целого

8.1.2. Изображения вещественного

8.1.3. Изображения логического

8.1.4. Изображения литерного

8.1.5. Изображение пустого значения

8.2. Изображения битового

8.2.1. Синтаксис

8.2.1. Семантика

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

8.3.1. Синтаксис

8.3.1. Семантика

9. Знаки и символы

9.1. Знаки

9.1.1. Синтаксис

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

9.2.1 Синтаксис

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

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

9.4.1. Представления символов

9.4.2. Символы прочих обозначений

10. Стандартная языковая обстановка

10.1. Тексты программ

10.1.1. Синтаксис

10.1.2. Соответствие языковой обстановке

10.1.3. Способ описания стандартной языковой обстановки

10.2. Стандартное вступление

10.2.1. Запросы к обстановке

10.2.2. Стандартные виды

10.2.3. Стандартные обозначения операций и функций

10.2.4. Операции синхронизации

10.3. Описание обмена

10.3.1. Книги, каналы и файлы

10.3.2. Значения для обмена

10.3.3. Бесформатный обмен

10.3.4. Тексты формата

10.3.5. Форматный обмен

10.3.6. Двоичный обмен

10.4. Системное вступление и список задач

10.4.1. Системное вступление

10.4.2. Список системных задач

10.5. Собственные вступления и заключения

10.5.1. Собственные вступления

10.5.2. Собственные заключения

Приложение 1. Историческая справка

Приложение 2. Требования к машинописному представлению программы

Приложение 3. Указатель применяемых в стандарте понятий

Приложение 4. Список метаправил

Показать даты введения Admin

ГОСУДАРСТВЕННЫЕ СТАНДАРТЫ СОЮЗА ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ АЛГОЛ 68 И АЛГОЛ 68 РАСШИРЕННЫЙ

ГОСТ 27974-88, ГОСТ 27975-88

Б38—88/568,569

Издание официальное

ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО СТАНДАРТАМ

Москва

ГОСУДАРСТВЕННЫЕ СТАНДАРТЫ СОЮЗА ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ АЛГОЛ 68 И АЛГОЛ 68 РАСШИРЕННЫЙ

ГОСТ 27974-88 , ГОСТ 27975-88

Издание официальное

МОСКВА-1989

{Терминальным порождением этого дерева будет последовательность символов на его концах. Ее представление в эталонном языке выглядело бы как е+02.}

„Терминальным порождением” понятия является терминальное порождение одного из деревьев порождения для этого понятия {, следовательно, существует много других терминальных порождений 'порядка', кроме показанного выше}.

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

3.2.1.е (уравнивание), 1.3.I.d,e (предикаты) и6.7.1.а.Ь (выбор способа выписывания вида ддя приводимого, которое должно опустошаться); (см. также 2.2.2.а).

Поэтому на практике, в настоящем стандарте и в других случаях, вместо деревьев порождения берут терминальные порождения (или их представления) . На самом же деле исполнение программ определяется в семантике настоящего стандарта исходя из деревьев порождения; семантика посвящена объяснению смысла конструктов, прообразом которых служит понятие 'программа'.}

g)    Дерево порождения Р является „наследником” дерева порождения Q, если оно прямой наследник {f} либо самого Q, либо некоторого его наследника. Говорят, что Q „содержит” своих наследников и что эти наследники „меньше” Q.

{Например, дерево порождения

'возможные плюс или минус'

|

плюс или минус 'символ плюс'

входит в качестве наследника в (, и меньше чем,) дерево порождения для 'порядка', (содержащее его и) показанное выше.}

h)    Дерево порождения „видимо” („невидимо”) , если его терминальное порождение непусто (пусто).

i)    Наследник {g} U дерева порождения Т расположен „прежде” („после”) другого наследника V того же Т, если терминальное порождение {f} этого U расположено прежде (после) терминального порождения V в терминальном порождении Т. Это {частичное} упорядочение наследников Т называется „текстуальным порядком”. {В приведенном примере дерева порождения для понятия 'порядок' (f) дерево порождения, прообраз которого есть 'плюс или минус', расположено прежде дерева, прообраз которого есть 'цифра два'.

j)    Наследник А дерева порождения „следует” („предшествует”) другому наследнику В в некотором текстуальном порядке, если А расположен

10

ГОСТ 27974-88 С.9

после (прежде) В в этом текстуальном порядке и не существует видимого {h} наследника С, расположенного между А и В. {Тем самым подразумевается „непосредственное” следование (предшествование).}

к) Дерево порождения А „подобно” дереву порождения В, если терминальное порождение {f} А совпадает с терминальным порождением В.

1.1.3.3. Метаправила и простая подстановка.

{Метаправила образуют в настоящем языке множество контексто-свободных грамматик, определяющих „метаязык”.}

a)    „Метаправилами” {Ь} данного языка служат метаправила {в приведенной форме}, заданные в разделах настоящего стандарта, заголовки которых начинаются со слов „Синтаксис”, „Метасинтаксис” или „Метаправила”, а также метаправила, получаемые следующим образом;

*    для    каждого    заданного    метаправила,    относящегося    к    какому-

нибудь метапонятию М, создаются дополнительные правила, каждое из которых состоит из некоторой копии этого М и непосредственно следующего за ней одного из больших синтаксических знаков „О”, „Г\ „2”, „3”, „4”, „5”, „6”, „7”, „8” или „9”, за которыми следуют два двоеточия, другая копия метапонятия М и точка. {Таким образом, следует добавить метаправило „ВИД1 ::ВИД.”.}

b)    Всякое „метаправило” состоит из следующих элементов, расположенных в указанном порядке:

возможной звездочки;

непустой последовательности М больших синтаксических знаков; двух двоеточий;

непустой последовательности гиперпонятий {1Л .3.1 .е }, разделенных точками с запятой; точки.

Такое метаправило называют метаправилом „для” {этого метапонятия (1Л .3.1 d »} М.

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

{Примеры:

ЧИСЛОВОЕ :: 7РАЗМЕРНОЕ целое;

7РАЗМЕРНОЕ вещественное. (1.2.1 .С) •

7РАЗМЕРНОЕ :: длинное 7ДЛИННОЕ;

короткое 7КОРОТКОЕ; ПУСТО. (1.2.1.D)}

c)    „Терминальное метапорождение” метапонятия М есть любое протопонятие, получаемое „простой подстановкой” {d} из одного из гиперпонятий {, стоящих в правой части} метаправила для М.

d)    Протопонятие Р получается „простой подстановкой” из гиперпонятия Н, если копию {приведенной формы} этого Н можно преобразовать в некоторую копию {приведенной формы} Р заменой каждого метапонятия М в указанной копии {приведенной формы} Н каким-нибудь терминальным метапорождением М.

11

{Например, двумя возможными терминальными метапорождениями (с) „ЧИСЛОВОГО” будут 'целое' и 'длинное длинное вещественное'. Это объясняется тем, что из гиперпонятий '7РАЗМЕРНОЕ целое' и ^РАЗМЕРНОЕ вещественное' (гиперпонятий метаправила для {приведенной формы} „ЧИСЛОВОГО”) можно при помощи простой подстановки (d) вывести 'целое' и 'длинное длинное вещественное'; это в свою очередь возможно потому, что ' ' (пустое протопонятие) и 'длинное длинное' являются терминальными метапорождениями „7РАЗМЕРНОГО”.}

{Используемые в настоящем стандарте метапонятия выбраны так, чтобы конкатенация одного или нескольких из них не приводила к той же последовательности больших синтаксических знаков, что и при другой такой конкатенации. Этим устраняется источник возможной неоднозначности.

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

1.1.3.4. Гиперправила и согласованная подстановка.

a)    Гиперправилами {Ъ} настоящего языка являются гиперправила {в приведенной форме}, заданные в разделах стандарта, заголовки которых начинаются со слова „Синтаксис”.

b)    Всякое „гиперправило” состоит из следующих элементов, расположенных в указанном порядке:

возможной звездочки;

непустого гиперпонятия Н;

двоеточия;

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

точки.

Такое правило называют гиперправилом „для” {этого гиперпонятия (1.1.3.1.е) } Н.

c)    Всякая „гиперальтернатива” есть непустая последовательность гиперпонятий, разделенных занятыми.

{ Примеры:

b)    последовательность ПОНЯТИЙ ;

ПОНЯТИЕ; ПОНЯТИЕ, последовательность ПОНЯТИЙ. (1.1.3.Ь)

c)    ПОНЯТИЕ, последовательность ПОНЯТИЙ}

d)    Порождающее правило PR {1.1.3.2.b} выводится из некоторого гиперправила HR, если копию HR можно преобразовать в копию {приведенной формы} этого PR , применяя „согласованную подстановку” {е} к множеству всех {приведенных форм} гиперпонятий указанной копии HR.

e)    Множество {одного или большего числа} протопонятий РР получают, применяя „согласованную подстановку” к соответствующему множеству гиперпонятий НН, если копию НН можно преобразовать в копию {приведенной ф=.'рмы} ГР при i 10мощи следующего шага:

ГОСТ 27974-88 C.ll

Шаг: Если копия {приведенной формы НН> содержит одно или более метапонятий, то для некоторого терминального метапорождения Т одного из этих метапонятий М каждое вхождение М в данную копию заменяется копией этого Т и данный шаг повторяется.

{См. 1.1.4.1.а по поводу другого применения согласованной подстановки.}

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

последовательность десятичных цифр: десятичная цифра; десятичная цифра,

последовательность десятичных цифр, которое поэтому есть порождающее правило настоящего языка. Отметим, что

последовательность десятичных цифр: десятичная цифра; десятичная цифра, последовательность букв б. не является порождающим правилом данного языка, поскольку замена метапонятия „ПОНЯТИЕ” одним из его терминальных метапорождений должна проводиться согласованно повсюду.}

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

{f) Правила в Синтаксисе снабжены „перекрестными ссылками”, понимаемыми следующим образом-

Каждое гиперпонятие Н некоторой гиперальтернативы гиперправила А сопровождают ссылками на те гиперправила В, откуда выводятся порождающие правила для понятий, которые можно подставить в это Н. Точно так же гиперпонятия каждого гиперправила В сопровождают обратными ссылками на А. Однако, если Н следует заменить каким-нибудь символом, его сопровождают ссылкой на его представление в п. 9.4.1. Кроме того, вместо ссылок на многие гиперправила в некоторых случаях удобнее сделать ссылку на одно метаправило, и тогда опущенные ссылки можно найти в этом метаправиле.

Каждая такая ссылка служит в принципе номером пункта, за которым идет буква, указывающая строчку с нужным правилом или представлением. При этом используют следующие соглашения:

(i)    ссылки, номер пункта в которых совпадает с номером пункта, где они встречаются, дают первыми, и этот номер пункта опускают, например, „8.2.1.а” появляется в п. 8.2.1 как „а”;

(ii)    опускаются все точки и последняя 1, а 10 заменяют на А; например, „8.2.1.а” входит во все остальные пункты как „82а”, а „10.3.4.1.1 .i” входиI в виде А341 Г\

13

(iii)    опускают номер пункта, если он тот же, что и у предыдущей ссылки; например, „82а, 82Ь, 82с” входят как „82а, Ь, с”;

(iv)    посредством отмечают наличие тупика, выводимого из данного гиперпонятия; например, в 8.0.1 .а после „изображение ЗНАЧЕНИЯ”, поскольку „ЗНАЧЕНИЕ” можно заменить, например, на 'имя вещественного', а 'изображение имени вещественного' не является понятием}

1.1.4. Семантика

Семантика определяет „смысл” программ {2.2.1.а} в строгом языке с помощью предложений {некоторого формализованного естественного языка}, устанавливающих, какие „действия” должны проводить во время „исполнения” {2.1.4.1} этих программ. „Смысл” программы в языке представления - это смысл программы в строгом языке, которую она представляет {9.3}.

1.1.4.1. Гиперпонятия, обозначение и заложение.

{Гиперпонятия, заключенные в апострофы, используют, чтобы "обозначать ' протопонятия, принадлежащие к определенным классам; например, 'ЛОКАЛИЗУЮЩИЙ' обозначает любое из протопоиятий 'локальный', 'первичный' и 'глобальный'.}

a)    Находящиеся в тексте данного стандарта гиперпонятия, кроме случаев, когда они входят в гиперправила {1.1.3.4.Ь} или метаправила {П.З.З.Ь}, „обозначают” любые протопонятия, которые можно получить, применяя к ним согласованную подстановку {1.1.3.4.е}; согласованную подстановку применяют ко всем гиперпонятиям, содержащимся в каждом законченном отрывке текста (эго или отрывок, выделяемый буквой со скобкой, если такой есть, или же нумерованный раздел целиком) .

{Так, например, 'ОБОЗНАЧЕНИЕ для ПРИЗНАКА' есть гиперпонятие, обозначающее такие протопонятия, как 'буква и лат для целого', 'буква х для вещественного' и тл. Если в каком-нибудь контексте оно фактически обозначает 'букву и лат для целого', то все вхождения метапонятия „ПРИЗНАК” в текущий отрывок должны обозначать в этом контексте целое', а все вхождения „ОБОЗНАЧЕНИЯ” должны обозначать 'букву и лаг'. Тогда, например, из отрывка 4.8.2.а можно вывести, что когда „сцена приписывается некоторому определяющему-букву-и-лат-индикатору-вы-дающему-целое”, именно 'буква и лат для целого' „получает доступ к V внутри соответствующего участка”.}

Иногда, когда контекст требует этого явно, согласованная подстановка распространяется менее чем на законченный отрывок текста. {Например, во введении к п.2.1.1.2 есть несколько вхождений „'ЗНАЧЕНИЕ'”, причем два из них служат для того, чтобы обозначать конкретные (и разные) протопонятия, выписанные полностью, а другие, очевидно, используют, чтобы обозначать различные элементы из класса терминальных метапорождений некоторого „ЗНАЧЕНИЯ”.}

b)    Если протопонятие (гиперпонятие) Р составлено конкатенацией протопонятий (гиперпонятий) А, В и С с возможно пустыми А и С, то Р „содержит” В на месте, определяемом в Р длиной А. Так, например, 'абвгдевгжз' содержит 'вг' на третьем и седьмом местах.}

Н

ГОСТ 27974-88 С. 13

с) Протопонятие F2, будучи протопонятием, обозначаемым гиперпонятием Н2, „заложено” в протопонятие Р1, если Р2 или какой-нибудь его эквивалент {2.1 Л.2.а} содержится {Ь} на некотором месте в Р1, но не содержится ни на каком месте в любом другом {промежуточном} протопонятии РЗ, также содержащемся в Р1 и таком, что Н2 может обозначать и это РЗ.

{Так, например, 'ВИД', заложенный в 'замкнутое предложение выдающее имя вещественной/ есть 'имя вещественного', а не 'вещественное'; кроме того, в вид (2.1 Л.2.Ь), специфицируемый описателем ст (вещ а, ст(лог Ь, лит с) d) , заложены только два 'ПОЛЯ'.}

1.1.4.2. Парапонятия.

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

a)    „Парапонятие” Р есть {не заключенное в апострофы} гиперпонятие, используемое в тексте данного стандарта, чтобы „обозначать” любой конструкт, прообраз О которого удовлетворяет следующему условию;

■    рассматриваемое как гиперпонятие {, т.е. как если бы оно было

заключено в апострофы,} Р обозначает {1.1.4Л .а} некоторую „абстракцию” {Ь} прообраза О.

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

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

Изменение по роду, числу и/или падежу слов, составляющих парапонятия {, рассматриваемые в качестве конструкций русского языка}, не влечет за собою изменения смысла этих парапонятий. {Таким образом, вхождение парапонятия в какое-нибудь предложение в тексте настоящего стандарта подчинено правилам согласования слов в предложениях русского языка.}

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

b)    Протопонятие Р2 есть „абстракция” протопонятия Р1, если

(i) Р2 есть абстракция понятия, порождающее правило для которого начинается со звездочки, а Р1 — одна из альтернатив этого правила.

15

{например, ограничение' (5.3.2Л.h) есть абстракция любого из понятий, обозначаемых гиперпонятиями, 'отрезок в СРЕДЕ', 'индекс в СРЕДЕ', 'возможная сдвинутая нижняя граница в СРЕДЕ' , или

(ii)    в Р1 заложено протолонятие РЗ, обозначаемое одним из „опускаемых гиперпонятий”, перечисленных ниже в п. с), а Р2 - абстракция протопонятия, состоящего из Р1 без этого заложенного РЗ

{например, 'старт выбирающего по логическому' есть абстракция понятий 'краткий старт выбирающего по логическому' и 'выделенный старт выбирающего по логическому' (с опущенным 'ОФОРМЛЕННОЕ' из 9.1.1.а) }, или

(iii)    Р2 эквивалентно {2.1 Л.2.а}Р1

{например, 'символ выделенное начало' есть абстракция протопонятия 'символ выделенное начало'}.

{Чтобы привести пример, включающий все три правила, заметим, что 'определяющий индикатор выдающий объединение целого вещественного воедино' есть абстракция некоторого 'определяющего букву а идентификатора в СРЕДЕ выдающего объединение вещественного целого воедино' (4.8.1.а). 'Краткий старт выбирающего по объединению целого вещественного воедино' не является абстракцией понятия 'краткий старт выбирающего по объединению целого вещественного логического воедино’, потому что 'логического', которое, очевидно, опущего, не есть 'ЗНАЧЕНИЕ', заложенное в это понятие.}

c)    Упомянутые выше в разд. Ь) „опускаемые гиперпонятия” следующие:

„ОФОРМЛЕННОЕ” • „НОМЕР” • „ЛОКАЛИЗУЮЩИЙ” • „ПРИМЕНЯЮЩИЙ” • „ЛЮБОЙ” • „ПРИВОДИМО” • „ЗНАЧЕНИЕ” • „дня ЗНАЧЕНИЯ” • „выдающее ИМЯ ПРОВИДА” • „для метки” • „для процедуры” • „вида ПРОВИД” • „в СРЕДЕ” • „!ПАРЫ” • „с 70ПИСАНИЯМИ 7МЕТКАМИ” * „через 70Г1ИСАНИЯ 7МЕТКИ” - „определяющее СЛОЙ” * „ОБОЗНАЧЕНИЕ” • „как ИМЯ ПРОВИДА”.

{Какое из нескольких возможных понятий или символов служит прообразом конструкта, обозначаемого данным парапонятием, выясняют из контекста, в котором это парапонятие встречают. Например, когда говорится о формальном-описателе какого-то описания-тождества, его прообразом будет некоторое понятие, обозначаемое гиперпонятием 'формальный описатель имени вещественного в СРЕДЕ', если терминальное порождение (1.1.3.2.f) этого описания-тождества есть имя вещ х=: лок вещ.}

{Так как всякое парапонятие обозначает некоторым конструкт, то все определенные для конструктов технические термины можно без дополнительной формализации применять и к парапонятиям.}

d)    Если два парапонятия Р и Q обозначают два конструкта S и Т соответственно, то Р называют „составляющим” Q, если S — наследник Т и нет такого {яро межуточно го конструкта} U, что

(i) S - наследник U,

16


(п) U — наследник Т и

(ш) Р или Q может {в равной мере} обозначать U

{Так например, a (S1)    —    это    составляющий    операнд    формулы

аХ (b+2t (1 + j)) (T),ab (S2) — нет, поскольку это наследник промежуточной формулы b + 21 (1 + j) (U) , которая сама есть наследник Т Аналогично (b + 2t (1 + j)) — составляющее замкнутое-предложение формулы Т, а зам-кнутое-предложение (1 + j) — нет, поскольку это наследник промужеточно-го замкнутого-предложения Однако (1 + j) — составляющее замкнутое-предложение-выдающее-целое формулы Т, так как указанное промежуточное замкнутое-предложение фактически является замкнутым-предложе-нием выдающим-вещественное


формула aX(b+2t(i +j))


операнд

а


операнд


(Ь + 21 (i + j))


замкнутое-предложение (-выдающее-вещественное)


(Ь + 21 (i + j))


формула b + 21 (i+j)


операнд

b


2t (i + j)


операнд


формула


операнд

2


операнд 0 + J)


замкнутое-предложение (-выдающее-целое)

(i+j)    >


1.1.4.3. Неопределенности.

a)    Если что-то оставлено „не определенным” или о чем-то сказано, что оно „не определено”, то это означает, что оно не определено лишь настоящим стандартом и для его определения надо принять в расчет какую-нибудь информацию, находящуюся вне этого стандарта.

{Необходимо отличать выдачу неопределенного значения (, после чего исполнение продолжается с возможно непредсказуемыми результатами,) п полной неопределенности дальнейшего исполнения. Действия, которые следует предпринять в последнем случае, оставляются на усмотрение реализатора. Это может быть одна из форм продолжения (, не обязательно одинаковая в разных реализациях,) или некоторая форма прерывания (2.1.4.3.h), осуществляемая какой-нибудь проверкой во время работы 1рограммы.}

b)    Если „требуется”, чтобы какое-то условие удовлетворялось при некотором исполнении, то дальнейшее исполнение не определено, если это условие не удовлетворяется.

c)    „Осмысленная” программа - это программа {2.2.1 .а}, исполнение которой определено настоящим стандартом.

1.2. Общие метаправила

1.2.1. Метаправила для видов

A)    ВИД :: ПРОСТОЕ; СОСТАВНОЕ; ИМЯ ВИДА; ПРОЦЕДУРА; ПРЕДСТАВИТЕЛЬ; ЦИ определение ВИДА; использование ЦИ.

B)    ПРОСТОЕ :: ЧИСЛОВОЕ; логическое; литерное.

2) ЧИСЛОВОЕ 7РАЗМЕРНОЕ целое; 7РАЗМЕРНОЕ вещественное.

Q) 7РАЗМЕРНОЕ : ; длинное ?ДЛИННОЕ; короткое 7КОРОТКОЕ; ПУСТО. £) 7ДЛИННОЕ :: длинное 7ДЛИННОЕ; ПУСТО.

'-) 7КОРОТКОЕ :: короткое 7КОРОТКОЕ; ПУСТО.

Г) ПУСТО::.

T)    СОСТАВНОЕ :: структура содержащая !ПОЛЯ в себе; 7ПОДВИЖНЫЙ МАССИВ из ВИДА.

1) !ПОЛЯ :: ПОЛЕ; [ПОЛЯ ПОЛЕ.

О ПОЛЕ :: СЛОВО {942А} для выборки ВИДА.

{) 71ЮДВИЖНОЕ :: подвижное; ПУСТО.

Д МАССИВ :: вектор; МАССИВ векторов, vl) ИМЯ ::имя; временное имя.

У) ПРОЦЕДУРА :: процедура 7ПАРАМЕТРИЗОВАННАЯ вырабатывающая ЗНАЧЕНИЕ.

О) ^ПАРАМЕТРИЗОВАННАЯ :: с! ПАРАМЕТРАМИ; ПУСТО.

?) [ПАРАМЕТРЫ :: ПАРАМЕТР; [ПАРАМЕТРЫ ПАРАМЕТР.

Q) ПАРАМЕТР :: параметр вида ВИД.

7) ЗНАЧЕНИЕ :: ВИД; пустое значение.

>) ПРЕДСТАВИТЕЛЬ :: объединение [ОБЫЧНЫХ воедино.

I [ОБЫЧНЫЕ :: ОБЫЧНОЕ; [ОБЫЧНЫЕ ОБЫЧНОЕ.

U)    ОБЫЧНОЕ :: ПРОСТОЕ; СОСТАВНОЕ; имя ВИДА; ПРОЦЕДУРА; пустое значение.

ГОСТ 27974-88 СЛ7

V)    ЦИ::ци НОМЕР.

W)    НОМЕР ::1; НОМЕР.

1.2.2. Метаправила, связанные с фразами и приведением

A)    ЗАКРЫТОЕ замкнутое; совместное; параллельное; ВЫБИРАЮЩЕЕ {34А}; циклическое.

B)    ДЕЙСТВУЮЩЕЕ :: в СРЕДЕ ПРИВОДИМО выдающее ЗНАЧЕНИЕ.

C)    ПРИВОДИМО : сильно; крепко; раскрыто; слабо; мягко.

\ ,23. Метаправила, связанные со средами

A)    СРЕДА;; СЛОЙ; СРЕДА с СЛОЕМ.

B)    СЛОЙ :: новые 70ПИСАНИЯ 7МЕТКИ.

C)    70ПИСАНИЯ :; ! ОПИСАНИЯ; ПУСТО.

D)    ЮПИСАНИЯ :; ОПИСАНИЕ; ЮПИСАНИЯ ОПИСАНИЕ.

E)    ОПИСАНИЕ ;; СЛОВО {942А> для ВИДА; ИНФИКС {942F} для приоритета ПРИОРИТЕТ; ИНДИКАНТ {942D> для ЗНАЧЕНИЯ НОМЕР; ИНФИКС -C942F} для ДВУМЕСТНОЙ; ПРЕФИКС {942К} для ОДНОМЕСТНОЙ.

F)    ПРИОРИТЕТ :: I; II; III; III I; III II; III III; ШИП; III III II; III III III.

G)    ОДНОМЕСТНАЯ ;; процедура с ПАРАМЕТРОМ вырабатывающая ЗНАЧЕНИЕ.

H)    ДВУМЕСТНАЯ ;; процедура с ПАРАМЕТРОМ ПАРАМЕТРОМ2 вырабатывающая ЗНАЧЕНИЕ.

I)    7МЕТКИ :; !МЕТКИ; ПУСТО.

J)    !МЕТКИ :: МЕТКА; МЕТКИ МЕТКА.

K)    МЕТКА ;; СЛОВО {942АТ для метки.

1.3. Общие гиперправила

{Предикаты используют в синтаксисе, чтобы обеспечить в деревьях порождения соблюдение определенных ограничений типа того, что каждый ис-пользующий-индикатор должен идентифицировать некоторый однозначно находимый определяющий-индикатор. Их более скромная цель состоит в уменьшении числа гиперправил при помощи группировки нескольких сходных случаев в качестве альтернатив одного правила. В этих случаях с помощью предикатов можно выяснить, какую из альтернатив применить.}

1.3.1. Синтаксис общих предикатов

A)    ПОНЯТИЕ :: ЛИТЕРА; ПОНЯТИЕ ЛИТЕРА.

B)    ЛИТЕРА ;; а; б; в; г; д; е; ж; з; и; й; к; л; м; н; о; п; р; с; т; у; ф; х; ц; ч; ш; щ; ъ; ы; ь; э; ю; я; I.

C)    7ПОНЯТИЕ :: ПОНЯТИЕ; ПУСТО.

D)    УТВЕРЖДЕНИЕ ;; ПОНЯТИЕ; (7ПОНЯТИЕ) 7ПОНЯТИЕ2; УТВЕРЖДЕНИЕ (7ПОНЯТИЕ1) 7ПОНЯТИЕ2.

E)    ЕСЛИ ;: если; если неверно что.

a)    если истина : ПУСТО.

b)    если неверно что ложь : ПУСТО.

c)    если УТВЕРЖДЕНИЕ 3 и УТВЕРЖДЕНИЕ2: если УТВЕРЖДЕНИЕ!, если УТВЕРЖДЕНИЕ2.

19

C.18 ГОСТ 27974-88

d)    если УТВЕРЖДЕНИЕ 1 или УТВЕРЖДЕНИЕ2: если УТВЕРЖДЕНИЕ 1; если УТВЕРЖДЕНИЕ2.

e)    если неверно что УТВЕРЖДЕНИЕ! и УТВЕРЖДЕНИЕ2: если неверно что УТВЕРЖДЕНИЕ!; если неверно что УТВЕРЖДЕНИЕ2.

f)    если неверно что УТВЕРЖДЕНИЕ! или УТВЕРЖДЕНИЕ2: если неверно что УТВЕРЖДЕНИЕ!, если неверно что УТВЕРЖДЕНИЕ2.

g)    ЕСЛИ (7ПОНЯТИЕ1) есть (7ПОНЯТИЕ2) :

ЕСЛИ (7ПОНЯТИЕ1) начинается с (7ПОНЯТИЯ2) {h, i,j} и (7ПОНЯТИЕ2) начинается с (7ПОНЯТИЯ1) {h, i,j}.

h)    ЕСЛИ (ПУСТО) начинаетсяс (ПОНЯТИЯ) {g, j} :

ЕСЛИ ложь -СЬ,

i)    ЕСЛИ (7ПОНЯТИЕ) начинаетсяс (ПУСТО) -Cg,j>:

ЕСЛИ истина {а, ->.

j)    ЕСЛИ (ЛИТЕРА 1 7ПОНЯТИЕ1) начинается с (ЛИТЕРЫ2 7ПОНЯ-ТИЯ2) {g, j,m>:

ЕСЛИ (ЛИТЕРА 1) совпадает с (ЛИТЕРОЙ2) в (абвгдежзийклмнопрстуфкцчшщьыъэюя1) {к, 1, -} и (ПОНЯТИЕ 1) начинаетсяс (ПОНЯТИЯ2) {h, i, j}.

k)    если (ЛИТЕРА) совпадаете (ЛИТЕРОЙ) в (ПОНЯТИИ) {j};

если истина -Са}

l)    если неверно что (ЛИТЕРА 1) совпадает с (ЛИТЕРОЙ2) в (ПОНЯТИИ)

если (ПОНЯТИЕ) содержит (ЛИТЕРУ 1 7ПОНЯТИЕ ЛИТЕРУ2) {т} или (ПОНЯТИЕ) содержит (ЛИТЕРУ2 7ПОНЯТИЕ ЛИТЕРУ 1) {т}. ш) ЕСЛИ (ЛИТЕРА 7ПОНЯТИЕ) содержит (ПОНЯТИЕ) {1,т}

ЕСЛИ (ЛИТЕРА 7ПОНЯТИЕ) начинаетсяс (ПОНЯТИЯ) {j} или (7ПОНЯТИЕ) содержит (ПОНЯТИЕ) {m,n}. п) ЕСЛИ (ПУСТО) содержит (ПОНЯТИЕ) {т}:

ЕСЛИ ложь {Ь, -}.

{Малые синтаксические знаки „(’’и,,)” используют, чтобы простым способом обеспечить однозначное применение этих предикатов.}

1.3.2. Выполнимость предикатов

Всякий „предикат” есть протопонятие, начинающееся с 'если'или 'если неверно что' {объединяемых в 'ЕСЛИ'}. Для каждого предиката Р либо можно породить одно или несколько деревьев порождения {1.1.3.2Т} {, каждое из которых невидимо,} и тогда Р „выполняется”, либо нельзя породить никакого дерева порождения {, поскольку каждая попытка породить какое-нибудь из них заводит в тупик,} и тогда Р ,,не выполняется”.

{Например, предикат 'если (аб) есть (аб)' выполняется. Его дерево порождения можно изобразить так:

20

681.3.06:006.354    Группа    П85

ГОСТ

27974-88

СУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ АЛГОЛ 68 Programming language ALGOL 68

ОКСТУ 4002

Дата введения 01.07.90

Настоящий стандарт распространяется на язык программирования Алгол 681 2 и его варианты и устанавливает требования:

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

к реализациям языка программирования Алгол 68 и его вариантов, используемым при создании или эксплуатации программных средств, в части выполнения программ на языке Алгол 68.

Стандарт не распространяется на варианты языка Алгол 68 и програм-л на языке Алгол 68, составленные в учебных или исследовательских це-пх.

Вариантом языка Алгол 68 является определенный конкретной реализацией язык, сохраняющий основные конструкции языка Алгол 68, в опи-ании которого имеется ссылка на настоящий стандарт и четко перечислятся отличия определяемого языка от языка, определенного настоящим этом.

,-ебования к машинному представлению программы приведены в -ожении 2. Указатель применяемых в стандарте понятий приведен в тожении 3. Список метаправил приведен в приложении 4.

* Историческая справка о языке Алгол 68 приведена в приложении 1.

1. ЯЗЫК И МЕТАЯЗЫК

1.1.    Метод описания

1.1.1.    Введение

a)    Алгол 68 является языком, в котором могут формулироваться алюритмы для каких-либо вычислителей, т. е. автоматов или людей. Он определяется настоящим стандартом в четыре стадии: „синтаксис” {Ь}, „семантика” {с), „представления” {d] и „стандартная языковая обстановка” {е}.

b)    Синтаксис есть механизм, посредством которого могут порождаться все конструкты данного языка. Этот механизм действует следующим образом:

(i) | Заданы множества „гиперправил” и „метаправил” {1.1.3.4, 1.1.3.3}, из которых могут выводиться „порождающие правила”. Входящие в эти правила „метапонятия” и „гиперпонятия” представлены i настоящем стандарте так, что каждое из них выглядит как грамматич# ски правильная русская фраза, возможно с добавлением цифр и спеш альных знаков, в которой {изменяемые} слова стоят в требуемо грамматической форме. Однако определение синтаксиса строгого яз> ка использует „приведенную форму” этих правил, для получения кот* рой необходимо каждое слово, изменяемое в роде, числе или падей!, заменить на его форму именительного падежа единственного числа!, если возможно, среднего рода {, сохранив время и залог причастий Полученное слово записывается малыми (большими) синтаксическим! знаками, если исходное слово записано малыми (большими) синтакМ-ческими знаками {, причем в последнем случае сохраняются цифрыи специальные знаки, приписанные к этому слову}.

{Например, приведенной формой гиперпонятия „УПАКОВКА обр| основ сильно выдающих МАССИВ1 из ВИДА в СРЕДЕ” (3.3.l.d) буя „УПАКОВКА образ основа сильно выдающее МАССИВ1 из ВИД в С* ДА”.}

(ii)    „Конструктом в строгом языке” является всякое „дерево порождения” {1.1.3.2.f} , порождаемое применением подмножества указ-ных порождающих правил; это дерево порождения содержит стати* скую {, т. е. известную во „время трансляции”,} информацию, относящуюся к данному конструкту; дерево составлено из иерархии наследных деревьев порождения, оканчивающихся „символами” на самом нижнем уровне; с каждым деревом порождения связана „среда” из свойств, описанных на предыдущих уровнях и передаваемых к средам его наследников.

(iii)    „Программа в строгом языке” есть дерево порождения для понятия 'программа {2.2.1.а}. Кроме того, она должна соответствовать „языковой обстановке” {10.1.2}.

c)    Семантика приписывает каждому конструкту {, т. е. каждому дере-

4

ГОСТ 27974-88 С.З

ву порождения,} „смысл” {2.1.4.1.а}, определяя эффект его „исполнения” {2.1.4.1} (которым, однако, может быть „не определено”). Это происходит следующим образом:

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

(И) Смысл программы в строгом языке состоит в эффекте ее исполнения в пустом ,.первичном окружении”.

d)    Программа в строгом языке должна быть представлена в каком-нибудь „языке представления” {9.3.а}, выбираемом реализатором. В большинстве случаев им будет официальный „эталонный язык”.

(i)    Всякую программу в языке представления получают заменой всех символов какой-то программы в строгом языке определенными типографскими знаками {9.3}.

(ii)    Даже эталонный язык допускает значительную свободу для реализатора {9.4.а,Ь,с}. Некоторую ограниченную форму эталонного языка, в которой эта свобода не использована, можно назвать „канонической формой” данного языка; предполагают, что она будет применяться для алгоритмов, предназначенных к публикации.

(ш) Смысл программы в языке представления — это смысл той программы {в строгом языке}, из которой она получена.

e)    Любой алгоритм выражается посредством собственно-нрограммы, которую вместе с описанной в настоящем стандарте стандартной языковой обстановкой следует рассматривать как вложенную в некоторый текст-программы {10.1.1.а}. Смысл собственно-программы {, в строгом языке или языке представления,}- это смысл программы, „подобной” этому

''ксту-программы {10.1.2.а}.

1.1.2. Прагматика

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

{Некоторые из прагматических замечаний содержат примеры, написанные на эталонном языке, Использующие-индикаторы входят в эти примеры вне контекста своих определяющих-индикаторов. Если не оговорено противное, такие вхождения идентифицируют определяющие-индикаторы, входящие в стандартное- {, библиотечное-} или собственное-вступление и в собственное-заключение (10.2, 10.3, 10.5) (например, см. 10.2.3.12.а для пи, 10.5.1 .Ь для псч и 10.5.2.а для стоп) , или же в следующий текст:

Перепечатка воспрещена

цел i, j, к, m, п; вещ a, b, x, у; лог p, q, переполнение; лите; формат f; слог г; строк s; бит t; компл w, z; имя вещ хх, уу; об (цел, вещ) uir; проц пуст задача 1, задача 2;

[1 : п] вещ xl, у 1; подв [1 : п] вещ al;

[1 : m, 1 : п] вещ х2; [1 : n, 1 : п] вещ у2;

[1 : п] цел il;1 [1 ; ш, 1 : п] цел i2; [1 : п] компл zl; проц х или у = имя вещ: если печ < .5 го х иначе у все; проц ncos = (цел i) вещ: cos (2Х пиХ i/n); проц nsin = (цел i) вещ: sin (2Хпи X i/n); проц финиш = пуст: на стоп;

вид книга = ст (строк текст, имя книга следующая) ;

книга проект;

Принстон: Гренобль: сен пьер де шартрез: коотвейк: варшава: зандвоорт: амстердам: тиррения: норт бервик: Мюнхен: финиш.}

1.1.3. Синтаксис строгого языка

1.1.3.1. Протопонятия.

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

(i) „малые синтаксические знаки”, изображаемые в данном стандарте

как

„а”,

„б”,

п”

99° >

»г”,

„д”,

>,0”,

>,П’\

>>Р >

„с”,

,Д’\ ,

„э”,

„К)’\

я”

„е\

„Г;

(ii) „большие синтаксические знаки”, изображаемые в данном стандарте как

А”

9

„Б”,

„В”,

Г”

9 >■* 9

,Д'\

F”

9 9E' 1

„Ж”, „3

” И”

1 ifxi i

Й”

„К”,

„Л”,

„М”,

„Н”

,0”,

„П”,

„Р”,

„С”,

ТГ»

9

У”

99* 9

„ф”. .X

” Ц”

„Ч”.

„Ш”,

,Д”,

„Ы”

,Ь”,

„Э”,

„Ю”,

»,Я”,

0”

9 9

1”

5 х 9 9

л» т»

4” 5

9 9 9^

”, „6

99 *19

9 9 9 '

9 О 99 9

, „9”

9 9 9 •

!”*

Л * J

(Ш) „прочие синтаксические знаки”, изображаемые в данном стандарте

как „ . ” („точка”) , „ , ” („запятая”) , „ : ’’(„двоеточие”) , „ ; ” („точка

с запятой”), ’’(„апостроф”),,, - ” (,дефис”) и „* ” („звездочка”)

b)    „Протоионятие” есть возможно пустая последовательность малых синтаксических знаков.

c)    „Понятие” есть -[непустое}- протопонятие, для которого можно вы-вести {1.1.3.2.а, 1.1 ЗАЛУ порождающее правило.

d)    „Метапонятие” есть {непустая} последовательность больших синтаксических знаков, для которой задано или получено {1.1.3.3.а} какое-нибудь метаправило.

e)    „Гиперпонятие” есть возможно пустая последовательность, каждый элемент которой является либо малым синтаксическим знаком, либо метапонятием.

ГОСТ 27974-88 С.5

{Таким образом, протопонятия (Ь) образуют подкласс класса гиперпонятий. Гиперпонятия используют в метаправилах (1.1.3.3) , в гиперправилах (1.1.3.4), в качестве парапонятий (1.1.4.2), а также сами по себе, чтобы „обозначать” определенные классы протопонятий (1.1,4.1).}

{„Парапонятие” есть гиперпонятие, к которому Применяют определенные специальные соглашения и интерпретации, как разъяснено в 1.1,4.2.}

f)    „Символ”есть протопонятие, начинающееся с 'символ'. {Каждое парапонятие символ (9.1.1.h) обозначает конкретное вхождение такого про-топонятия.}

g)    Для того, чтобы выделить различные использования в тексте настоящего стандарта определенных выше терминов, приняты следующие соглашения:

(i)    Внутри порождающих правил, метаправил и гиперправил никакие выделительные знаки { — кавычки, апострофы или дефисы-} не используют.

(ii)    Метапонятия и гиперпонятия, рассматриваемые сами по себе, {т.е. не в качестве обозначений протопонятий,} заключают в кавычки.

(iii)    Парапонятия не заключают ни во что {, но, проставляют дефисы там, где иначе были бы пробелы}.

(iv)    Все остальные гиперпонятия, {включая протопонятия,} не рассмотренные выше, заключают в апострофы {, чтобы указать, что они обозначают некоторое протопонятие, как это определяется в 1.1.4.1.а}.

(v)    Особенности типографского набора, такие, как пробел, перенос, переход на новую строчку или страницу, во внимание не принимают (см., однако, 9.4.d) .

{Примеры:

(i)    ЛОКАЛИЗУЮЩИЙ :: локальный; глобальный; первичный - является метаправилом;

(ii)    „ЧИСЛОВОЕ” является мегапонятием и не обозначает ничего, кроме самого себя;

(iii)    идентификатор-выдающий-имя-ЧИСЛОВОГО, не заключаемый в апострофы, но снабженный дефисами, является парапонятием, обозначающим некоторый конструкт (1.1.4.2.а) ;

(iv)    'рациональное' является как гиперпонятием, так и протопонятием; рассматриваемое как гиперпонятие оно обозначает самого себя в качестве протопонятия;

(у) 'имя вещественного' значит то же, что и имявещественного'.} Г. 1.3.2. Порождающие правила и деревья порождения.

a)    „Порождающие правила” {Ь}, которые можно вывести из данных здесь „гиперправил” {1.1.3.4}, составляют {выводимые} порождающие правила настоящего языка; кроме того, некоторые правила неформально указаны в 8.1.4.1.dn 9.2.1.d.

b)    Всякое „порождающее правило” состоит из следующих элементов, расположенных в указанном порядке:

7

возможной звездочки; непустого прото понятия N; двоеточия;

непустой последовательности „альтернатив”, разделенных точками с запятой;

точки.

Такое правило называют порождающим правилом „для” -[этого понятия (1.1.3.1.с) }N.

{Возможная звездочка, если она есть, показывает, что это понятие не используется в других порождающих правилах, а заведено только для того, чтобы облегчить изложение в семантике. Звездочка показывает также, что данное понятие может использоваться как „абстракция” (1.1.4.2.Ь) одной из своих альтернатив.}

c)    Любая „альтернатива” есть непустая последовательность „звеньев”, разделенных запятыми.

d)    Всякое „звено” есть либо

(1) понятие { , и тогда его можно назвать продуктивным или нетерминальным}, либо

(ii)    символ {, который терминален}, либо

(iii)    пусто, либо

(iv)    другое протопонятие {, для которого нельзя вывести никакого порождающего правила}, называемое в этом случае „тупиком”. {Например, звено 'изображение имени вещественного' (, выводимое

из гиперправила 8.0.1.а,) является тупиком.}

{Примеры:

b)    порядок: запись десятичного основания,

степень десяти. (8.1.2.1 .g) • запись десятичного основания : символ на десять в степени; символ буква е либо символ буква е лат.

(8.1.2.1.h)

c)    запись десятичного основания, степень десяти •

символ на десять в степени •

символ буква е либо символ буква е лат

d)    запись десятичного основания •

степень десяти *

символ на десять в степени •

символ буква е либо символ буква е лат}

e)    „Конструктом в строгом языке” является любое „дерево порождения” {f}, которое можно „породить” из какого-нибудь порождающего правила данного языка.

f)    ,Дерево порождения” Т для понятия N, называемого „прообразом” этого Т, „порождается” следующим образом:

пусть Р есть {выводимое} порождающее правило для N;


берется копия N;

*    к этой копии присоединяется последовательность деревьев порождения, называемых „прямыми наследниками” дерева Т, порожденных для каждого непустого звена какой-то {одной} альтернативы А правила Р; порядок {деревьев в} этой последовательности совпадает с порядком указанных звеньев в А;

*    взятая копия прообраза вместе с присоединенными прямыми наследниками составляет дерево порождения Т.

,Дерево порождения” для символа состоит из копии этого символа {, т,е. оно состоит из какого-то символа}.

„Терминальным порождением” дерева порождения Т является последовательность, составленная из терминальных порождений прямых наследников этого Т, взятых в их порядке.

„Терминальным порождением” дерева порождения, состоящего только из одного символа, является этот символ.

{Пример;


t    t

порядок


запись

десятичного

основания'


степень

десяти


возможные плюс или минус'

'плюс или минус'


натуральное

число'


последовательность десятичных цифр'


десятичная

цифра'


'цифра нуль'


'последовательность десятичных цифр'

t    1    .

десятичная цифра 'цифра два'


символ буква е'


символ

плюс'


'символ    'символ

цифра Нуль'    цифра два' }


9


1

Издание официальное

2