Стр. 1
 

76 страниц

578.00 ₽

Купить официальный бумажный документ с голограммой и синими печатями. подробнее

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

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

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

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

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

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

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

Оглавление

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. Общие гиперправила

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

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

2.1.1. Объекты

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

2.1.3. Значения

2.1.4. Действия

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

2.2. Программа

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

3.0.1. Синтаксис

3.0.2. Семантика

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

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

3.2.1. Синтаксис

3.2.2. Семантика

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

3.3.1. Синтаксис

3.3.2. Семантика

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

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

3.6. Подключающие предложения

3.6.1. Синтаксис

3.6.2. Семантика

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

4.1. Описания

4.1.1. Синтаксис

4.1.2. Семантика

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

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

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

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

4.6. Описатели

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

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

4.8.1. Синтаксис

4.8.2. Семантика

4.9. Описание модулей

4.9.1. Синтаксис

4.9.2. Семантика

4.10. Ситуации и реакции

4.10.1. Синтаксис

4.10.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.4.5. Вызовы ситуаций

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

5.6. Заготовки

5.6.1. Синтаксис

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

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

6.1.1. Синтаксис

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

6.2.1. Синтаксис

6.2.2. Семантика

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

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

6.5. Обобщение

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

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

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

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

7.1.1. Синтаксис

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

7.2.1. Синтаксис

7.2.1. Семантика

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

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

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

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

9.1. Знаки

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

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.2.5. Стандартные ситуации и восстанавливающие действия

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

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

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

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

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

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

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

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

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

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

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

10.6. Сегменты

10.6.1. Синтаксис

10.6.2. Семантика

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

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

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

Страница 1

УДК 681.3.06:006.354    Группа    П85

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

ЯЗЫК ПРОГРАММИРОВАНИЯ Алгол 68 расширенный

ГОСТ

27975-88

Ргокмтпппр Lirv-iuaiie ALGOL 68, extended

ОКСТУ400

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

Настоящий стандарт распространяется ка язык программирования Алгол 68 расширенный1, его варианты, а также варианты языка программирования Алгол 68, вводящие дополнительно к определению языка программирования Алгол 68 средства обеспечения модульности программ и раздельной трансляции программ, и устанавливает требования:

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

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

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

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

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

245

1

Страница 2

С. 2 ГОСТ 27975 -88

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

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

Все прагматические ззмечания соответствуют ГОСТ 27974.

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

1.1.1.    Введение соответствует ГОСТ 27974.

1.1.2.    Прагматика соответствует ГОСТ 27974.

1.1.3.    Синтаксис строгого языка соответствует ГОСТ 27974.

1.1.4.    Се:ингика

Определение семантики соответствует ГОСТ 27974.

1.1.4.1.    Гинсрпонятия. обозначение и заложение соответс1вуют ГОСТ 27974.

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

Гиперпрзвила a, b, d соответствуют ГОСТ 27974. с) В правиле Ь) ..опускаемые гиперпонятия” следующие: „ОФОРМЛЕННОЕ" • „НОМЕР” • „ЛОКАЛИЗУЮЩИЙ” • „ПРИМЕНЯЮЩИЙ" • „ЛЮБОЙ" • „ПРИВОДИМО” •

„ЗНАЧЕНИЕ" • „для ЗНАЧЕНИЯ" • ..выдающее ИМЯ ПРОБИЛА"

•    „для межи” ■ ..для процедуры" • ..вида ПРОБИЛ"

•    „с видом ПРОЦЕДУРА" • .л СРЕДЕ" • „!ПАРЫ" • „с ОПИСАНИЯМИ ’МЕТКАМИ" • „через ОПИСАНИЯ ?МЕТКИ" • определяющее СЛОЙ" • „ОБОЗНАЧЕНИЕ" • „как ИМЯ ПРОБИЛА" • „без ОПИСАНИЯ” • „передающий 7СВЯЗИ” • „открывающим ?СВЯЗИ". 1.1.4 3. Неопределенности соответствуют ГОСТ 27974.

1.1.4.4.    Восстанавливающие действия:

Для некоторых случаев, где говорится, что исполнение не определено {1.1.4.3 а. Ь> , заданы восстанавливающие действии. Это значит, что должно ВЫПОЛНЯТЬСЯ такое восстанавливающее действие, если только реализатор не предусмотрел более подходящего решения для данной ситуации. Однако реализатор должен сохранить для программиста возможность потребовать, чтобы выполняемым действием было в точности действие, указанное здесь.

{Обычно восстанавливающее действие включает в себя возбуждение соответствующей ситуации.}

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

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

1.2.1.    Метаправила лпя видов соответствуют ГОСТ 27974.

1.2.2.    Метаправила, связанные с фразами и приведением А) ЗАКРЫТОЕ: : замкнутое: совместное;

параллельное; ВЫБИРАЮЩЕЕ {34А}; циклическое; подключающее.

246

Страница 3

ГОСТ 27975-88 С. 3

Метаправила В, С соответствуют ГОСТ 27974.

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

Метаправила, Л, С. D, F, G. Н, I, J, К соотвектвуют ГОСТ 27974.

В) СЛОЙ :: новые 70ПИСАНИЯ 7МЕТКИ ’ПОДКЛЮЧЕНИЯ.

Е) ОПИСАНИЕ : : СЛОВО {942А} для ВИДА:

ИНФИКС {942F} для приорктета ПРИОРИТЕТ;

ИНДИКДНТ <942F> для ЗНАЧЕНИЯ НОМЕР:

ИНФИКС {942F} для ДВУХМЕСТНОЙ.

ПРЕФИКС {942К>шш ОДНОМЕСТНОЙ:

МОДУЛЬ: СЛОВО для СИТУ АЦИИ с видом ПРОЦЕДУРА.

L) 7МОДУЛИ : : !МОДУЛИ; ПУСТО М) ! МОДУЛИ : : МОДУЛЬ; ! МОДУЛ И МОДУЛЬ N) МОДУЛЬ : ИНДИКАНТ для 1СВЯЗЕЙ с модулями О) ’СВЯЗИ : 'СВЯЗИ; ПУСТО.

Р) !СВЯЗИ:: СВЯЗЬ; 'СВЯЗИ СВЯЗЬ.

Q) СВЯЗЬ : : КЛЮЧдля открытия 70НИСАНИЙ {и} ПОДКЛЮЧЕНИЙ R) КЛЮЧ : : ЦИ.

S) 'ПОДКЛЮЧЕНИЯ : : ПОДКЛЮЧЕНИЯ; ПУСТО.

Т) !ПОДКЛЮЧЕНИЯ • : ПОДКЛЮЧЕНИЕ: !ПОДКЛЮЧЕНИЯ ПОДКЛЮЧЕНИЕ.

U) ПОДКЛЮЧЕНИЕ : : КЛЮЧ для запуска.

V) СИТУАЦИЯ : : ситуация; реакция

1.3.    Общие гипсрправила соответствуют ГОСТ 27974.

2. вычислитьль И ПРОГРАММА

2.1. Терминология 2-1.1. Объекты.

Определение объекта и npui магическое замечание соответствуют ГОСТ 27974.

2 1.1.1 Значения, учаегки. окружения и сцены Гиперправила а. с. J соответствуют ГОСТ 27974.

Ь) Всякий ..участок" {есть внутренний объект. который} cooiuoki вует каким-то ^ОПИСАНИЯМ ’МЕТКАМ ’ПОДКЛЮЧЕНИЯМ' {1.2 3 С, 1> ..Незанятый участок" ло участок, для которою ’ОПИСАНИЯ 7МЕТКИ ’ПОДКЛЮЧЕНИЯ' есп.' ПУСТО'

{Каждых ОБОЗНАЧЕНИЕ для ПРИЗНАКА' (4.8.1. F. С», заложенное в данные '70ПИСАНИЯ 7МЕТКИ 7ПОДКЛЮЧЕНИЯ'. соответствует оирсде-ляюшему -ОБОЗНАЧЕНИЕ-нндикатиру-выдзюшему-ПРИЗНАК (i.e. какому-нибудь идентификатору. обозначениючшерации или индикатору-инда». описанному в конструкте, исполнение коюрото вызвало создание данною участка. Указанное 'ОБОЗНАЧЕНИЕ для ПРИЗНАКА может .лолучап. доступ" к какому-то значению или сцене ,.внутри" этого участка (2.I.2-C1.

Образом участка может служить ряд ячеек памяти, в коюрые помешены эти доступные объект.}

2-1.1.2. Виды определены в ГОСТ 27974.

.'45

Страница 4

С. 4 ГОСТ 27975-88

2.1.1.3.    Области действия.

Прагматические замечания и гиперправило а) соответствуют ГОСТ 27974.

Ь) Каждое окружение имеет одну определенную „область действия". {Область действия каждого окружения никогда не бывает „старше" (2.1.2.f) области действия того окружения, из которого оно составлено (2.1.1.1с).}

2-I.2- Соотношения

Гиперправила а. Ь, с. d, е. f. g соответствуют ГОСТ 27974.

h)    „Реагировать" есть соотношение между значением {процедурой} и сценой {определением-ситуации}, которое может быть справедливым ..внутри” определенного участка. Данное соотношение становится справедливым после исполнении определения-реакции.

i)    Окружение может быть „связано” с другим окружением {со старшей областью действия} „посредством" некоторой сцены {определения-ситуации}. Это соотношение может быть справедливым для некоторого окружения, созданного в процессе исполнения вызова-ситуации.

2.1.3.    Значения определены в ГОСТ 27974.

2.1.4.    Действия

2.1.4.1.    Исполнение соответствует ГОСТ 27974.

2.1.4.2.    Последовательные и совместные действия соответствуют ГОСТ 27974.

2.1.4.3.    Запуск, завершение и прекращение

Правила а, Ь, с, d, е, f, g и прагматическое замечание соответствуют ГОСТ 27974.

h)    Всякое действие может „прерваться" событием, {например. ..переполнением"}, не определяемым семантикой настоящего стандарта, но вызванным вычислителем, если его возможности {2.2.2.Ь} не позволяют обеспечить удовлетворительное исполнение. Когда действие прерывается, прерываются все его поддействия и, возможно, его налдейсгвия. {Возобновятся ли эти действия после прерывания, будут ли запущены другие действия или же окончи! ся исполнение данной программы, настоящим стандартом оставлено не определенным. Для некоторых событий определены восстанавливающие действия (!. 1.4.4.).}

i)    Действие может прерваться, если вычислитель обнаруживает, что время (место в памяти), выделенное для исполнения программы, близко к исчерпанию. В таком случае восстанавливающим действием служит вызов процедуры восстановление после исчерпания времени {10.2.5.р} (восстановление после исчерпания памяти {10.2.5.q}). {Предполагается, что остающееся количество времени (памяти) будет достаточным, чтобы восстанавливающее действие обеспечило аккуратное завершение или же добыло дополнительные ресурсы.}.

2-1.5. Сокращения определены в ГОСТ 27974.

2.2. Программа соответствует ГОСТ 27974.

24S

Страница 5

ГОСТ 27975-88 С. 5

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

Всс прагматические замечания соответствуют ГОСТ 27974.

3.0-1. Синтаксис

Гиперправила а, Ь, с, d, е соотствегствуют ГОСТ 27974.

О * блок с СРЕДЕ: определяющее СЛОЙ последовательное предложение ПРИВОДИМОЕ В СРЕДЕ {32а}; состав ВЫБИРАЮЩЕГО предложения ОФОРМЛЕННЫЙ ПРИВОДИМЫЙ в СРЕДЕ {34Ь>; вариант выбирающий по ПРЕДСТАВИТЕЛЮ ПРИВОДИМЫЙ в СРЕДЕ -C34i>;

ОФОРМЛЕННЫЙ цикл с ОПИСАНИЕМ в СРЕДЕ {35е}; ОФОРМЛЕННЫЙ подчиненный условию цикл в СРЕДЕ <35 f>; текст процедуры в СРЕДЕ выдающий ПРОЦЕДУРУ {541 а, Ь>; определяющий СЛОЙ текст модуля в СРЕДЕ передающий !СВЯЗИ {49с.-}; модульный кортеж с ОПИСАНИЯМИ без ?ОПИСАНИЙ1 в СРЕДЕ с СЛОЕМ 1 с СЛОЕМ 2 {42d}; подключающее предложение ПРИВОДИМОЕ в СРЕДЕ {36а}.

3-0.2- Семантика соответствует ГОСТ 27974.

3.1.    Замкнутые предложения определены в ГОСТ 27974.

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

3.2.1.    Синтаксис

Гиперправила а. Ь, с, d, е, f, g. h соответствуют ГОСТ 27974.

i) ‘определяющее предложение:

определяющее СЛОЙ последовательное предложение ПРИВОДИМОЕ в СРЕДЕ {32а}; определяющее СЛОЙ выясняющее предложение выдающее ВИД в СРЕДЕ {34с}; определяющий СЛОЙ текст модуля в СРЕДЕ передающий 1СВЯЗИ {49с,-}; определяющее СЛОЙ подключение в СРЕДЕ передающее 7СВЯЗИ {36а,-}.

3.2.2.    Семантика

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

249

Страница 6

С. 6 ГОСТ 27975-88

Ь) Окружение L. „устанавливаемое"

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

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

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

« со значениями V...... Vn, возможно отсутствующими, {кото

рые возможно будут приписаны.} определяется следующим образом:

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

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

Случай Л : С есть опрсделяюшее-предложение:

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

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

(I) факгического-оиисателя зтого М и

(ii) окружения, необходимого для {7.2.2.с} зтого фактического-опи-сателя в Е,

приписывается индикатору-вида этого М в Е;

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

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

(i)    кор!ежа, для которого L - прямой наследник, и

(ii)    окружения Е,

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

Для каждого составляющего определс!шя-ситуации X этого С, если они вообще есть.

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

(ii) окружения Е,

приписывается идентификатору-ситуации этого X в Е;

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

Случай В : С есть задание-аргументов, заглавие-цикла или спецификация: Для i = l. ... , п. где п-число ОПИСАНИЙ, заложенных в'?ПАРЫ\

•    Vj приписывается {4.8.2,а} i-му составляющему опредсляюще-му-идентификатору этого С в Е. если они вообще есть, а иначе {в случзе невидимого заглавия-цикла} некоторому определяющему* букву-алеф-иденгификатору-выдающему-целое:

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

250

Страница 7

ГОСТ 27975-98 С. 7

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

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

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

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

•    W - выдача этой основы; а иначе

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

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

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

3.3. Совместные и параллельные предложения 3.3.1. Синтаксис соответствует ГОСТ 27974.

3-3.2- Семантика

a)    Ги перл ранило соответствует ГОСТ 27974.

b)    Выдача W совместного-предложения-выдающего-СОСТАВНОЕ С определяется следующим образом:

Если прямой наследник из С есть вакуум, то {'СОСТАВНОЕ' есть МАССИВ из ВИДА',} каждая граничная пара к паспорте выдачи W равна (1.0) {. и имеется один скрытый элемент, значение которого не существенно}; иначе

•    пусть V|.....Vm будут {совместными} выдачами составляющих

основ из С;

Случай А: 'СОСТАВНОЕ* есть 'структура содержащая !ПОЛЯ в себе':

•    V,, ... . Vm. взятые в их порядке, служат полями W;

Случай В: 'СОСТАВНОЕ' есть 'векториз ВИЛА!*:

•    W состоит из

(i) паспорта ((I, т)),

(И) V,, ... ,Vm;

Для i = l, ... , т

•    V, элемент, выбираемый по индексу (i) в W;

Случай С: 'СОСТАВНОЕ есть вектор МАССИВОВ иэ ВИДА2'\

•    требуется, чтобы паспорта значений V|, ... , Vn, были идентичны;

•    пусть паспортом {.например.} V, будет ((Li.Ui), ... , (Ln,u„));

•    W состоит из

(i)    паспорта ((1. m). (L,,u,), ... , (U.un));

(ii)    элементов этих V......Vm;

Для i = 1, ... , m

•    элементом, выбираемым no индексу (i, i,,. . . , >„) в W будет элемент. выбираемый no (ii, ... , i„) в Vj.

Если не все паспорта значений V,, ... , Vm идентичны, восстанавливающим действием является следующее:

пусть U есть некоторый массив вида, специфицируемого описателем I ] массив -{10.2.3.1.1.} с паспортом ((1. ш)) и такой, что для i =

251

Страница 8

С. 8 ГОСТ 27475 US

- ].....m, элементом. выбираемым по индексу (i) в U, является неко

торый массив с паспортом, идентичным паспорту Vj:

• вызывается процедура воссшюыение после ошибки записи массива £ 10.2.5.к> со значениями {параметров} U и » С,где п есть число нар в паспорте V,}.

3.4.    Выбирающие предложения определены в ГОСТ 27974.

3.5.    Циклические предложения определены в ГОС Т 27974

3.6.    Подключающие предложения 3.6.1. Синтаксис

a)    подключающее предложение ПРИВОДИМОЕ в СРЕДЕ {50, 551а. A34U1. Л349а>:

определяющее СПОИ подключение в СРЕДЕ передающее ПУСТО {Ь>.

ЗАКРЫТОЕ предложение в СРЕДЕ с СЛОЕМ ПРИВОДИМОЕ {а, 31а, 33а, с, d, с. 34а, 35а.-}.

b)    определяющее новые '’ОПИСАНИЯ 'ПОДКЛЮЧЕНИЯ

подключение в СРЕДЕ передающее 7СВЯЗИ {а, 49с}‘ знак подключить {94d}. открывающий 'СВЯЗИ групповой вызов модулей в СРЕДЕ передающий 7СВЯЗИ {с}, если ''ОПИСАНИЯ ШОДКЛЮЧЕНИЯ открываются СВЯЗЯМИ {е. f} и в СРЕДУ проникают ?ПОДКЛЮЧЕНИЯ из ПОДКЛЮЧЕНИЙ {Ь}.

c)    открывающий 1СВЯЗИ групповой вызов модулей в СРЕДЕ передаю

щий 7СВЯЗИ {Ь. с}: открывающий ’СВЯЗИ вызов модуля в СРЕДЕ передающий 7СВЯЗИ {d.-};

если (7СВЯЗИ) есть (7СВЯЗИ1 7СВЯЗИ2) и (1СВЯЗИ) есть (!ГВЯЗИ1 !СВЯЗИ2), открывающий !СВЯЗИ1 вызов модуля в СРЕДЕ передающий 7СВЯЗИ I {d, }, знак а также {940.

открывающий 1СВЯЗИ2 групповой вызов модулей в СРЕДЕ передающий 7СВЯЗИ2 {с}.

d) открывающий 1СВЯЗИ вызов модуля в СРЕДЕ

передающий 7СВЯЗИ {с}: если С»СВЯЗИ) есть (ПУСТО),

использующий ИНДИКАНТ индикатор модуля в СРЕДЬ выдающий !СВЯЗИ с молулями {48Ь}; если (7СВЯЗИ) есть (.'СВЯЗИ), знак открыюе {94d}.

использующий ИНДИКАНТ индикатор модуля в СРЕДЕ выдающий '.СВЯЗИ с модулями {4£Ь}.

252

Страница 9

HAT 27975-88 С. 9

e) ЕСЛИ •’ОПИСАНИЯ! 70ИИГЛНИЯ2 ’ПОДКЛЮЧЕНИЯ!-»

ПОДКЛЮЧ ЕНИЯ2 открываются

КЛЮЧОМ для открытия ?ОПИСАНИЙ1 'ПОДКЛЮЧЕНИЙ I ?СВЯЗЯМИЗ

КЛЮЧОМ для открытия ГОПИСАНИЙ1 !НОДК,1ЮЧЕНИЙ1 ТВЯЗЯМИ4 {b, e.f}:

ЕСЛИ ■’ОПИСАНИЯ I 70НИСАНИЯ2 1НОДКЛЮЧЕНИЯ!

?ПОДКЛЮЧЕНИЯ? от к рыпаются

КЛЮЧОМ дня открытия 7011ИСАНИЙ1 ПОДКЛЮЧЕНИИ! 7СВЯЗЯМИЗ •'СВЯЗЯМИ4 {с, f>

Г) ЕСЛИ 70ПИСАНИЯ1 ’’ОПИСАНИЯ: МЮДКЛЮЧЕНИЯ:

?ПОДКЛЮЧЕНИЯ’ открываются

КЛЮЧОМ для открытия 70ПИСАНИЙ1 !ПОДКЛЮЧЕНИЙ1 7СВЯЗЯМИ2 {Ь. е, Г>:

ЕСЛИ 70НИСАННЯ2 ?ПОДКЛЮЧЬНИЯ: открываются 7СВЯЗЯМИ2 и 'ОПИСАНИЯ 1 не зависят от ТОПИСАНИЙ: {71а, Ь. с>.

g)    ЕСЛИ ПУСТО открывается ПУСТО <е. f>: ЕСЛИ истина.

h)    ЕСЛИ в СРЕДУ проникают 7ПОДКЛЮЧЕНИЯI из ? ПОДКЛЮЧЕНИЙ ПОДКЛЮЧЕНИЯ {Ь}:

если неверно, что ПОДКЛЮЧЕНИК идентифицировано в СРЕДЕ {72а},

ЕСЛИ (7ПОДКЛЮЧЕНИЯI) есть ('’ПОДКЛЮЧЕНИЯ: ПОДКЛЮЧЕНИЕ) и в СРЕДУ {с> ПОДКЛЮЧЕНИЕМ проникают ’’ПОДКЛЮЧЕНИЯ: из 7ПОДКЛЮЧЕНИЙ {h.i,J; если ПОДКЛЮЧЕНИЕ идентифицировано в СРЕДЕ {?:а>.

ЕСЛИ в СРЕДУ проникаю! 7НОДКЛЮЧЕНИЯ1 из ? ПОДКЛЮЧЕНИЙ {h.

О ЕСЛИ в СРЕДУ проникает ПУСТО из ПУСТО {h>. ЕСЛИ истина.

{Примеры:

a)    иодкл а. b (ввод (f, а); неч (а))

b)    подкл а, b

c)    а. b

d)    а. откр Ь}

{В правюе b КЛЮЧИ для запуска', заложенные в 'ПОДКЛЮЧЕНИЯ', представляют те модули, запуск которых может потребоваться при любом выэове-модуля. использующий-индикатор-модуля которого илентифици-рует конкрешый опредсляюшийин;шкагор-модуля. в го время, как подобные гиперпонятия, заложенные в 7ПОДКЛЮЧЕНИЯ’. представляют только те модули, коюрые нужно запускать в конкретном контексте.дляосталь-

253

Страница 10

С. 10 ГОСТ 27975-88

ных же эю уже было исполнено, как можно статически определить по 'СРЕДЕ'. Наличие '’ПОДКЛЮЧЕНИЙ' в средах всех наследных конструктов подключаюшего-предложения гарантирует, что все запущенные к данному моменту модули никогда не будут заново запускаться внутри этих наследников.

Правило { обеспедавает независимость одновременно открываемых описаний, так, например,

модуль а =мдоткр веш х дм, Ь = мд откр веш х дм; подкл а, Ь (х)

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

модуль а =мд откр веш х дм; модуль b = подкл откр а мд веш у дм;

с = подкл откр а мд вещ г дм; подкл b с (х + у + г) где определения-модуля и для b и для с открывают х посредством откр а в своих составляющих подключениях }

3.6.2. Семантика:

a)    подключзющее-предложение-ПРИВОДИМОЕ-вСРЕДЕ N в окружении Е исполняется следующим образом

Если, согласно 'СРЕДЕ', существует „первый неэапущенный" {Ь} модуль М из подключения R этого N в Е, то

•    пусть М состоит из опрсдсляющсго-Иовые-?ПАРЫ-ПОДКЛЮЧЕНИЕ-текста модуля Т {вместе с необходимым окружением};

•    М запускается {с} в Е, развертывая новое окружение Е4 {внутри которого участок 'ПОДКЛЮЧЕНИЕ' подключает реэулмаг запуска М>;

•    пусть Y - это выдача {а} в Е4 подключающего-предложения-ПРИВО-ДИМОГОв-СРЕДЕ- {с> ПОДКЛЮЧЕНИЕМ, подобного N{,bkoto-ром относительно М известно, что он уже запущен};

•    {М отключается, т. е.} кортеж составляющею заключения из Т, если такой вообще есть, исполняется в Е4;

•    выдача N в Весть Y;

•    требуется, чтобы Y по области действия было не младше Е; в противном случае

•    пусть Е2 - это окружение, устанавливаемое вокруг и наравне с Е в соответствии с К ; участок этого Е2 соответствует передаваемым свойствам модулей, подключаемых R};

•    Е2 ,лоио;шястся" {d} {значениями, передаваемыми составляющими вызова ми-модулей} из R в Е;

•    выдача N в Е есть выдача ЗАКРЫТОГО-предложения этого Nb Е2;

b)    „Первый незапущенный" соглзсно некоторой 'СРЕДЕ' модуль из подключения R в окружении Е определяется следующим образом:

Если существует некоторый составляющий открывающий-?СВЯЗИ-

254

Страница 11

ГОСТ 27975-«в С. II

КЛН^Ч-для открытия-?СВЯЗЕЙ-ПОДКЛЮЧЕНИ Е-в ызов-модуля С из R, такой, что выполняется предикат если неверно что ПОДКЛЮЧЕНИЕ идентифицировано в СРЕДЕ,' и который текстуально является первым таким вызовом модуля, то

•    пусть выдача использующего-индикатора-модуля этого С в Е есть {еще не запушенный]- модуль М, состоящий из текста-модуля Т и окружения EJ {необходимого (7.2.2.с) дляТ}; Если Т содержит подключение S

и если согласно 'СРЕДЕ' существует первый незапущенный модуль Ml из S в EI,

то М1 есть первый незапущенный модуль из R; иначе М есть первый неззпушенный модуль из R; иначе не имеется никакого первого незапущенного модуля из R.

{ Выбор С среди вызовов-модулей из R зависит только от ’СРЕДЫ' и не зависит от Е. Из этого следует, что такой выбор всегда можно осуществить во время трансляции Е требуется только для того, чтобы получить правильное окружение, необходимое для М.}

с) Модуль, состоящий из определяющего-новые-0ПАРЫ-ПОДКЛЮЧЕ-НИЕ-тексга-модуля Т и окружения Е1 -С. необходимого для Т>, запускается в окружении Е следующим образом:

Если Т содержит {уже запущенное} подключение S то

•    пусть Е2 есть окружение, устанавливаемое вокруг Е1, наравне с Е, согласно S;

•    участок этого Е2 .дополняется” {d} {значениями, передаваемыми наследными выэовами-модулей,} из S в Е;

иначе, пусть Е2 есть Е1;

•    пусть ЕЗ есть окружение, устанавливаемое вокруг Е2 и. если Е - это „окружение расположения модуля", то наравне с Е, а иначе no Е, согласно Т { ; участок этого ЕЗ соответствует всем свойствам (передаваемым или нет), описанным в Т>;

•    'ПОДКЛЮЧЕНИЕ' получает доступ к модулю, состоящему из Т и ЕЗ внутри участка этого ЕЗ { , гак чго внутри самого Т будет видно, что Т уже запущен};

•    в ЕЗ исполняется составляющее модульное-вступление из Т;

•    пусть Е4 есть окружение, называемое „окружением расположения модуля”, устанавливаемое вокруг Е. наравне с ЕЗ, согласно некоторому опрсделяюшему-новое-ПОДКЛЮЧЕНИЕ-НОНЯТИЮ;

•    ’ПОДКЛЮЧЕНИЕ’ получает доступ к модулю, состоящему из Т и ЕЗ внугри участка этого Е4;

•    запуск М называется „развертывающим” окружение Е4.

{Все окружения, создаваемые в процессе запуска неэапущенных модулей (Ь) из подключения некоторого полключающего-прелложення N. имеют одну и ту же область действия, младшую, чем у окружения, в котором будем исполняться N. но старшую, чем у любого окружения, создаваемого в процессе исполнения ЗАКРЫТОГО-предложения этого N.}

255

Страница 12

С. 12 ГОСТ 2797$-«8

d)    Участок L „дополняется** из подключения R в окружении Ь следующим образом:

Для каждого наследного использующего-инпикагора-модулявыдающего-!СВЯЗИс-модулями этою R.

Для каждого КЛЮЧА для открытия ’ПАР', заложенного {1.1.4.1.с> в СВЯЗИ’.

• пусть модуль, „подключаемый" <е> 'КЛЮЧОМ для запуска внутри Е {. он будет находиться в некотором окружении расположения модуля (с).} ecib {уже запущенный} модуль, состоящий из текста-модуля Т и окружения ЕЗ ■{. в котором до этого было исполнено его модульное-вступление}:

Для каждого значения или сиены, подключаемых внутри участка этого ЕЗ посредством некоторой 'ПАРЫ'.

Если зга 'ПАРА' заложена в '’ПАРЫ' {, 'ПАРА'должна быть передаваемой}.

то 'ПАРА' получает доступ к этому значению или сцене (если она сше не имеет такого доступа) также внутри L-

e)    Значение или сцена. ..подключаемые” 'НАРОЙ' внутри окружения Е состоящего из участка L и окружения Е1, есть значение или сцена, доступная через 'ПАРУ' внутри L {2Л.2.С.}, если L соответствует '7ПАРАМ'. в которые заложена •£ 1.1.4.I.e.} эта 'ПАРА*, а иначе значение или сцена, доступная через 'ПАРУ' внутри F.I.

4. ОПИСАНИЯ. ОПИСАТЕЛИ И ИНДИКАТОРЫ

Все прагматические замечания соответствуют ГОСТ 27974.

4.1    Описания

4.1.1    Синтаксис

А) ОБЬЕКТ : : вид: приоритет; тождество дня ИРОВЦДА; переменная как имя ПРОВИДА; операция как ПРОВИЛ; ПАРАМЕТР; поле вида ВИД среди ПОЛЕЙ; модуль;

Ситуация с видом ПРОЦЕДУРА; реакция.

■С11РОВИД :: процедура; ВИД.}

Гиперправнла а. Ь. с, d соответствуют ГОСТ 27974. е) описание с ?ОПИСАНИЯМИ без 70ПИСАНИЙ1 в среде {49е}: если ("’ОПИСАНИЯ без 70ПИСАНИЙ1) если (ПУСТОбез ЮПИСАНИЙ1), описание ОБЪЕКТОВ через ЮПИСАНИЯI в СРЕДЕ {42а. 43а.

44а, е. 45а. 49а.-}; если (70ПИСАНИЯ без 70ПИСАНИЙ1) есть (ЮПИСАНИЯ без ПУСТО) знак открытое {94d},

описание ОБЪЕКТОВ через ЮПИСАНИЯ в СРЕДЕ {42з, 43а. 44а. с. 45а, 49а.-}; если (’’ОПИСАНИЯ без "’ОПИСАНИЙ!) есть

(70ПИСДНИЯ без ЮПИСАНИЙ1 70ПИСАНИЯ2),

256

Страница 13

ГОСТ 27975-88 С. 13

описание ОБЪЕКТОВ через ЮПИСАНИЯ1 в СРЕЛЕ {42а, 43а. 44а. е.

45а, 49а,-}. знак а также {94f>,

описание с ^ОПИСАНИЯМИ без 70ПИСАНИЙ2 в СРЕЛЕ -Се>: если (?ОПИСАНИЯ без ?ОПИСАНИЙ1) есть

('ОПИСАНИЯ ТОПИСАНИЯЗ без 70ПИСАМИЙ1), знак открытое -C94f>,

описание ОБЪЕКТОВ через ЮПИСАНИЯ в СРЕДЕ {42а. 43а, 44а, е, 45а, 49а.-}. знак а такжо {94f},

описание с 70ПИСАНИЯМИЗ без 70ПИСАНИЙ1 в СРЕЛЕ {с}. {Модули могуг запускаться подключаюшими-предложениями.}

4.1.2 Семантика соответствует ГОСТ 27974.

4.2.    Описания видов соответствуют ГОСТ 27974.

4.3.    Описания приоритетов соответствуют ГОСТ 27974.

4.4.    Описания идентификаторов соответствуют ГОСТ 27974.

4.5.    Описания операций соответствуют ГОСТ 27974.

4.6.    Описатели определены в ГОСТ 27974.

4.7.    Соотношения между видами определены в ГОСТ 27974.

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

4.8.1.    Синтаксис

А) ИНЛИКАТОР : : идентификатор; индикатор вида;

обозначение операции; индикатор модуля.

Метаправила В, С. D соответствуют ГОСТ 27974.

E)    ПАРА : ; ОПИСАНИЕ; МЕТКА; ИОЛЕ; ПОДКЛЮЧЕНИЕ.

{ПАРА : : ОБОЗНАЧЕНИЕ для ПРИЗНАКА.}

F)    ПРИЗНАК : : ВИД; ЗНАЧЕНИЕ НОМЕР; БИНАРНОЕ; метка; выборка ВИДА; 'СВЯЗИ с модулями; запуск; СИТУАЦИЯ с видом ПРОЦЕДУРА.

С) ОБОЗНАЧЕНИЕ : : СЛОВО; ИНДИКАНТ; ИНФИКС; ПРЕФИКС; КЛЮЧ.

Гмперправила а, Ь. с, d, е, f соответствуют ГОСТ 27974.

4.8-2- Семантика определена ГОСТ 27974.

4.9.    О пи с а ни я модулей

4.9.1.    Синтаксис

a)    описание модулей через МОДУЛИ в СРЕДЕ1 {41а, е}:

знак модуль {94d}, групповое определение модулей через 1МОДУЛИ в СРЕДЕ 1 {41Ь. с}.

b)    определение модуля через ИНДИКАНТ для 7СВЯЗЕЙ СВЯЗИ с

модулями в СРЕДЕI {41с}: если (СВЯЗЬ) есть (КЛЮЧ для открытия 70ПИСАНИЙ 7ПОДК-ЛЮЧЕНИЙ {и} КЛЮЧ для запуска)

и (ИНДИКАНТ) сеть (выделенное СЛОВО), если (СРЕДА 1) есть (ПОНЯТИЕ1 КЛЮЧ для запуска 7ПОНЯТИЕ2).

257

9-

Страница 14

С. 14 ГОСТ 27975 -ИВ

если неверно что (ПОНЯТИЕ1 7ПОНЯТИЕ2) содержит (КЛЮЧ для запуска), определяющий ИНДМКАНТ индикатор модуля в СРЕДЕ 1 выдающий 7СВЯЗИ СВЯЗЬ с модулями {4ва>, знак определяется как {94d>, определяющий СЛОЙ текст модуля в СРЕДЕ 1 передающий 7СВЯЗИ СВЯЗЬ {с,-}.

c)    определяющий новые 70ПИСАНИЯ1 70ПИСАНИЯ ПОДКЛЮЧЕНИЕ

текст модуля в СРЕДЕ1 передающий 7СВЯЗИ КЛЮЧ Д1я открытия '’ОПИСАНИИ 7П0ДКЛЮЧЕНИЙ ПОДКЛЮЧЕНИЯ {Ь>: если (7ПОДКЛЮЧЕНИЯ) есть (ПУСТО) и (7СВЯЗИ) есть (ПУСТО).

знак начало модуля ОФОРМЛЕННЫЙ {94d>, модульный кортеж с ЮПИСАНИЯМИ без 70ПИСАНИЙ1 в СРЕДЕ 1 с новым {пустым СЛОЕМ}

с новыми ОПИСАНИЯМИ 1 70ПИСАНИЯМИ ПОДКЛЮЧЕНИЕМ ■Cd>,

знак конец модуля ОФОРМЛЕННЫЙ £94 d>; определяющее СЛОЙ подключение в СРЕДЕ 1 передающее 7СВЯЗИ {36Ь>, знак начало модул я ОФОРМЛЕННЫЙ {94d>, модульный кортеж с ЮПИСАНИЯМИ без ^ОПИСАНИЙ] в СРЕДЕ с СЛОЕМ с новыми 70ПИСАНИЯМИ1 70ПИСАНИЯМИ ПОДКЛЮЧЕНИЕМ <d>, знак конец модуля ОФОРМЛЕННЫЙ {94 d>, если (СЛОЙ) есть (новые 70ПИСАНИЯ2 7ПОДКЛЮЧЕНИЯ).

d)    модульный кортеж с 70ПИСАНИЯМИ без 70ПИСАНИЙ1 в СРЕДЕЗ

•СО:

модульное вступление с ЮПИСАНИЯМИ без 70ПИСАНИЙ1 в СРЕДЕЗ {е>, возможное модульное заключение в СРЕДЕЗ {f>.

e)    модульное вступление с ЮПИСАНИЯМИ! без 70ПИСАНИЙ2 в

СРЕДЕЗ {d. е>: основа в СРЕДЕЗ сильно выдающая пустое значение {32 d}, знак продолжать {94 f},

модульное вступление с 70ПИСАНИЯМИ1 без 70ПИСАНИЙ2 в СРЕДЕЗ {е}: если (70ПИСАНИЯI без ЮПИСАНИЙ2) еегь

(70ПИСАНИЯЗ 70ПИСАНИЯ4 без 70ПИСАНИЙ5 70ПИСА-НИЙ6),

описание с 70ПИСАНИЯМИЗ без?ОПИСАНИЙ S в СРЕДЕ {41е>, знак продолжать {94 Г},

модульное вступление с 70ПИСАНИЯМИ4 без 70ПИСАНИЙ 6 в СРЕДЕЗ {е};

258

Страница 15

ГОСТ 27375-«8 С. 15

если (’ОПИСАНИЯ I без 70ПИСАНИЙ2) есть (ПУСТО) без (ПУСТО),

основа в СРЕДЕЗ сильно выдающая iivctoc значение -C32d>; описание с 70ПИСЛНИЯМИ1 без 70ПИСАНИЙ 2 в СРЕДЕЗ {41 е>. f ) модульное заключение в СРЕДЕ -Cd}:

знак сброс модуля ОФОРМЛЕННЫЙ {94d>, кортеж с ПУСТО сильно выдающий пустое знзчение в СРЕДЕЗ •С32Ь>. g)* текст модуля:

,>    определяющий    СЛОЙ    текст    модуля в СРЕДЕ передающий 1СВЯЗИ

{с}.

-(Примеры:

a)    модуль а = мд строк s; чит (s);

откр строк t =*’файл" ♦ s, откр вещ а дм, b - 1юдкл а мд откр файл f;

О ж рыть (f, t, стандканал ввода); сброс закрыть (О дм.

b)    а = мд строк s; чит (s);

откр строк t а*’файл'’ + S, откр веш а дм,

Ь= подкл а мд откр файл f:

открыть (f, t, стандканал ввода)*

Сброс закрыть (f) дм.

c)    мл строк s: чит (s);

откр строк t “"файл** + s, откр веш а дм; подкл а мд откр файл f;

открыть (f. t, стандканал ввода); сброс закрыть (f) дм.

d)    строк s; чит (s) : откр строк t =”фзйл” + s, откр вещ а; откр файл f; открыть (f, I, стандканал ввода);

сброс закрыть (f).

e)    строк s; чит (s); откр строк I =*файл'' + s, откр веш а; откр файл (: открыть (f, t, стандканал ввода).

{) сброс закрыть (О. >.

{Правило b гарантирует, что с каждым текстом-модуля, подключаемым в любом заданном месте программы, связывается единственный КЛЮЧ’. Это используется для того, чтобы обеспечить возможность идентификации (7.2.1 а) 'КЛЮЧА для запуска' в средах всех наследных конструктов любого подключающего-предложения или текстз-модуля, которые запускают этот текст-модуля.

Вообще говоря. определяющий-СЛОЙ-текст-модуля-персдаюший-. 1СВЯЗИ Т делает 'СЛОЙ' видимым внутри самого Т и делает свойства, открываемые ^СВЯЗЯМИ' .видимыми всюду, где подключается Т. 'СЛОЙ' включает в себя как ЮИИСАНИЯ, соответствующие его открытым описаниям (например, t и а в первом тексте-модуля из примера с и ’ТОПИСАНИЯГ, соответствующие его скрытым описаниям (например,* s в

259

9

Страница 16

С. Ih ГОСТ 2797S-SK

лом же примере), ик и 'ПОДКЛЮЧЕНИЕ', связывающее Г с единственным cooriwrcrej тощим ему КЛЮЧОМ’ и означающее. *тто в .чанной среде теперь известно о налички запуска этого Т.

*!С ВЯЗИ' всегда открывают '"’ОПИСАНИЯ 7ИОДКЛЮЧЕНИЯ ПОДКЛЮЧЕНИЕ* (но НС ’ТОПИСАНИЯГ). где '?Г10ДКЛЮЧЕНИЯ' означают запуск любых других модулей, подключаемых Т. если их вызовы-модулей внутри Т содержат знак открытое }

4.9-2. Семантика

а| ..Модуль" — это сцена {2 11 1 d>. состоящая из текста-модуля вместе с ок ружеиием {2.1.1.! с }.

b)    Описание-модулей I) исполняется следующим обозом:

•    совместно исполняются составляющие тексты-модулей этого D:

Для каждого составляющею определения-модуля Г)1 из D.

•    выдача -Те> 1експ)-модуля этого D1 приписывается {4.8.2 а} опрс-деляюшему-индикатору-модудя этого D).

c)    Выдача текста-модуля Т в окружении Е это модуль, состоящий из (i) Т и

(и) окружения, необходимого для {7.2.2.с} Т в F..

d)    Модул ьнос-встуачсние (' в окружении К исполняется следующим образом:

•    в Е исполняемся его основа или описание:

Если ею прямым наследником является другое модульнос-встуиле-нис D. то D исполняется в Е {; в противном случае исполнение С завершено}.

410. Ситуации и реакции

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

4.10.1. Синтаксис

а) описание ситуаций с видом ПРОЦЕДУРА через 'ОПИСАНИЯ в СРЕДЕ {41а};

знак СИТУАЦИЯ {94F} . групповое определение ситуаций с видом ПРОЦЕДУРА через ЮПИСАНИЯ в СРЕДЕ {41 Ь,с} .

в) определение ситуации с видом ПРОЦЕДУРА через СЛОВО для ситуации с видом ПРОЦЕДУРА а СРЕДЕ { 41 с} : определяющий СЛОВО

Страница 17

ГОСТ 27975-88 С. 17

идентификатор в СРЕДИ выдающий ситуацию с видом ПРОЦЕДУРА {48а}.

c)    описание реакций через ЮПИСАНИЯ в СРЕДЕ (41 aj:

знак РЕАКЦИЯ ^ 94 f} . групповое определение реакций через ’ОПИСАНИЯ в СРЕДЕ {41 Ь.с}.

d)    определение реакции через СЛОВО для реакции с видом ПРОЦЕДУРА в СРЕДЕ {41с}:

если СЛОВО для ситуации с видом ПРОЦЕДУРА идентифицировано в среде -С72а>.

определяющий СЛОВО идентификатор н СРЕДЕ выдающий реакцию с видом ПРОЦЕДУРА {48а}. знак двоеточие {94f>. источник мила ПРОЦЕДУРА в СРЕДЕ {521с}.

{Примеры:

a)    ситуация (вещ) пуст недопустимый аргумент

b)    (веш> пуст недопустимый аргумент

c)присит    недопустимый аргумент: (вещ х) пуст: финиш (Цнецопустимый зргуменх: (вещ х) пуст: финиш}

4.10.2. Семантика

a)    исполнение описания-ситуаций {не требует действий, не выдает значения и тем самым} завершено.

b)    описание-реакций D в окружении Е исполняется следующим образом:

•    совместно исполняются составляющие источники из D в Е; для каждого составляющего определения-реакции D1 из D

•    пусть V есть выдача источника из DI:

•    пусть X есть вьщачз испольэуюшего-идстификагора-ситуации. подобного определяющему-идентификатору-реакции из D1 в Е;

•    V начинает реагировать на X внутри участка из Е.

5. ОСНОВЫ

Все прагматические замечания соответствуют ГОСТ 27974. 5.1.СИНТЗКСИС

А) ОСНОВА {32d> : : приведенное присваивание {521а}: приведенное отношение одноименности {522а}; приведенный текст процедуры {541 а. Ь}; переход {544а}: пропуск {552а}; ТРЕТИЧНОЕ {В}; формальная заготовка: виртуальная заготовка.

Метаправила В. С соответствуют ГОСТ 27974.

D) ПЕРВИЧНОЕ {С 532а, 543а} : : приведенная вырезка {532а}; приведенный вызов {551а}; приведенный вызов ситуации {545а};

приведенное изображаемое {80а}; приведенное ядро {551а}. приведенный гекс! формата {А341а}; приведенный использующий СЛОВО идентификатор {48 Ь};

26!

Страница 18

с. 18 ГОСТ 27975-88

ЗАКРЫТОЕ предложение {313, 33а, с. d, с, 34а, 35а>.

Гиперправнло а соответствует ГОСТ 27974.

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

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

5.2.1.1.    Синтаксисопределен в ГОСТ 27974.

5.2.1.2.    Семантика.

Гиперправило а соответствует ГОСТ 27974.

Ь) значение W ..присваивается” имени N. видом которого является некоторое 'ИМЯ ВИДА', следующим образом:

Требуется, чтобы

•    N не было псевдоименем и

•    W по области действия не было младше N;

Если N есть пссвдоимя, то восстанавливающим действием служит вызов процедуры восстановление после ошибки псевдоимени {10.2.5.1};

Если W по области действия младше N. то восстанавливающим действием служит вызов процедуры восстановление после ошибки области действия {10 2.5.ш>:

Случай А: 'ВИД' есть структура содержащая !ПОЛЯ в себе’:

Для каждого 'СЛОВА , выбирающего поле в W.

• это поле присваивается подымени, выбираемому по 'СЛОВУ’ в N; Случай В: 'ВИД есть 'МАССИВ из ВИДА Г:

•    пусть V - {старое} значение, именуемое N;

•    требуется, чтобы паспорта W к V были идентичны;

Дчя каждого индекса I. выбирающего элемент в W,

•    этот элемент присваивается подымени. выбираемому по I в N: Если дескрипторы W и V не идентичны, восстанавливающим действием

является следующее:

•    пусть п есть чисто пар в паспорте W:

•    пусть i есть некоторое целое число, такое, что 1 < i < п и пары с номером i в паспортах W и V не совпадают.

•    вызывается процедура восстановление после ошибки присваивания {10.2.5 li} оо значениями {параметров} N. W. п. i;

Случай С: ВИЛ’ есть 'подвижный МАССИВ из ВИДА Г:

•    пусть V - {старое} значение, именуемое N;

•    N нэчинаег именовать массив, составленный из

(i)    паспорта значения W,

(ii)    вариантов {4.4 2.с} некоторого {, возможно скрытого.} элемента значения V;

•    N снабжается полыменами {2.l.3.1.g};

Для каждого индекса I, выбирающего элемент в W.

•    этот элемент присваивается подымени, выбираемому по I в N; Остальные случаи {, например, если ’ВИД’ есть 'ПРОСТОЕ' И'Ж некоторый ПРЕДСТАВИТЕЛЬ’}:

•    N начинает именовать {2.1.3.2а} W.

5.2.2.    Отношения одноименности определены в ГОСТ 27974.

262

Страница 19

ГОСТ 27975-88 С.19

5.2.3.    Генераторы определены в ГОСТ 27974.

5.2.4.    Пссвдоимена соответствуют ГОСТ 27974.

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

м и

5-3.1. Выборки

5.3.1.1.    Синтаксис соответствует ГОСТ 27974.

5.3.1.2.    Семантика.

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

•    пусть V будет выдачей ВТОРИЧНОГО выборки S;

•    требуется, чтобы V {. если оно имя,} не было псевдоименем, причем восстанавливающим действием служит вызов процедуры восстановление после ошибки псевдоимени <10.2.5.1};

•    W - значение, выбираемое в {2,1.3.За.е. 2.1.3.4 к}, или имя. генерируемое из {2.1.3.4.1} V по указателю-поля этого S.

5.3.2.    Вырезки

5.3.2.1.    Синтаксис соответствует ГОСТ 27974.

5.3.2.2.    Семантика.

а) выдача W вырезки S определяется посредством следующих шагов: Шаг I:

•    пусть V и (11 ,    -    {совместные}    выдачи ПКРВИЧНОГО вы

резки S и индексатора {Ь} из S;

•    требуется, чтобы V {, если оно имя,} не было псевдоименем, восстанавливающим действием служит вызов процедуры восстановление после ошибки псевдоимени {10.2.5.1};

•    пусть ((Г|, S|), . . . , (т„, s„)) — паспорт выдачи V или значения, именуемого V;

Шаг 2: для i = 1.....п

случай А; 1| • целое число:

•    требуется, чтобы    <    si;

случай В: 1| тройка (1, и.Г):

•    пусть L будет rj, если I отсутствует, и I в противном случзе;

•    пусть U будет Sj, если и отсутствует, н и и противном случае;

•    требуется, чтобы г, < L и U<»i;

•    1, заменяется на (L, U, Г).

Восстанавливающее действие для этого шага состоит в следующем;

•    пусть i и b - некоторые числа, такие, что 1 < i < п и либо случай А1 : 1| — целое число, ij < rj или I» > s, н b - Ii, либо случай Bl : 1; -тройка 0. ч, Г), возможно, измененная на предыдущих шагах,

1 не отсутствует, 1 < г и b =1, либо случай В2: 1( - гройкз (l.u.I'), возможно, измененная на предыдущих шагах, и не отсутствует, u > S| и b ■» и;

•    пусть R есть процедура восстановление после ошибки границы имени {10.2.5.j}, если V имя. и процедура восстановление после ошибки границы {10.2.5.i} в противном случае:

•    пусть Ь' - выдача вызова со значениями {параметров} V, n, i и Ь.

263

Страница 20

с.20 ГОСТ 27975 -US

•    для случая Л1 :1, заменяется на Ь';

•    для случая ВI : i из li заменяется на Ь';

•    для случая В2: и из Ij заменяется на Ь‘;

•    шаг 2 выполняется сначала.

Шаг 3: для i = I, ... , п, если Ij тройка (I. u. I'),

•    пусть D будет 0, если 1'отсутствует, и 1 Г в противном случае: {D -это число, когорте следует вычесть из 1. дли тою чтобы получить сдвинутую нижнюю границу : >

•    Г заменяется нз D.

Шаг 4: W — значение, выбираемое в {2.1.3.4 a.g. i>, или ими.генерируемое из { 2.1.3.4. j} V по (I,,    ,    1„).

Ь) Гинерправило соответствует ГОСТ 27974.

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

5.4.1.    Тексты процедур соответствуют ГОСТ 27974.

5.4.2.    Формулы соответствуют ГОСТ 27974.

5.4.3.    Вызовы определены в ГОСТ 27974.

5.4.4.    Переходы определены в ГОСТ 27974.

5.4.5.    Вызовы ситуации

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

5.4.5.1.    Синтаксис.

a)    вызов ситуации в СРЕДЕ выдающий ЗНАЧЕНИЕ {51)}: возможный знак возбудить {94 f}, использующий СЛОВО идентификатор в СРЕДЕ выдающий ситуацию с видом процедура 7ПАРАМЕТРИЗО-ВАННАЯ вырабатывающая ЗНАЧЕНИЕ {48Ь>,

пари метризация ?ПАРАМЕТРИ30ВАЛНАЯ в СРЕДЕ {Ь,с>.

b)    параметризация с ШАРАМЕТРАМИ в СРЕДЕ {а}: упакованные кратким фактические.1 ПАРАМЕТРЫ в СРЕДЕ {543Ь,с>.

c)    параметризация в СРЕДЕ {а}: ПУСТО.

{Примеры:

а) возбуд недопустимый аргумент (х) >

5.4.5.2.    Семантика.

а) выдача W вызова-ситуации Y в окружении Е определяется следующим образом:

264

Страница 21

ГОСТ 27975-88 С-21

•    пусть X есть выдача используюшего-идснтификаюра-ситуации из Y в Е;

•    пусть Н и F ~ это, соответственно, процедура и окружение реакции {Ь} для X в Е;

пусть Е1 — новое {локализующее, см. 3.2.2.2.Ь> окружение, устанавливаемое вокруг Е: Е! называется связанным с F посредством X,

•    пусть V,.....Vn будут {совместными} выдачами составляющих

фактических параметров этого Y. если они вообще есть, в Е1;

•    W есть выдача ..вызова" {5.4.3.2.b} Н в Е1. возможно, со значениями ■С параметров} V, , ... , Vn;

•    требуется, чтобы W по области действия не была младше Е. причем восстанавливающим действием служит вызов процедуры восстановление после ошибки области действия {10.2.5.п}.

b)    процедура реакции Н и окружение реакции F ДЛЯ сцены X в окружении Е определяются следующим образом:

•    требуется, чтобы Е по области действия не было младше окружения из X, причем восстаналиваюшим действием является вызов процедуры восстановление после общей ситуации {10.2-S.o};

•    если существует значение R, реагирующее на X внутри участка из Е, то Н есть R и F есть Е;

•    иначе

•    пусть F.1 есть отсчетное окружение {с} для X в Е;

•    пусть Е2 есть окружение, по которому {3.2.2.Ь} установлено окружение Е:

•    Н и F - это процедура и окружение реакции для X в Е2.

c)    отсчетное окружение F для сиены X в окружении Е определяется следующим образом:

•    если Е связано посредством X с другим окруженим Е1, то F есть ЕI;

•    иначе F есть Е.

5.5. Основы, связанные со значениями любого вида, соответствуют ГОСТ 27974.

5-6. Заготовки 5-6.1. Синтаксис

A)    ЯЗЫК : : алгол шестьдесят восемь.

К вышеприведенному метаправилу могут быть добавлены дополнительные гиперпонятия {например, „фортран"}.

B)    АЛГОЛ 68 : : алгол шестьдесят восемь.

a)    виртуальная заготовка в СРЕДЕ сильно выдающая ЗНАЧЕНИЕ {5AJ:

символ виртуальная среда,

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

сильно выдающее ЗНАЧЕНИЕ {31а}.

b)    форьвльнзя заготовка в СРЕДЕ сильно выдающая ЗНАЧЕНИЕ {5А}:

знак формальная среда {94d}, индикатор ЯЗЫКА выдающий ЗНАЧЕНИЕ {е. f. •},

265

Страница 22

С. 22 ГОСТ 27975-48

индикатор заготовки {d}.

c)    фактическая заготовка в СРЕДЕ выдающая ЗНАЧЕНИЕ {Аба}:

ЗАКРЫТОЕ предложение в СРЕДЕ сильно выдающее ЗНАЧЕНИЕ {31а, 33а, с, 34а, 35а,-, 36а, •>.

d)    индикатор заготовки {Ь}

изображение литерного <814а >; изображение вектора из литерных {83а}.

e)    индикатор АЛГОЛ 68 выдающий ЗНАЧЕНИЕ {Ь}: ПУСТО.

f)    для каждого дополнительного терминального мета по рождения „ЯЗЫКА” должны быть добавлены гиперправила для гиперпонятий формы ..индикатор ЯЗЫКА выдающий ЗНАЧЕНИЕ"; каждое из таких правил содержит ровно одну альтернативу, которая должна бьгть отличимым знаком выделенное СЛОВО.

{Примеры;

b)    среда "abc”

c)    подкя a. b (х: * 1; у: *2: печ (х + у))

d)”a"    «abc"}

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

{Выдачей виртуальнойзаготовки явлиется, вследствие предысполне-ния (2.1.4.1.с), выдача ее замкнуто го-предложения. Для формальных- или фактических-заготовок не задано никакой семантики, поскольку их исполнение никогда не требуется.}

6. ПРИВЕДЕНИЕ

Все прагматические замечания соответствуют ГОСТ 27974.

6-1 .Приведенные 6.1.1. Синтаксис

Метаправила А, В, С. D. Е, С соответствуют ГОСТ 27974.

F) РАСКРЫВАЕМОЕ : : выборка к СРЕДЕ; вырезка в СРЕДЕ;

вызов в СРЕДЕ; вызов ситуации в СРЕДЕ; текст процедуры в СРЕДЕ;

АРНАЯ формула в СРЕДЕ;

использующий СЛОВО идентификатор в СРЕДЕ.

Гиперправила а, Ь, с, d, е, f. g. h соответствуют ГОСТ 27974.

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

6-2.1. Синтаксис соответствует ГОСТ 27974.

6-2.2. Семантика

Выдача W ФОРМЫвыдающей-ВИД-после-разыменопавия F определяется следующим образом

•    пусть {им*} N - выдача ФОРМЫ-после-РАСКРЫГИЯ F:

•    требуется, чтобы N, не быяо псевдоименсм. причем восста-

266

Страница 23

ГОСТ 27975-88 С.23

навливающим действием служит вызов процедуры воссшюапсние после ошибки псевдоимсни {10-2-5.1 >;

• W - значение, именуемое этим N .

6.3.    Распроцедуривание соответствует ГОСТ 27974.

6.4.    Объединение соответствует ГОСТ 27974.

6.5.    Обобщение соответствует ГОСТ 27974.

6.6.    Векторизация соответствует ГОСТ 27974.

6.7.    Опустошение соответствует ГОСТ 27974.

7. ВИДЫ И СРЕДЫ

Все прагматические замечания соответствуют ГОСТ 27974.

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

7.1.1.    Синтаксис

Метаправила Д. В соответствуют ГОСТ 27974.

С) ЕСЛИ ОБОЗНАЧЕНИЕ! для ПРИЗНАКА! не зависит от ОБОЗНАЧЕНИЯ для ПРИЗНАКА2 Са, 48а, с, 72а >:

если неверно что (ОБОЗНАЧЕНИЕ!) есть (ОБОЗНАЧЕНИЕ2), ЕСЛИ истина;

если (ОБОЗНАЧЕНИЕ!) есть (ОБОЗНАЧЕНИЕ:) и (ОБОЗНАЧЕНИЕ!) есть (АФФИКС),

ЕСЛИ ПРИЗНАК! не зависит от ПРИЗНАКА2 {d>; если (ОБОЗНАЧЕНИЕ!) есть (ОБОЗНАЧЕНИЕ!) и (ОБОЗНАЧЕНИЕ!) есть (СЛОВО).

если (ПРИЗНАК!) есть (СИТУАЦИЯ! с видом ПРОЦЕДУРА!) и (ПРИЗНАК2) есть (СИТУАЦИЯ2 с видом ПРОЦЕДУРА2),

ЕСЛИ (СИТУАЦИЯ 1 СИТУАЦИЯ 2) есть (ситуация реакция) или (СИТУАЦИЯ 1 СИТУАЦИЯ2) есть (РЕАКЦИЯ ситуация).

Гиперправила а, Ь, с, d, с, f, g, h, i, j, k. I, m, n, соответствуют ГОСТ 27974.

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

7.2.1.    Синтаксис

Гиперправила а, b соответствуют ГОСТ 27974.

с) ЕСЛИ ОБОЗНАЧЕНИЕ для ПРИЗНАКА! находится в ОБОЗНАЧЕНИИ для Г1РИЗНАКА2 {a, b, 48d>: если (ПРИЗНАК!) есть (метка) или (ПРИЗНАК!) есть (БИНАРНОЕ) или (ПРИЗНАК!) есть (выборка ВИДА), или (ПРИЗНАК!) есть (1СВЯЗИ с модулями) или (ПРИЗНАК1) есть (запуск).

ЕСЛИ (ПРИЗНАК!) есть (Г1РИЗНАК2); если (ПРИЗНАК!) есть (ЗНАЧЕНИЕ! ’НОМЕР) и (ПРИЗНАЮ) есть (ЗНАЧЕНИЕ2 ?НОМЕР),

ЕСЛИ ЗНАЧЕНИЕ 1 эквивалентно ЗНАЧЕНИЮ2 {73а}; если (ПРИЗНАК!) есть (СИТУАЦИЯ с видом ПРОЦЕДУРА!)

и (ПРИЗНАЮ) есть (СИТУАЦИЯ с видом ПРОЦЕДУРА2),

ЕСЛИ ПРОЦЕДУРАI эквивалентна ПРОЦЕДУРЕ2 {73з>.

267

Страница 24

С. 24 ГОСТ 27975-«8

7.2.2.    Семантика

Гинернрзвнла a.d соответствуют ГОСТ 27974.

b)    Определяющий блок-в СРЕДЕ {а} каждого использующею-ОБОЗ-НАЧЕНИЕ-инликзтора-выдающего-ПРИЗНАК II {по необходимости} содержит либоопрепеляющий-ОБОЗНАЧКНИК-индикатор-в-СРЕДЬ-с-СЛОНМ-выдаюший-ПРИЗНАК 12. либо один или {возможно} несколько исполь-зующих-индикаторов-модулей 13, являющихся прямыми наследниками открывающих-!СВЯЗИ-выэовов-модулей-в-СРЕДЕ, в 1СВЯЗИ' которых заложено 'ОБОЗНАЧЕНИЕ для ПРИЗНАКА'. В этом случае говорится, что II идентифицирует это 12 или каждое из этих 13.

c)    Окружение В, „необходимое для" конструкта С в окружении Е1, определяется следящим образом:

Если Е1 - первичное окружение (2.2.2.а). то Еесть Е1;

иначе пусть HI будет составлено из участка L. соответствующего каким-то '?ПАРАМ‘, и другого окружения Е2;

Если С содержит любой используюижй-ОБОЗНАЧЕНИЕ-индикатор-выдающий-ПРИЗНАК.

•    не идентифицирующий {Ь} никакого опрсдсляющего-индикатора, содержащегося в С,

•    не являющийся прямым наследным индикатором-нида для формального-к;] и виртуалыюго-описателя и

•    такой, что предикат ’если ОБОЗНАЧЕНИЕ для ПРИЗНАКА находится в 7ПАРАХ' {7.2.1b} выполняется,

или если С содержит виртуальиую-заготовку. го Еесть Е1;

иначе -CL не необходимо для С и} Е - окружение, необходимое для С в Е2.

7.3.    Эквивалентность видов соответствует ГОСТ 27974.

7.4.    Правильность построения соответствует ГОСТ 27974.

8. ИЗОБРАЖЕНИЯ

Изображения определены в ГОСТ 27974.

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

Все прагматические замечания соответствуют ГОСТ 27974.

9 1. Знаки соответствуют ГОСТ 27974.

9.2.    Примечания и прагматы соответствуют ГОСТ 27974.

9 3. Представления соответствуют ГОСТ 27974.

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

Гиперправила а, Ь. с, d соответствуют ГОСТ 27974.

268

Страница 25

ГОСТ 27975-ннс.25

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

Списки символов a. bf с, е. g. h соответствуют 1 CX I 27974 d) Символы для описаний

символ символ определяйся как {42Ь, 43Ь.44с. 45с} символ длинное {810а. 82а> символ короткое {8Юа.82Ь} символ имя {46с} символ локальный {523а, Ь} символ глобальный {523а, Ь} символ структура {4bd} симнол подвижное {46g} символ процедура {44Ь, 46о} символ объединение {46s} символ операция {45а} символ приоритет {43а} символ вид {42а} символ модуль {49а} символ подключить {36Ь} символ начало модуля выделенный {49с} символ начало модуля стиля 1 символ конец модуля выделенный {49с} символ конец модуля стиля 1 символ открытое {36dt 41 с} символ сброс модуля {49f} символ формальная среда {56Ь} символ сегмент {А. Ъ, а, с}

long

short

ref

loc

heap

struct

flex

proc

union

op

prto

mode

module

access

def

fed

pub

postlude

nest

egg

0 Синтаксические символы символ

символ начало выделенный {133d} символ конец выделенный { 133d} символ начало краткий {133d, A348b,A34Ab} символ конец краткий {133d, A348b, A34Ab} символ начало стиля 1 {133d} символ конец стиля I {133d} символы начало стиля II {133d} символ конец стиля И {133d} символ а также {I33c. 33b,f,34h.

beqin

end

41а.b 46с, и g* t,

532b. 541с. 543b. A348b.

A34A, c,d}

нредствлсиис

длим

кор

имя

имени

сгрукт

ДОК

пюб

ст

подв

проц

об

on

прио

вид

модуль

ПОДКЛ

мд

дм

откр

сброс

среда

сегмент

предствяенис

начало

конец

нач

кон


:б9

Страница 26

С.26 ГОСТ 27975-88

символ продолжать {32Ь}    *

символ завершить {32b}    exit    выход

символ метка {32с}    :

символ параллельно {33с>    par    нар

символ открыть {814с}    (

символ закрыть {814с}    )

символ если выделенный {91а}    if

символ то выделенный {91b}    then

символ иначе если выделенный {91с}    elif

символ иначе выделенный {9Id}    else

символ все выделенный {91с}    f i

символ выбрать выделенный {91а}    case

символ в выделенный {91b}    in

символ либо выбрать выделенный {91с}    ouse

символ либо выделенный {9Id}    out

символ конец выбора выделенный {91с}    esac

символ если краткий {91а}    (

символ то краткий {91b}    I

символ иначе если краткий {91с}    I:

символ иначе краткий {91 d}    I

символ все краткий {91е}    )

символ выбрать краткий {91а}    (

символ в краткий {9lb}    I

символ либо выбрать краткий {91с}    I:

символ либо краткий {9Id}    I

символ конец выбора краткий {91 е}    )

символ если стиля I {91а}    если

символ то стиля I {91Ь}    то

символ иначе если стиля И {91с}    инее

символ иначе стиля 1 {91 d}    иначе

символ все стиля I {91е}    все

символ выбрать стиля {91а}    выб

символ в стиля I {91 Ь}    в

символ либо выбрать стиля I {91с}    лнвыб

символ либо стиля I {91 d}    либо

символ конец выбора стиля I {91е}    быв

символ двоеточие {34j,k}

символ открыть индексы крап<ий {1 ЗЗе}    (

символ закрыть индексы краткий {1 ЗЗе}    )

символ открыть индексы стиля I {IЗЗе}    (

символ закрыть индексы стиля I {133е}    )

символ вплоть до {46j, k, I, 532f}    :

символ с {532g}    @ at    с

символ есть {522Ь}    :=■:    is    ест»

270

Страница 27

ГОСТ 27975 -8в С 27

символ не есть {522b} : * :

isnt

символ нил {524а} о

nil

НИЛ

символ из {531а}

of

символ признак процедуры {$41а, Ь}

:

символ на выделенный {544 Ь}

goto

символ иа краткий {S44b}

на

символ иди выделенный {544Ь}

go

символ пропуск {552 j}

skip

пропуск

символ форматор {А341а}

$

Ф

символ ситуация

exception

символ реакция

on

символ возбудить

raise

ИЗ

скип

9.4.2. Символы прочих обозначений соответствуют ГОСТ 27974.

10. СТАНДАРТНАЯ ЯЗЫКОВАЯ ОБСТАНОВКА

ситуация приснт возбул

Прагматическое замечание соогветствует ГОСТ 27974.

10-1. Тексты программ

Все прагматические замечании соответствуют ГОСТ 27974.

10.1.1.    Синтаксис

А) ВНЕШНЕЕ : : стандартное:

библиотечное: системное: собственное: личное.

Метаправило В и гиперправила а, Ь, с, d, е, p. h, i ooorJi'г.1иук>1 ГОС1 27974.

f) задача пользователя в СРЕДЕ 1 {d}:

собственное вступление с ^ОПИСАНИЯМИ в СРЕДЕ2 {с}, личное вступление с '’МОДУЛЯМИ в СРЕДЕ2 {с},

УПАКОВКА собсгвежю-нрограммы вСРЕЦЕ2 {g}. знак продолжать {94f}. собственно е-заключение в СРЕДЕ2 -С i>. если (СРЕДА2) есть (СРЕДАI с

новыми ЮПИСАНИЯМИ 7МОЛУЛЯМИ {и} СТОПОМ). 10.1-2. Соответствие языковой обстановке Определения, а, Ь, с, d. с соответствуют ГОСТ 27974. f) Если явно не отворено противное {10.6.2.а}. то каждое составляющее личнос-вступление всех текстов-программ есть ПУСТО.

10.1.3. Способ описания стандартной языковой остановки соответствует ГОСТ 27974.

10-2-Ста н да рт ное вступление

Все прагматические замечания аютвек-гвуюг ГОСТ 27974.

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

Описания а. Ь, с, d, е. f. g. h. i, j, k. 1, m. n, o. p. q, r. s, t, u соответствуют ГОСТ 27974.

271

Страница 28

С.» ГОСТ 27975-88

v) проц Д цел переполнение включено =лог:

с истина, если при возникновении ситуации, для которой в качестве восстанавливающего действия задан вызов процедуры Д цел восстановление после переполнения [ 10.2.3.13). реализация действительно выполняет такое действие: ложь в противном случае с;

проц лог L int overflow enabled = Д цел переполнение включено, проц Д веш переполнение включено *»лог:

с истина, если при возникновении ситуации, для которой в качестве, воссга-навливаюшего действия задан вызов процедуры Д веш восстановление после переполнения flO.2.3.13}, реализация действительно выполняет такое действие: ложь в протвном случае с ;

проц лог L real overflow enabled = Д веш переполнение включено: проц Д вещ потеря значимости включена -лог:

с истина, если при возникновении ситуации, для которой в качестве восстанавливающего действия задан вызов процедуры Д вещ восстановление после погерн значимости {10.2.3.13}, реализация действительно выполняет такое дейавие: ложь в противном случае с;

проц лог L real underflow enabled =Д вещ потеря значимости включена: проц Д цел ошибка аргумента включена ~лог:

с истина, если при возникновении ситуации, для которой в качестве восстанавливающего лействия задан вызов процедуры Д цел восстановление после ошибки аргумента {10.2.3.13>. реализация действительно выполняет такое действие: ложь в противном случае с;

проц лог L int argument error enabled “ Д цел ошибка аргумента включена: проц Д веш ошибка аргумента включена =лог:

с истина, если при возникновении ситуации, для которой в качестве восстанавливающего действия задан вызов процеду ры Д вещ восстановление после ошибки аргумента •{ 10.2.3.13}. реализация действительно выполняет такое действие; ложь н противном случае с;

проц лог L real argument error enabled = Д веш ошибка аргумента включена;

w) проц ошибка присваивания включена =лог:

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

проц лог assignment error enabled = ошибка присваивания включена: проц ошибка границы включена ~ лог:

с нежна, если при возникновении ситуации, для которой в качестве восстанавливающего действия задан вызов процедуры восстановление после ошибки грницы {5.3.2 2.а}, реализация действительно выполняет такое . действие; ложь в противном случае с; проц лог bound error enabled = ошибкз границы включена; проц ошибка записи массива включена =лог:

с истина, если при возникновении ситуации, для которой в качестве восстанавливающего действия задан вызов процедуры восстановление после

272

Страница 29

ГОСТ 27975-8В С 29

ошибки записи массива {3.3.2.Ь>, реализация действительно выполняет таксе действие; ложь в противном случае с;

лроц лог row display error enabled = ошибка записи массива включена; проц ошибка псевдоимени включена =лог:

с истина, если при возникновении ситуации, для которой в качестве восстанавливающего действия за;1ан вызов процедуры восстановление после ошибки псевдоимени {5.2.I.2.b. 5.3.1.2, 5.3.2.2л, 6.2.2>. реализация действительно выполняет такое действие; ложь в противном случае с;

проц лог nil error enabled = ошибка псевдоимени включена; проц ошибка обласж действия включена =лог:

с истина, если при возникновении ситуации, дли которой в качестве восстанавливающего действия задан вызов процедуры восстаноаления после ошибки области действия {3.2.2.а, 5.2.1.2.Ъ; 5А5.2.Ь}. реализация действительно выполняет такое действие; ложь в противном случае с; проц лог scope error enabled « ошибка области действия включена; проц тупик включен =лог;

с истина, если при возникновении ситуации, для которой в качестве восстанавливающего действия задан вызов процедуры восстановление .после ту-пика *Cl0.2.4.d>, реализация действительно выполняет тзкое действие; ложь в противном случае с; проц лог deadlock cnabied * тупик включен; проц исчерпание времени включено =лог:

с истина, если при возникновении ситуации, для которой в кзчесгве восстанавливающего действия задан вызов процедуры восстановление после исчерпания времени {2.1.4.3.i}, реализация действительно выполняет такое действие; ложь в противном случа с;

проц лог time eshaustion enabled = исчерпание времени включено; проц исчерпание памяти включено =лог:

с истина, если при возникновении ситуации, для которой в качестве восстанавливающего действия задан вызов процедуры восстановление посте исчерпания памяти {2.1.43.i}, реализация действительно выполняет такое действие; ложь в противном случае с;

проц лог space exhaustion cnabied - исчерпание памяти включено:

10.2.2.    Стандартные вилы соответствуют ГОСТ 27974.

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

10.2.3.0.    Стандартные приоритеты определены в ГОСТ 27974.

10.2.3.1.    Массивы и связанные с ними операции соответствуют ГОСТ 27974.

10.2.3.2.    Операции над логическими операндами определены в ГОСТ 27974.

102.3.3.    Операции над целыми операндами определены в ГОСТ 27974.

Страница 30

С 30 ГОСТ 27975-88

10.2-3.4. Операции над вещественными операндами определены в ГОСТ 27974.

10.2.3.5.    Операции над арифметическими операндами определены в ГОСТ 27974.

10.2.3.6.    Операции над литерными операндами определены в ГОСТ 27974.

10.2.3.7.    Операции над комплексными операндами определены в ГОСТ 27974.

10.2.3.8.    Битовые и связанные с ними операции соответствуют ГОСТ 27974.

10.2.3.9.    Слоговые и связанные с ними операции соответствуют ГОСТ 27974.

10.2.3.10.    Строковые и связанные с ними операции соответствуют ГОСТ 27974.

10.2.3.11.    Операций, соединенные с присваиваниями, соответствуют ГОСТ 27974.

10.2.3.12.    Стандартные математические константы и функции соответствуют ГОСТ 27974.

10-2.3.13. Восстанавливающие действия для стандартных операции и функций.

Для случаев, когда операции и функции из п. 10.2.3 не дают осмысленного результата, определяются восстанавливающие действия в виде вызовов процедур из 10-2.S.g.

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

Процедура Д восстановление после потери значимости вызывается при неудаче, вызванной тем, что результат вида Д вещ арифметической >перации с ненулевыми значениями операндов не может бьпь представ-ICH в форме, позволяющей определить, равен ли он нулю.

Процедура Д цел восстановление после ошибки аргумента (Д веш вос-лановление после ошибки аргумента) вызывается при неудаче со значе-тием {параметра} х вида Д цел (Д веш). Если это значение было исполь-■овано в качестве значения фактического параметра или операнда и неудача связана с тем. что для этого значения результат не определен математически.

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

Описания а. Ь, с, е соответствуют ГОСТ 27974.

(1) on < вниз, down ;f> = (сема эдегер) пуст: начало имя цел дейкстра =F из эдегер;

пока прагм начало несовместимой части прагм если дейкстра > I то дейкстра - : * I:    ложь иначе

с пусть Р будет таким процессом, что исполнение данного псевдопримечания {10.1.3. Шаг 7} есть наследное действие этого Р, но никакого другого процесса, наследного для Р; данный процесс Р приостанавливается {2.1.4.3.Г},

Страница 31

ГОСТ 27975-88 C.3I

если во; процессы, наследные для ообсгвенно-программы, приостановлены таким образом и ни один из них не возобновлен, то последующее исполнение не определено, а восстанавливающее действие определяется как вызов процедуры восстановление после тупика -С 10.2.5.п> с выдачей здегер’ {в качестве значения параметра} с; истина

все

прагм конец несовместимой части прагм цк пропуск кц конец;

IO-2.5- Стандартные ситуации и восстанавливающие действия

a)    ситуация пуст Д цел переполнение,

пуст Д вещ переполнение, пуст Д потеря значимости, ситуация (Д цел) пуст Д цел ошибка аргумента, ситуация (Д вещ) пуст Д вещ ошибка аргумента; ситуация пусг L int overflow, пусг L real overflow, пуст L underflow, ситуация (Д цел) пуст L argument error, ситуация (Двеш) пусг Lreal argument error; присит L int overflow: пуст: возбуд Дцел переполнение.

L real overflow: пуст: возбуд Л вещ переполнение.

L underflow: пуст: возбуд Д потеря значимости.

L int argument error:

(Д цел а) пуст: возбуд Д цел ошибка аргумента (а).

L real argument error:

(Д веш а) пусг: возбуд Д вещ ошибка аргумента

(а);

b)    ситуация (цел) пуст ошибка присваивания, ситуация (цел, имя цел) пуст ошибка границы, ситуация пуст ошибка записи массива,

пустошибка псевдоимени. пуст ошибка области действия, ситуация (сема) пуст тупик, ситуация пусг общая ситуация; ситуация (цел) пуст assignment error, ситуация (цел. имя цел) nyci bound error, ситуация пуст row display error, пуст nil error, пуст scope error, ситуация (сема) пуст deadlock, ситуация пуст general exception;

275

Страница 32

C.J2 ГОСТ 27975 -88

присит assignment error

(цел а) пуст: возбуд ошибка присваивания (а).

bound error: (цел а. имя цел Ь) пуст: возбуд ошибка границы

(а. Ы,

row display error: пуст: возбуд ошибка записи массива, nil error: пуст: возбул ошибка псевдоимени, scope еггог: пуск возбуд ошибка области действия, deadlock: (сема s) пуст: возбуд тупик (s). general exception: пуст: возбуд общая ситуация:

{Ситуация общая ситуация возбуждается, если не найдена процедура реакции для некоторой возбужденной ситуации.}

c)    ситуация nyci исчерпание времени,

пуст исчершние памяти, nyct окончание, nyci ? немедленное окончание; ситуация пуст time exhaustion;

присит time exhaustion: пуст: возбуд исчерпание времени, ситуация пуст space exhaustion;

присяг space exhaustion: пуст: возбуд исчерпание памяти;

ситуация пуст termination:

присит termination: пуст: возбуд окончание;

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

d)    вид *■ имя массива = с фактический-описатель, специфицирующий вид. объединенный из {2.1.3.6.а> достаточного набора видов, каждый из которых начинается с имя массива' или имя подвижного массива' с;

e)    ситуация массив образец массива,

массив образец получателя, ситуация ( ] массив список образцов массива, ситуация (имя массива) лог вырезано из, ситуация цел размерность, ситуация лог это имя; ситуация массив row specimen,

массив destination specimen, ситуация ( ] массив row specimen list, ситуация (имя массива) лог issliceof, ситуация цел dimension, ситуация лог is name;

276

Страница 33

ГОСТ 27975 -88 С. 33

присиг row specimen: массив: возбул образец массива,

destination specimen: массив возбул образец получателя, row specimen list: [ J массив: возбуд список образцов массива, is slice of: (имя массива а) лог: возбул вырезано из (а), dimension: цел: возбул размерность, is name: лог: возбуд эго имя;

{Эти ситуации используются в некоторых процедурах восстановления для других ситуаций.>

О проц закончить ^пуст:

(с некоторое системное действие, помогающее идентифицировав

текущее окружение с;

возбул окончание:

возбуд немедленное окончание):

Проц nyct terminate *• закончив;

g)    ирои^Я цел восстановление после переполнения =пуст:

(возбуд Д цел переполнение; закончить), f Л Лщ восстановление после переполнения =пуст:

(возбуд Д вещ переполнение: закончить),

*■ Д восстановление после потери значимости *■ пуст:

(«озбуд Д потеря значимости: закончить).

*-Д цел восстановление после ошибки аргумента "пуст:

(возбул Д цел ошибка аргумента: закончить).

*• Д вещ восстановление после ошибки аргумента гпуст:

(возбул Д вещ ошибка аргумента: закончить);

h)    проц восстановление после ошибки присваивания = (имямассива

получатель, массив источник, цел n. i) пуст:

(присит образец получателя: массив:

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

с некоторый массив, паспорт которого идентичен паспорту значении, выдаваем-го идентификатором 'источник' с, вырезано из: (имямассива г г), лог: если с имя, выдаваемое идентификатором 'г г',

не было сгенерировано f2.l 3.4j. 1} из другого имени с

то с истина, если любое подыми имени, выдаваемого идентификатором 'получатель', является подымснем имени, выдаваемого идентификатором 'г г', или же может быть получено из такого подымени в результате выполнения одной или нескольких последовательных операций выборкипо ‘СЛОВУ’ {2.1.3.3.е>; ложь в противном случае с иначе пропуск все.

Страница 34

С. W ГОСТ 27975-88

размерность. цел: п;

возбуд ошибка присваивания (i);

закончить);

i) проц'?'восстановление после ошибки границы =

(массив значение, цел n. i, граница) пуст:

(присит образец массива: массив:

с некоторый массив, паспорт которого идентичен паспорту значения, выдаваемого идентификатором значение' с.

вырезано из: (имямассива гг) лог: пропуск, размерность: цел: п. это имя: лог: ложь; цел Ь: “граница; возбуд ошибка границы (i,b); b);

j) проц*-восстановление после ошибки границы имени =

(имямассива имя, цел п, i, граница) пуст:

(присяг образец массива: массив:

с некоторый массив, паспорт которого идентичен паспорту значения, именуемого именем, выдаваемым идентификатором имя' с. вырезано из: (имямассива гг) лог:

если с имя, выдаваемое идентификатором ’гг',

не было сгенерировано {2.1.3.4. j. | > из другого имени с

то с истина, если любое полымя имени, выдаваемого идешнфнкагором ‘имя’, является подыменем имени. выдаваемого идентификатором ’гг', или же может быть получено из такого подымени в результате выполнения одной или нескольких последовательных операций выборки по 'СЛОВУ' -С2.1-З.З.е>; ложь в противном случае с иначе пропуск все.

размерность: цел: п. это имя: лог: истина; цел Ь: - граница; возбуд ошибка границы (а. Ь);

ь);

к) проц *■ восстановление после ошибки записи массива * ([ J массив образец, цел п) пуст:

(присит список образцов массива: ( J массив: образец, размерность: цел: п; возбуд ошибка записи массива; закончить);

278

Страница 35

ГОСТ 27975-88 С. 35

I) проц + восстановление после ошибки пссвдоимени *» пуст: (возбуд ошибка псевдоимени: закончить); т) проц *• восстановление после ошибки области действия » пуст: возбуя ошибка области действия: закончить); п) проц^-восстамовление после тупика =

(сема s) пуст: (возбул тупик (s): закончить): о) ситуация лог л. рекурсия обшей ситуации; {см. 10-5-1.1} проц ‘‘•восстановление после обшей ситуации = пуст: если рекурсия обшей ситуации

то возбуд немедленное окончание

иначе присит рекурсия обшей ситуации: лог:

истина: закончить

все:

р) проц f восстановление после исчерпания времени *

пуст: (возбуд исчершние времени, закончить), q) проц «-восстановление после исчерпания памяти =

пуст: (возбуд исчерпание памяти: закончить);

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

Прзгматическое замечание соответствует ГОСТ 27974.

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

Прагмагическое замечание соответствует ГОСТ 27974.

10-3.1.1. Книги и связки определены в ГОСТ 27974.

10.3.1.2 Каналы определены в ГОСТ 27974.

10.3 1.3 Файлы.

Прагматические замечания аа. bb. dd. ее, ff, gg, hh соответствую! ГОСТ 27974.

•Ссс) Фалл включает некоторые „процедуры обработки события", вызываемые, когда во время обмена возникают определенные условия. Но умолчанию предусматривается. что после открытия файла ли процедуры обработки события вырабатывают ложь, когда они вызываются. но программист может предусмотреть и другие процедуры обработки события. Поскольку соответствующие поля файла не доступны прямо для пользователя, процедуры обработки ообытия можно изменять с помощью ..процедур реакции”(i, пт, п, о, р, q, г). Процедуры обработки события всегда задами в качестве параметра имя своего файла. Если исполнение процедуры обработки события прекращается, то вызванная ее процедура обмена не может действовать дальше: в противном случае, если она вырабзтывает истину, предполагается, что данное условие было некоторым образом исправлено, и, если возможно, обмен продолжается, но, если процедура реакции вырабатывает ложь, то предпринимается еще одна попытка восстановления путем возбуждения соответствующей ситуации Это приводит к вызову сше одной процедуры, аналогичной по назначению процедуре реакции, но связанной • текущим окружением, а не с данным файлом. Если же и зга процедура вы рабатывает ложь, система продолжает работу, предпринимая действия п.-умолчанию. Процедуры реакции таковы:

Страница 36

С. 36 ГОСТ 27975-88

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

(см. 10-3-1 -б-dd) -Пример:

Программист хочет знать количество целых чисел на входной ленте. Файл лента вводе был открыт во внешнем блоке.

Если он напишет качало цел п: =0;

при конце лог файла (лента ввода,

(имя файл файл) лог: на f); цк ввод (лента ввода, лок цел); п + : -1 кц; f: печ (п) конец,

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

начало цел п: =0; файл вспомог: =лента ввода; при конце лог файла (вспомог.

(имя файл файл) лог: на О ^ цк ввод (вспомог, лог цел); п + :    1    кц;

f: печ (п) конец.

•    при конце физ файла. Соответствующая процедура обработки события называется, когда текущий номер страницы данного файла превышает число страниц в соответствующей книге, а обмен пытаются продолжить (см. I0.3.1.6.dd).

•    при конце страницы Соответствующая процедура обработки события вызывается, когда текущий номер строчки данного файла превышает число строчек на текущей странице, а обмен пытаются продолжить (см. 10.3-l.6-dd).

•    при конце строчки. Соответствующая процедура обработки события вызывается, когда текущий номер литеры данного файла превышает число литер в текущей строчке, а обмен пытаются продолжить (см. 10.3.1 б-dd).

Пример:

Программист хочет, чтобы на начале каждой страницы его файла f автоматически печатался заголовок:

при конце страницы (f, (имя файл файл) лог:

(вывод (файл, (нов страница, "стр.’* целое (i + : *= 1.0). нов строчка)); истина)

f предполагается, что i было где-то описано ^)

•    при ошибке литеры. Соответствующая процедура обработки события вызывается, когда перекодирование некоторой литеры не было успеш-

280

Страница 37

ГОСТ 27975-88 С. 37

ным или когда в холе ввода читается не „ожидаемая" (10.3.4.1.11) литера. Эта процедура обработки события вызывается с именем литеры, предлагаемой в качестве замены. Процедура обработки события, задаваемая программистом, может присваивать литеру, отличную от предлагаемой. Если данная процедура обработки события вырабатывает истина, то используется эта предлагаемая литера с возможным «е изменением.

Пример:

Программист хочет читать суммы денег, отперфориронаниые в форме 123.45м, •1$23.45’*,',_-$3.45” и т.д.: при ошибке литеры (аанд ввод,

(имя файл {, имя лит пред) лог: если пред =”0"

то лит с; назад (f); ввод (Г с);

(с *"$” 1ввод (f, пред); истина I ложь) иначе ложь все);

цел центы; фчит ((ф 3z". ” dd ф, центы)), при ошибке значения. Соответствующая процедура обработки события вызывается, когда:

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

(ii) в ходе ввода оказывается-нсвозможным преобразовать строку в значение некоторого данного вида (это может случиться, например, при попытке прочитать целое число, большее, чем макс цел (10.2.1 х)).

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

Описания а, Ь, с, d, е, f. g, h. i, j. k, 1, m, n, o, p, q, r, s соответствуют ГОСТ 27974;

t) ситуация (имя файл) лог конец лог файла,

(имя файл) лог конец физ файла,

(имя файл) лог конец страницы,

(нмя файл) лог конец строчки,

(имя файл) лог конец формата,

(имя файл) лог ошибка значения, ситуация (имя файл, имя лит) лог ошибка лихеры;

281

Страница 38

С. 38 ГОСТ 27975-

ситуация (имя файл) лог logical file end,

(имя файл) лог physical file end,

(имя файл) лог page end,

(имя файл) лог line end,

(имя файл) лог formal end,

(имя файл) лог value error, ситуация (имя файл, имя лиг) лог char error; присяг logical file end:

(имя файл f) лог: возбуд конец лог файла (Г), physical file end:

(имя файл О лог: возбуд конец физ файла (f). page end:

(имя файл f) лог: возбуд конец страницы (f). line end:

(имя файл О ЛОГ: возбуд конец строчки (f), format end:

(имя файл 0 лог: возбуд конец формата (f). value error:

(имя файл f) nor: возбуд ошибка значения (f), char error:

(имя файл f, имя лит с) лог: возбуд ошибка литеры (f. с); и) проц«-конец лог файла исправлен = (имя файл f) лог: если (испр лог файл из f) (f) то истина иначе возбуд конец лог файла (f) все;

проц* конец физ файла исправлен ■ (имя файл О лог: если (испр физ файл из f) (f) то истина иначе возбуд конец физ файла (f) все;

проц вконец страницы исправлен » (имя файл 0 лог: если (испр страница из f) (f) то истина иначе возбуд конец страницы (О все;

Проц вконец строчки исправлен * (имя файл 0 лог: если (испр строчка из f) (О го истина иначе «юзбуц конец сторочки (О все;

npou-f конец формата исправлен = (имя файл Г) лог: если (испр формат из f) (f) то истина иначе возбуд конец формата (f)

все;

проц ^ошибка значения исправлена - (имя файл f) лог: earn (испр ошибка знз'гения из f) (f) то истина иначе возбуд и шибка значения (f) все;

282

Страница 39

ГОСТ 27975 -88 С. 39

проц*-ошибка литеры исправлена • (имя файл f, имя лиг с) лог: если (испр ошибка литеры из О (f.с), то истина иначе возбуд ошибка литеры (f, с) все;

10.3.1.4.    Открытие и закрытие файлов соответствуют ГОСТ 27974.

10.3.1.5.    фапросы позиции соответствуют ГОСТ 27974.

10.3.1.6.    Процедуры расположения.

Прагматические замечания и описания а, Ь, с, d, h, j, к, соответствуют ГОСТ 27974.

e)    про» ^строчка хороша = (имя файл f, лог чтение) лог:

начало лог не оконч; пока не оконч: » страница хороша (f, чтение); строчка окончена (0 л не оконч цк ( -1 конец строки исправлен (О I настроить (f, чтение);

нов строчка (О) кц; не оконч коне”:

f)    проц^страница хороша = (имя файл f, лог Ч1вние) лог:

начало лог не оконч;

пока не оконч: - файл хорош (f, «пение);

страница окончена (0 Л не оконч цк ( — конец страницы исправлен (f) Iнастроить (f, чтение);

нов страница (0) кц; не оконч коней:

g)    проц«-файл хорош - (имя файл f. лог чтение) лог: начало лог не оконч: - истина;

пока настроить (f, чтение); не оконч Д

(чтение лог I файл оконч I физ файл окончен) (f) цк не оконч: = (чтение I коней лог файла испрйлен I конец физ файла исправлен) (0 кц; не оконч конец;

i) ироц установить = (имя файл f, цел р, I с) пуст: если -ч открыт из f V — возм установка (f) то не определено иначе лог чтение = (для чтения из f I истина I: для записи из f I ложь I не определено: пропуск);

имя позиция тпоз = тпоз из f. ппоз = заполн из книга из f; позиция раб тпоз =тпоз; если (тпоз: = (р. 1, с)) вне ппоз то тпоз: = ппоз;

( -» конец лог файла исправлен (f) I не определено);

283

Страница 40

С. 40 ГОСТ 27975 -88

настроить (f. чтение) инее позиция границы * границы книги (Г); р < 1 V р > р из границы + I V I < I V I > « из границы + I V с < 1 vc > с из Гранины ♦ 1 го тез. = раб птоз: не определено все все:

лрои (имя файл, цел. цел, цел) пуст set = установил.;

10.3.2.    Значения для обмена соответствуют ГОСТ 27974.

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

{При бесформатном обмене элементы „списка данных" обмениваются один за другим через заданный файл. Каждый элемент этого списка данных является либо процедурой расположения, вил которой специфицируется Проц (имя файл) пуст (10 3.1.6). либо значением вида, специфицируемого посредством выводимое (при выводе) или вводимое (при вводе). Когда процедур расположения встречается » списке данных, она вызывается с заданным файлом в качестве параметра. Другие значения в списке дашшх сначала выстраиваются (10.3.2.3), а затем результирующие значения одно за другим обмениваются через заданный файл.

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

10-3.3.1. Бесформатный вывод.

Прагматические замечания и описание с соответствую! ГОСТ 27974. а) проп вывод - (имя файл f,

[ ) об (выводимое, проп (имя файл) пуст) х) пуст:

если открыт из f то для i до вегр х

цк выб наст роить на запись (f); настроить на литерное (Q; х (i) в (проц (имя файл) пусть пиф): пиф (f),

(выводимое выв): начало

| | провывод у = сгронвывод выв;

•£ процДпреоб раэование /(вещ = (Двещ г) строк: плав (г. Д разрядность вещ + Д разрядность порядка + 4. Д разрядность вещ - I,

Д разрядность порядка + 1)1 для j до вегр у цк выб у (j) в

(об (<мсло,< Д комля» чиском): начало строк s: = выб чиском в

284

Страница 41

ГОСТ 2797S-8B С. 41

<t (Л пел к): целое (к. Л разрядное™ цел + 1) >,

^ (Л веш г): Д преоб веш (г)

•£ (Д «омил w): Д преоб вещ (вч w) ♦    1"

* Д преоб веш (мч w) быв;

имя имени позиция >||оэ= г поз из Г цел п = вегр s: пока след позиция (f); г    (п > с из тратшы книги (О ' не определено):

с из глоз ♦ (с из т поз а 1 I nl п + 1) > с из границы книги (f) + 1 цк ( конец строчки исправлен (f) I вывод (f, нов строчка) ); настроить на запись (f) кц*.

(сиэпю^ 1 I ”v” при»»); для к до вегр s цк вывести литеру (f, s (k)) кц

конец f< вывода чисел j(

(лог Ь): (след позиция (f); вывести литеру (f, (b ! да 'нет))),

(Д битдбит):

для к до Д размер бит цк вывод (f. (Д F издбит) [к)) кц^>,

(лит к): (след позиция (f); вывести литеру (f.к))

(( ] лит стр):

для к от нигр стр до вегр cip цк след позиция (f); вывести литеру (f. стр (kj) кц быв кц конец быв кц иначе не определено все;

проц (имя файл, (J об (выводимое, проц (имя файл) пуст)) пуст put = вывод;

• Ь) проц а, вывести лигеру = (имя файл f, лит лит) пуст: если открыт из 1Л -] строчка окончена (f) то имя позиция г поз =т поз из f, п поз =заполи из книга из f; настроить на литерное (Г); натроигь на запись (О; имя цел р = р из гпоз. 1 г\ из гпоз. с *с из I поз; лих к; лог есть: »■ ложь; выб текст из f в

(текст): (к:=лит; есть: = истина),

(подвтекст):

для i до вегр F из код из f пока -, есть

285

Страница 42

с. 42 ГОСТ 27975-88

цк сг (лиг внутр, внешн) табл = (F из код из Г) (i);

(внутр из табл =яит Ik: = внешн из табл; есть: = истина)

ки

быв;

если есть то выб текст из f в

(текст tl): tl |pl |1) [с]:* к.

(подвтекст t2): t2 [р] (!) (с) : к быв; с + : *1;

если т!юз вне ппоз то ппоз: =тпоз инее ■«. возм установка (О IЛ позиция (р из ппоз, I из ппоз, 1) вне г поз то л поз: =» тпоз;

(сжимаем (f) I

с размер строчки и страницы, содержащей логический размер данной книги, и всех последующих строчек и страниц может увеличился {например, до размеров, с которыми книга была заведена (10.3.1.4.сс) первоначально, или до размеров. предполагаемых из макс позиция из кан из f> с)

все

иначе к: «”*и ; если -| ошибка литеры исправлена (f, к) то не определено; к: = "*- ” все;

проверить позицию (f); вывести литеру (f, к)

все

иначе не определено

все f( настройка на запись сохраняется j(\

10 3.3.2. Бесформатный ввод

Прагматические замечания аа. bb, сс, dd, ее, ff, gg. соответствуют ГОСТ 27974.

-Chh) Если вид этого N специфицируется посредством имя строк, то литеры читаются до тех лор,

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

(ii)    либо пока не исчерпается текущая строчка, вследствие чего вызывается процедура конец строчки исправлен (или, где это целесообразно. конец страницы исправлен, конец физ файла исправлен или конец лог файла исправлен); если данная процедура обработки события продвигает текущую позицию к хорошей позиции (см. 10.3.3), го ввод литер возобновляется.

Строка, состоящая из введенных литер, присваивается N (отметим, ЧТО если текущая строчка была исчершна либо текущая позиция был* на начале пустой строчки или вне логического файлз, то этому N присваивается пустая строка).}

Страница 43

ГОСТ 27975-88 с. 43

а) проц в вол = (имя файл (,

(] об (вводимое, ироц (имя файл) пуст) х) пуст: если открыт из f, то для i до вегр х

ик выб настроить на чтение (О: настроить на литерное (f);

X 1*1 В

(проц (имя файл) пуст пиф): пиф (f),

(вводимое вв): начало

(] проввод у =стройввод вв; лит к; лог к пусто; оп?= (строк s) лог:

вырабатывает истина, если следующая литера, когда она есть, в текущей строчке содержится в V (эта литера п-,жсваивает-ся 'к'), а иначе ложь если к пусто Л (строчка окончена (О V лог файл окончен (f)) то ложь

иначе (к пусто I ввести литеру (f, к));

к пусто: «литера в строке (к. лок цел, s)

все;

оп? = (лит с) лог : ? строк (с); прио! ^8;

оп! = (строк в.лит с) лит:

запрашивает литеру, содержащуюся в 's'; если читается литера, не входящая в s, вызывается процедура обработки события, соответствующая ’при ошибке литеры', с предлагаемой литерой

У. К

если (к пусто I проверить позицию (f); ввести литеру (f, к)); к пусто: = истина; литера в строке (к. лок цел, s)

ток

инзче лит предл: = с;

если ошибка литеры исправлена (f, предл) то

(литера в строке (предл, лок цел, s) предл1 не определено; с) иначе не определено; с все;

настроить на чтение (О все;

оп! = (лит s, с) лит: строк (s) !с; проц проп pf уск ^ нач i альных 4 пробелов * пуст: пока (к пусто I след позиция (0); цк пропуск кц; проц проп i уск f( пробелов я пуст: пока ? ”j.” цк пропуск кц;

287

Страница 44

с. 44 ГОСТ 27975-88

проц чит ать Ii циф f< ры к =строк:

(строк t: ~И01234567Й9” ! "О” ; пока ? ’’0123456789” ак t плюспр к кц; I); прои чит знак =лит:

(лит \ = (проп пробелов:    "    tkl    ”    +

проп пробелов; t); проп чит чис р(ло ft - строк;

(лит t = чит знак; t + чит циф); прои чит вещ /( ественное + = строк:

(строк t: = чит знак;

( _ ■»’*.’* It плюспр чит циф I к пусто: = ложь):

(?” ^ t плюспр V” + чит циф);

(? ”|о \c**lt плюспр “ю" + чит чис) ; t) ; для j до вегр у

цклогиеконч ено = ложь; к пусто: = не тина; выбу |jj в <£ (имя Д цел иди):

(проп нач пробелов;

не конч: «-.строку в Л цел (чит чис, 10. иди)) У>.

(имя Д вещ ндв):

(upon нач пробелов; не конч: = -.строку в Д вещ (чит веш, идв))

■£ (имя Д компл идк):

(проп нач пробелов; не конч: = -1 строку в Д вещ (чит веш. ивч кок); upon пробелов: V,i и 1” ! ” Г; не конч: ~не конч V -, строку в Д вещ (чит вещ. имч идк))

(имя лог ил):

(проп мач пробелов;

ил: = (да + нет) ! нет - да),

< (имя Д бит ид б): для i до Д размер бит цк ввод (f, (ДЯ из изб) [»!) кц (ими лит ил) : (след позиция (f); ввести литеру (Г.ил)). (имя [ J лит имл):

для i от нигр имл до вегр имч

цк след позиция (f); ввести литеру (f. имл [i]) кц; (имя строк ис): начало строк t; пока проверить позицию (f) ; если строчка окончена (f) V яогфайл окончен (0 то ложь

иначе ввести литеру (f. к);

к nyc’o: =-i литера в строке (к. лок цел. стопс из 0 все

Страница 45

ГОСТ 27975-88 С. 45

ЦК t плюспр к кц;

ис: =t конец быв;

(~i к пусто I назад (f) ); если не конч

то ( ошибка значения исправлена (f) > не определено); настроил* на чтение (О

все кц конец быв кц

иначе не определено все:

проц (имя файл, [ ) об (вводимое, проц (имя файл) пуст)) пуст get = ввод;

b)    проц.?. ввести литеру = (имя файл f, имя лит лиг) пуст:

если открыт из    строчка окончена (О Л -• лог файл

окончен (О

то имя позиция тпоэ * т поз из f;

настроить на литерное (0; настроить на чтение (О; цел р = р из тпоз. 1 = j из тпоз. с = с из тпоз; с из т поз + : = 1; лит: = вы б текст из fe (текст t 1): t 1 [р] [I] [с],

(подвтекст t 2):

(лит k: = t 2 Ip] (I) (cj; лог есть: = ложь;

для i до вегр F из код из f пока есть цк ст (лит внутр, внешн) табл ■ (F из код^из Г) [i ] (внешн из табл = k Iк : =внутрь из табл; есть: «истина)

цк;

если есть то к иначе к: = "i";

если ошибка литеры исправлена (f, к) то к

иначе не определено; "г." все;

настроить на чтение (f) все) быв

иначе не определено

все настройка на чтение сохраняется

c)    проц £ проверить позицию = (имя файл f) пуст:

начало лог чтение =для чтения из f; лог не окончено: = истина;

10-1361    2Я<)

Страница 46

С. 46 ГОСТ 27975-88

пока не окончено: =не окончено Л страница хорони (f, чтение) строчка окончена (f) Л не окончено цк не окончено: * конец строчки исправлен (0 кц конец;

Прагматическое замечание соответствует ГОСТ 27974.

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

Прагматическое заметание соответствует ГОСТ 27974.

10-3.4.1. Наборы и шаблоны.

10-3.4.1.1. Синтаксис.

Прагматическое замечание, метаправила А, В, С, D, Е, F, G, Н. I, J, К. L, М. N. О. Р; гиперправила а,Ь.с, d, е. f,g.h, i, j. k,l, m.n.o и разъяснения aa. bb. cc. dd, ее. ff, jj, kk, соответствуют ГОСТ 27974.

{gg) Формат может состоять из последовательности шаблонов, каждый из которых выбирается по очереди посредством взять след шаблон (IO-3-S.b). В допоггнение к этому некоторое множество шаблонов можно сгруппировать вместе и образовать повторяемый „набор” (который сам может содержать подобные наборы). Когда выбирается последний шаблон набора, снова выбирается его первый шаблон и т. д., пока весь этот набор не повторится h раз, где п - целое число, вырабатываемое его повторителем. Набор можно снабдить двумя вставками, первая из которых осуществляется перед набором, а вторая - после него.

Формат может также вызывать другие форматы с помощью трафаретов ’форматного' (10.3.4,9.1).

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

hh) Значение V выводится с помощью шаблона Р следующим образом: Ваш трафарет Q этого Р есть трафарет ’выбора’ или 'бесформатного', то,у выводится с помощью Р (см. 10-3.4.8.1. aa, dd, 10-3.4.1.аа), а иначе V выводится так:

• Р подготавливается.

Если вид этого V „совместим по выводу” с Q то    .

•    V преобразуется в строку, управляемую (dd) этим Q

Если данный вид не совметим по выводу или если это преобразование не было успешным, то

•    вызывается процедура ошибка значения исправлена;

•    если она вырабатывает ложь, V выводится с помощью процедуры вывод и вызывается не определено;

а иначе данная строка „редактируется" (jj) с помощью трафарета Q;

Страница 47

ГОСТ 27975-88 С. 47

•    осуществляется вставка из Р.

И) Значение вводится в имя N с помощью шаблона Р следующим образом:

Если трафарет Q этого Р есть 1рафар<м 'выбора' или 'бесформатного', • то значение вводится в Nc помощьюР (см. 10.3.4.8.1.bb.ee. (0.3.4.lO.l.bb); а иначе

•    Р подготавливается;

•    ..составляется’* строка, управляемая Q (kk).

Если вид этого N ..совместим по вводу" с Q (см. соответствующий раздел),

►    • данная строка преобразуется с помощью Q в подходящее для N значе

ние;

•    если эго преобразование было успешным, данное значение присваива-

г    стся N.

Если данный вид не совместим по вводу или если это преобразование не было успешным, то

•    вызывается процедура ошибка значения исправлена;

.• если она вырабатывает ложь, вызывается не определено :

•    осуществляется вставка из Р.

11) Элемент множества литер S „ожидается” с предлагаемой литерой С следующим образом:

•    читается некоторая литера;

если это одна из ожидаемых литер (т. е. принадлежит множеству S). то она подастся,

а иначе вызывается процедура ошибка литеры исправлена с предлагаемой литерой С; если эта процедура вырабатывает истина, а (возможно, измененная) литера С есть одна из ожидаемых литер, то подается С, а иначе вызывается не определено .}

10.3.4.1.2.    Семантика соответствует ГОСТ 27974.

10.3.4.2.    Трафареты целого соответствуют ГОСТ 27974.

10.3.4.3.    Трафареты вешествешюго соответствут ГОСТ 27974.

10.3.4.4.    Трафареты логического соответствуют ГОСТ 27974. -

10.3.4.5.    Трафареты комплексного соответствуют ГОСТ 27974.

10.3.4.6.    Трафареты строкового соответствуют ГОСТ 27974.

10.3.4.7.    Трафареты битового соответствуют ГОСТ 27974.

10.3.4.8.    Трафареты выбора.

10.3.4.8.1. Синтаксис.

Гиперправила а. Ь, с соответствуют ГОСТ 27974.

{аа) Значение V выводится с помощью ша&тока Р, трафарет которого 0 был выдан графаретом-делого-выбора С, следующим образом:

•    подготавливается (10.3.4.1.1 .dd) и осуществляется (10.3.4.1.I ce) вставка из Q;

Если вид значения V специфицируется посредством цел, а У>0,иесли число составляющих литералов в упакованномсписке-поясняемых-ли-тералов этого С не меньше V,

(0*

291

Страница 48

С. 48 ГОСТ 27975-88

•    подгхмапливается и осуществляется литерал, выдаваемый V -м из этих литералов;

а иначе

•    вызывается процедура ошиГжа значения исправлена;

•    если она вырабатывает ложь, V выводится с помощью вывод и вызы-нается не определено;

•    подготавливается и осуществляется вставка изР

bb) Значение вводится в имя N с помощью шаблона Р. трафарет кою-рого Q был выдан трафарстом-целого-выбора С. следующим обратом:

•    подготавливается и осуществляется вставка из Q;

•    но очереди подготавливается и ..отыскивается” (сс) каждый из литералов. выдаваемых составляющими люералами унакованного-списка-нояс* няемых-литералов этого С;

Если вид зтого N специфицируется посредством имя цел и i-й литерал окажется первым из искомых. ю i присваивается N; л иначе

•    вызывается процедура ошибка значения исправлена;

•    если она вырабатывает ложь, вызывается не определено;

•    подготавливается и осуществляется вставка из Р.

сс) Разъяснение соответствует ГОСТ 27974.

dd) Значение V выводится с помощью шаблона Р, трафарет Q которого был выдан трафаретом-логического-выбора С. следующим *, иразом:

•    подготавливается и осуществляется вставка из Q;

Если вид этого V специфицируется посредством лог. to

•    если V - истина (ложь), подготавливается и осуществляется литерал, выдаваемый первым (вторым) составляющим литералом из С;

а иначе

•    вызывается процедура ошибка значения исправлена;

•    если она вырабатывает ложь, V выводится с помощью вывод и вызывается не определено;

•    подготавливается и осуществляется вставка из Р.

ее) Значение вводится в имя N с помощью шаблона Р, трафарет Q которого был выдан трафаретом-логического-выбора С, следующим образом;

•    подготавливается и осуществляется вставка из Q;

•    по очереди подготавливается и отыскивается каждый из литералов, выдаваемых составляющими литералами из С;

Рели вид этого N специфицируется посредством имя лог и первый (второй) литерал окажется искомым, а иначе

•    вызывается процедура ошибка значения исправлена;

•    если она вырабатывает ложь, вызывается не определено;

•    подготавливается и осуществляется вставка из Р'>

10.3 4.8.2. Семантика соответствует ГОСТ 27974.

292

Страница 49

ГОСТ 27975-8» С. 49

10.3.4.9.    Трафареты форматного соответствуют ГОСТ 27974.

10.3.4.10.    Трафареты бесформатною 10.34.10.1. Синтаксис.

Гиперправила а. Ь. с, d соответствуют ГОСТ 27974.

-Саа) Значение V выводится с помощью шаблона Р, трафарет О которого был выдан трафарстом-бесформагного G, следующим образом:

•    Р подготавливается;

•    осуществляется вставка из Q;

Рели Qhc параметризован (т.е. не содержит задания-разрядности), то V выводится с помощью вывод;

а иначе, если вид лого V специфицируется посредством Д цел ими Д веш, то

•    если О содержи! один (два, три) параметр (а,ов), V преобразуется в строку с помошью целое (фикс, плав);

•    эта строка записывается с помошью вывод; а иначе

•    вызывается процедура ошибка значения исправлена;

•    если она иырабатывает ложь, V выводится с помошью выводи вызывается не определено;

•    осуществляется вставка из Р.

bb) Разъяснение соответствует ГОСТ 27974.

10-3.4.10.2. Семантика соответствует ГОСТ 27974.

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

Описания а. с. d, е. f. g. j. к соответствуют ГОСТ 27974. b) проц5-взять след j( ующий / шаблон = (имя файл f, лог чит ^ать /. имя шаблон шаблон) пуст:

начало

лог есть шаблон: «’ложь, формат окончен: '• ложь: пока -1 есть шаблон

цк если ук f( ззатель j( фор мата / из f = 0, то если формат окончен то не определено

инее -ч конец формата исправлен (f) то имя цел (укфор из Г) : = 1; ути из (F из формат из f) [1):*1; счет из (F из формат из f) (1 ] : а 1; иначе фДрмат окон«**н : = истина все иначе

имя цел укфор = укфор из f; имя подв [) кадр алеф = F из формат из f; выб (и из алеф (укфор)) [утн из алеф [укфор)) в (пакет пак): ([1 : вегр (в 1 из пак) | подвегавка пв; оук из алеф [удк из пак ):= укфор; укфор: = пропуск; (подготовить вставку (в1 из гак, пв, счет из алеф [удк из пак) : = понт из пак);

293

Страница 50

С. 50 ГОСТ 27975-88

(алеф: if: F из формат из ft не определено);

(чит I ввесги вставку (f, пф. вывести вставку (f, пв): утн из алеф [удкизпак): =

(счет из алеф (удк из пак) > 010 (есть шаблон: = истина; шаблон: * (пустое. ( )); вегр н из алеф [удк из пак 1): укфор: = удк из пак),

(шаблон шабл): (есть шаблон: = истина: шаблон:    шаблон: =

шабл) быв; пока

(укфор f 0 1угн из алеф |укфор) = вегр н из алеф (укфор) ложь)

цк если (счег из алеф [укфор) - : = Г) <0, то

если (укфор: *оук из алеф [укфор)) р 0 то

вставка добав = выб (н из алеф [укфор]) [утн из алеф [укфор]) .

(пакет пак):

(оук из алеф [удк из пак): ^0; в2 из пак),

(шаблон шабл):

выб траф из шабл в (трафор |раф):

(цел к: * укфор;

пока оук из алеф [k) f укфор цк к * : = 1 кц; алеф: -алеф [: к - 1); в из шабл)

быв

быв;,

цел ш * вегр в из шаблон, п - вегр добав;

(I: m + п] ст (проц цел повт, об (строк,лит) стр)с; с [1: ш]: = в из шаблон; с (m + 1: m + п] : = добав; в из шаблон: »с все

иначе утн из алеф [укфор): =0

все кц;

(укфор f 0 I утн из алеф [укфор] + : * 1) все кц конец;

h) проц ^ввести вставку = (имя файл f, [ ] подставка пв) пусг: начало настроить на чтение (О: для к до вегр пв

ЦК

выб стр из пв [к] в (лит а) : разместить (f. повт из ив [к], а, истина).

Страница 51

ГОСТ 2797S-S8 С. 51

(строк s):

(лит с; до ноет из пв (к]

ЦК

для i до вегр s

цк проверить позицию (0; ввести литеру (f, с);

(с 4 s (§1

(-* ошибка литеры исправлена (f, c: = s {i J )

I не определено); настроить на чтение (f) ) кц кц) быв кц конец;

i) проц£ разместить = (имя файл f, цел повт, лит а, лог чит) пуст): если» - "х*’то до повт цк вперед (f) кц инее а = "у” то до повт цк назад (f) кц инее а = ”i”io до повт цк нов строчка (О ки инее а = ”р" то до повт цк нов страница (О кц инее а то уст номер литеры (f. повт) инее а * ”q’’ то до повт цк

если чит

то лит с; проверив позицию (Г); ввести литеру (f, с);

(с f пробел I

(-» ошибка литеры исправлена (f, с: “ пробел)

1не определено); настроить на чтение (О)

иначе проверить позицию (f); вывести литеру (f, пробел)

все

кц

все;

10.3.5.1. Форматный вывод, а) проц Ф вывод = (имя файл f, (1 об (выводимое, формат)х) пуст: если открыт из f то для к до вегр х

цк выб настроить на запись (f); настроить на литерное (0'» х [к] в

(формат формат): присоединить формат (f, формат),

(выводимое рыв);    *    •

начало цел j: =0

шаблон шаблон, [] провывод у стройвывод выв; пока (j +: = 1) < ветру цк лог не конч: =ложь;

взять след шаблон (f, ложь, шаблон);

295

Страница 52

С. 52 ГОСТ 27975-8»

настроить на запись (f);

|1: вегр (в из шаблон) J подвставка подаст; выб траф из шаблон в (трафарет трафарет):

начало цел повт, ук i а:шель & рам яок f(: = 1;

(1: вегр (рамки из трафарет) ) подрамка полрамки;

( подготовить, рамки (рамкииз трафарет, подрамки), подготовить вставку (в из шаблон, подвеет)); строк s;

on? = (строк s) лог:

f истина, если следущий маркер есть один из элементов 's', а иначе ложь f если украм > вегр подрамки го ложь

иначе подрамка пр = подрамки [украм]; повт: =повт из пр;

если литера в строке (марк из пр, лок цел, s), то украм + : ■ 1; истина иначе ложь все все;

оп? = (лит с) лог; ?строк (с);

проц цел трафарет = (имя лог образец знака) цел:

(цел 1: =0;

пока ? ’•zuv” цк (повт > 0 II ♦ : -»повт) кц; образец знака: э?

пока ? ”zd” цк (повт >011+:= повт) кц; I);

4- проц ред fi активность f Д цел = (Д цел i) пуст:

(лог образец знака; цел 1: =цеп трзфарет (образец знака); строк t =предст целого (абс i. 1); если литера в строке (литераошнбкн лок цел. t) V 1»0V "чобраэец знака /Д|<Д0 то не конч: “истина иначе t прип s;

(1- вегр t) X ”0” прип s;

(образец знака l(i < Д01    I ”♦”) прип s)

все) >;

проц ред Д вещ = (Д вещ в) пуст:.

(цел Ь: = 0, к =0, пор: =0,Д в*щ у: =абс в, лог знак 1, строк гожа =*»

Ь: =цел трафарет (знак 1>;

(? ".*■ 1а:=цел трафарет (локлог); точка:* **.."); если ? Че ”

296

Страница 53

ГОСТ 27975 -88 С. 53

то Д нормализовать (у, Ь, а. пор); рсдцел (пор);

’’ю” прип S все;

строк t =прелст рационального (у. b ♦ а ♦ (а £0 11 Ю),а); если литера и строке (литера ошибки, лок цел, t) V а + b “0V -»знак 1 /1г<Д0 то не коич: * истина иначе t |:b] ♦ точка ♦ I (Ь + 2:] прип s;

(b + а ♦ (а ? 0 11 10) - вегр t) у ”0" прип s;

(знак I I (в <Д0 I f "+” ) прип S) все) >;

< проц рея Д компл * (Д компл дк) пуст:

пока ? *? i. ” цк укрем + : * 1 кц: рея Д веш (мч дк); "1”прин$; укрем: = 1; редДвеш (вчдк))/*;

^ проц ред Д бит = (Д би г дб. цел основание) nyci г (Д цел п: =абс дб; ? 'у ;

цел I: - цел 1 рафарет (лок лог); пока литеру в цифру (С (п мол У основание)) прип s;

П * : = У основание; п / Д О цк пропуск кц; если вегр s < I то (I- вегр s) Х"0*‘ прип s иначе не конч: =• истина все)

проц счет о чик й лит й ер d = цел:

(цел I: =0;

пока ? цк (повг > 0 11 + : 0 = повт) кц; J); выб тип из трафарет в Й целое 4

(у 01 I

<    (Д цел i): ред Д цел (i) >

1не коич: = истина),

+ вещественное й

(у Ш I

<    (Д веш в): ред Д вещ (в) >,

<    (Д цел и): ред Д веш (ц) >,

1не конч: ^истина),

I» логическое rf

(у 01 I

(да b) : s: = (b tnaliier)

1ве конч: =истнна), й комплексное й

(у Ш I

<(Д компл дк): ред Д компл (дк)

4. (Д веш дв): ред Д вещ (дв)

297

Страница 54

С. 54 ГОСТ 27975 -88

f (Д цел дц): ред Д всш (дц) t'

Iне конч: =*ст*на), сгроковое i*

(У U1 «

(лиг с): (сче1 лит = 1 I s: =сI не конч: =истина).

( I ) лиг t):

(счет лит = вегр t - нигр t + I ls:=t [cl]

•не конч: = истина)"

1не конч: = истина) либо |1 битовое И (у Ш I

4-(Д бит дб): ред Д бит (дб, тип из трафарет-4) р 1не конч: "истина) быв;

если . ис конч

то ред строку (f, s. подрамки) все конец,

(травыб выбор): начало

(I: вегр (в из выбор) | по ли станка пв; подготовить вставку (в из выбор, пв); вывести вставку (£, пв): цел I =

выб тип из выбор в i логическое (<

(у Ul I

(лог Ь): (Ь 11 12)

I не конч: «■ истина: пропуск), и целое р

(у"Ы |

(цел 0 : i

1неконч: = истина; пропуск) быв: если -• не конч то .

если 1> вегр (стриз выбор) VI < О

то не конч: “ истина

иначе

|1: вегр ((стр из выбор) (1))1 подвсгавка пвс; подготовить вставку ((стр из выбор) (1), пвс); вывести вставку (f, пвс)

все

все;

Страница 55

ГОСТ 27975-88 С. 55

подготовить ваавку (в из шаблон, под вс т) конец,

(трафор трафор): начало

выполнить трафор (f. трафор. ложь): для i до вегр нодвст цк подвст [ij: с (О,и ") кц: j-:»l конец,

(трабесф трабесф): начало

!1: вегр (в из трабесф) ] подвставки пв:

J upon цел спец =спеи из трабесф: цел п =всгрспец: |l:n)uens:

(подготовить вставку (в из трабесф, пв),

(подготовить вставку (в из шаблон, подвст), s: = (п 1спец (1). (спец [!|.сиси |2|),

(спец (11 спец (11, спец (31) , ( ) )): вывести вставку (f, пв): если п = 0 то вывод (f. у [j|) иначе число yj •

(У UP Ш им i) : i > . < (Л вещ в): в>

1не конч: = истина: пропуск): если—* не коич ю выб п в вывод (f. целое (yj. s |1| )). вывод ({.фикс (yj. s |1). s (2))). вывод (f. гшав (yj,s |l)*s [2J. s [3| )) быв

все

все

конец»

(пуст):

а-: *1:

подготовить вставку (в из шаблон, подвст))

быв:

если не конч

то настроить на запись (О*

("“•ошибка значения исправлена (О (вывод (f,y (j) ); не определено)

все;

вывести ваавку (f, подвст)

кц конец быв кц

иначе не определено все;

проц (имяфайл. | } об (выводимое, формат)) пуст put f = ф вывод.

Страница 56

С. 56 ГОСТ 27975

Ъ) Описание соответствует1 ГОСТ 27974.

10 3-5-2. Форматный ввод, а) процф ввод = (имя файл f. | ] об (вводимое, формат) х) пусг: если открыт из f то для к до вегр х

цк выб настроить на чтение (f);

настроить на литерное (O', х (kj в

(формат формат): присоединить форма! (f. формат),

(вводимое вв): начало цел

шаблон шаблон, [] проввод у-стройВвод вв: пока (j ♦ :*1) < вегр у цк лог не конч: «ложь;

взять след шаблон (f, истина, шаблон); настроить на чтение (Г);

(1: вегр (в из шаблон) | подвставка подаст; выб 1раф из шаблон в (трафарет трафарет): начало

(1:вегр (рамкн из трафарет) ] Лодрамка подрамки; (подготовить рамки (рамки из трафарет, подрамки), подготовить вставку (в из шаблон, подвставка)); строк S; цел основание ■

(тип из трафарет > 6 1тил из трафарет - 4 МО); сост строку (f, s, подрамки, основание); выб тип из трафарет в 11 целое Л

(у Ш »

<    (имя Д цел идц):

не конч: * “’строку в Д цел (s. 10. иди) >

I не конч: * истина), ft вещественное f.

(у В) I

<    (имя Д вещ идв):

не конч. = —> строку в Д вещ (s. идв) >

(не коич: «истина), й логическое $

(У Ш ' (имя лот ил) : ил: * s * да iне конч: = истина), комплексное й

\у (Л I

< (имя Д компл идк):

(цел i, лог b 1, b 2; литера в строке (**1 ”, i, s);

Ы: «строку вДвещ (s (: i — I]. ивч из идк);

Ь2: ^строку в Д веш (s (i + 1 :J, имч из-ндк);

300

Страница 57

ГОСТ 27975-88 С. 57

не конч: » *• (b 1Л 1*2) ) >

1не конч: = истина), строковое ft

(у Ы I

(имя лит сс):

(ecrps*l lcc:=s [1] 1нс конч: = истина).

(имя ( J лиг имя) :

(вегр имл-нигр имл + 1 ®всгр s I имл (с 1J: — s 1не конч: «истина),

(имя строк ис) : не: = s 1не конч: = истина) либо

|i битовые й

(у U11

< (имя Д бит идб): если Д цел i; строку п Д цел (s. основание, i) то нлб: =бин i иначе не конч: = и ста на все >

1не конч: = истина) быв конец,

(травыб выбор): начало

[I: вегр ( в из выбор)] подвегавка пв; подготовить вставку (в из выбор, пв);

•вести вставку ([, пв); цел с = с из тпоэ из f, лит kk; цел к: = 0, лог есть: = ложь; пока к < вегр (стр из выбор) Д-» есть цк к ♦ : = 1;

[1: вегр ((стриз выбор) (к)) ] подвставка пв; лог лог: = истина;

подготовить вставку ((стриз выбор) (к). пв);

строк s;

для i до вегр пв

цк s плюспр

(стр из пв (i] I (строк ss) : s») х повт из пв (i)

цк;

для jj др вегр s

покалог:=логЛ -• строчка окончена (Г)

Л т лог файл окончен (О цк ввести литеру (f, kк); лог: =кк =s (jj] кц; (-, (есть: * лог) I уст номер литеры (f. с) )

301

Страница 58

С. 58 ГОСТ 27975

кц;

если • 1 есть то не конч: = истина иначе

выб тип ил выбор в tлогическое й

(у Ш I

(имя цел b): b: = к = 1 Iне конч: = истина),

Й целое й

(у U) I

(имя цел i): i: » к I не конч: «истина)

быв

все;

подготовить вставку (в из шаблон, подвст) конец,

(трафор трафор):

начало выполнить трафор (f, трафор, истина); для i ло вегр подв ст цк подвст [i]: = (0, ” ”) кц;

)-: = ] конец,

(трабесф грабесф):

((1: вегр (в из трабесф) J подвставка п$; (подготовить вставку (в из трабесф, пв),

подготовить вставку (в из шабион, подвст)); ввести вставку (f. пв); ввод (f.y |jj )).

(пуст):

(j —•: = 1; подготовить вставку (в из шаблон, подвст))

быв;

если не конч

то настроить на чтение (О;

(-.ошибка значения исправлена (f) I не определено)

все;

ввести вставку (f, подвст)

кц конец быв кц

иначе не определено все;

проц (имя файл, ( J об (вводимое, формат)) пуст get f *ф ввод; Ь) проц-^сост Ц авитъ ^ строку = (имя файл (,

имя строк s, [ ] подрамка пр, цел основание) пуст: начало

лог подав, п ji одавляемые й н Й ули |t: = истина, есть знак: «ложь,

J02

Страница 59

ГОСТ 27975 -88 С. 59

есть пробел: = ложь, нет знака: =ложь, цел ук 4 азатель ii эн ii ака м: * 1. повт; прио! «8;

оп! ■ (строк в, лит с) лиг:

4 запрашивает некоторую лнгеру, содержащуюся в 's'; если читаемая литера не входит в У, то вызывается процедура обработки события, соответствующая при ошибке литеры, с предлагаемым 's' ^ если лит к; проверить позицию (f); ввести литеру (f, к) литера в строке (к, лок цел, s) то

иначе лиг предл: «с;

если ошибка литеры исправлена (С, предл) то (литера в строке (предл. лок цел, s) I предл 1ие определено; с) иначе не определено; с все:

настроить на чтение (f) все;

оп! = (лит s, с) лит: строк (s) ! с;

[ J лит хор цифры * •,0123456789abcdef" I основание ];

s:= *V’;

для к до вегр пр    ,

цк подрамка прк=пр [к]; подав: * подав из прк: ввести вставку (f, пв из прк); до повт из прк

цк лит маркер = марк из прк; если маркер = ”d” то s плюспр (подав 1”0" 1 хор цифры!"о"); пн: = истина инее маркер =”z" го s плюспр (подав 1"0" 1ЛИ1 с = ((пн I "а" I ” ” ) + хор цифры) ! “’О"; (ср ”ам Iпи: ■ ложь); с) инее маркер = "u" V маркер ■ **+’’ то если есть знак

го пн: =ложь; s плюспр ("0123456789”! ’’О")

ина>*е лит с= (*'♦ -** + (маркер = "u" I V* I - •• )) ! ”t” ;

(с= vVc*    Iесть знак: = истина; $ |укзи1:*с)

все

инее маркер =’V” V маркер = **—*• то

если есть знак

топи:=ложь; s плюспр (’'0123456789’Т'О") ннеслит с; есть пробел то с:    +    -    -    0123456789“!

(с ="+” V с = ” - ** Iесть знак: >= истина; s (укзн]:=с Ic: ^ 1ги: = ложь; есть знак: = истина; s плюстр с) иначе с: = "+-.’*! *•+";

(с = V с =    I есть знак: = истина; s [укзи|: = с

303

Страница 60

С. 60 ГОСТ 27975-88

1есть пробел: = истина)

все

инее маркер = то

s плюспр (подав I".” I ’*. " !    ")

инее маркер я "с” то s плюспр

(подав I wjo” I”ю\е” ! ”,о”; ’‘.о”)! есть знак: = ложь; пн: =истина; s плюспр‘Ч”; укзн: =вегр s инее маркер = "Ч” то

s плюспр (подав I "1 ” I ”ii" I и, ”); есть знак: =ложь; пн: = истина; s плюспрукзн: = вегр s инее маркер -’V’то

s плюспр (да + нет) ! нет; нет знака: = истина инее маркер ="а” то 5 плюспр (подав I” . ” I лит с; проверить иозицию (f); вывести литеру (f, с); с);'

нет знака: * истина инее маркер = "г” то пропуск все кц кц;

если нет знака то s = 8 (2:J все конец;

10.3.6. Двоичный обмен соответствует ГОСТ 27974.

10.4.    Системное вступление н список задач соответствуют ГОСТ 27974.

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

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

Описания а, Ь, с, d, е, f, g, h, i, соответствуют ГОСТ 27974.

j) присит окончание: пуст: стоп;

к) присит немедленное окончание: пуст: стоп;

1) присит рекурсия обшей ситуации: лог: ложь; т) присит конец лог файла: (имя файл f) лог: ложь, конец физ файла: (имя файл f) лог: ложь, конец страницы: (имя файл О лог: ложь, конец строчси: (имя файл 0 лог ложь, конец формата: (имя файл f) лог: ложь, ошибка значения: (имя файл Г) лог: ложь, ошибка литеры : (имя файл f, имя лит с) лог; ложь;

10.5.2. Собственные заключения определены в ГОСТ 27974.

10.6.    Се гм е н т ы

10.6.1.    Синтаксис

а) вставляемый сегмент на АЛГОЛЕ 68

в СРЕДЕ с новыми ?МОДУЛЯМИ выдающий ЗНАЧЕНИЕ {А7а знак сегмент [94 d} ,

304

Страница 61

ГОСТ 27975-88 С. 61

индикагор заготовки (56 d} , знак определяется как {94dJ,

фактическая заготовка в СРЕДЕ с новыми ?МОДУЛЯМИ выдаю* щая ЗНАЧЕНИЕ [50с}.

b)    Для каждого дополнительного {.5.6.1.А } терминального, метапо-рождения „ЯЗЫКА” следует добавить дополнительные гиперправила для гиперпонятий формы „вставляемый сегмент на ЯЗЫКЕ в СРЕДИ с новыми 7МОДУЛЯМИ выдающий ЗНАЧЕНИЕ”. Должен быть определен механизм {с помощью стандарта, определяющего этот другой язык ) , посредством которого все такие вст^вляемые-сегменты-на ЯЗЫКЕ могут быть преобразованы во вставляемые-сегменты-на АЛГОЛЕ 68 [ с тем же самым смыслом }.

c)    сегмент определяющий модули через МОДУЛИ

в СРЕДЕ с новыми 7МОДУЛЯМИ1 [МОДУЛЯМИ (А7а } : знак сегмент (94 d?,

индикагор заготовки (S6dj , знак определяется как (94d) . описание модулей через [МОДУЛИ в СРЕДЕ с новыми '’МОДУЛЯМИ1 [МОДУЛЯМИ {49а }. если !МОДУЛИ не охвачены СРЕДОЙ {е] .

d)    сегмент для вступления задающий [.МОДУЛИ

в новом СЛОЕ1 с новыми [ОПИСАНИЯМИ "’МОДУЛЯМИI [МОДУЛЯМИ { и ] СТОПОМ {A7aJ : описание модулей через [МОДУЛИ в новом СЛОЕ1

с новыми [ОПИСАНИЯМИ 7МОДУЛЯМИ1 [МОДУЛЯМИ (и) СТОНОМ (49а) .

если [МОДУЛИ не охвачены новым СЛОЕМ! {с}. с) ЕСЛИ ’МОДУЛИ МОДУЛЬ не охвачены СРЕДОЙ [c.d] .

ЕСЛИ •’МОДУЛИ не охвачены СРЕДОЙ {с.Г} и МОДУЛЬ не зависит от ?ПАР {71а, Ь, с} . если в 7ПАРАХ собраны свойства из СРЕДЫ { g, h} .

О ЕСЛИ ПУСТО не охвачено СРЕДОЙ {е }: ЕСЛИ истина.

g)    ЕСЛИ в 7ПАРАХ1 7ПАРАХ2 собраны свойства

из СРЕДЫ с новыми 7ПЛРАМИ2 fe.gj :

ЕСЛИ в 7ПАРАХ1 собраны свойства из СРЕДЫ fg.h}.

h)    ЕСЛИ в ПУСТО собраны свойства из нового ПУСТО |е. g} :

ЕСЛИ истина.

i)    • сегмент в СРЕДЕ с новыми 7ПАРАМИ :

вставляемый сегмент на ЯЗЫКЕ •в СРЕДЕ с новыми 7ПАРАМИ выдающий ЗНАЧЕНИЕ [а, b] ; сегмент определяющий модули через [МОДУЛИ в СРЕДЕ с новыми 7ПАРАМИ ( с } ; собственно-программа в СРЕДЕ с новыми 7ПАРАМИ /Alg}; сегмент для вегуалення задающий [МОДУЛИ в СРЕДЕ с новыми 7ПАРАМИ /d /. j)“ символ буква: символ БУКВА [94а} .

Страница 62

С. 62 ГОСТ 27975-88

к)*символ цифра символ ЦИФРА f94bj .

{ Примеры:

а) ссгмсит ”а b с” а иодкл a, b (х: * I: у = 2; печ (х + у))

c)    сегмент "а b с” “модуль а =мд откр веш х дм

d)    модуль Ь = мд откр вещ g дм

Эти три примера могли бы представить собой согласованный набор сегменюв (10.6.2л), будучи объединены с собственно-программой начало среда ”а b с” конец )

{ В вышеприведенном правиле а 'МОДУЛИ', заложенные в ’’МОДУЛИ', определяются всеми сегментами-определяющими-модули, которые должны вставляться вместе с данным вставляемым-сегментом. В правилах с и d требуется только, чтобы в '?М ОДУ ЛИ Г были заложены МОДУЛИ' для всех тех модулей, которые на самом деле доступны изнутри данного сегмента. Нижеследующая семантика определена только в тех случаях, когда для набора совместно вставляемых сегментов, все 'МОДУЛИ', заложенные в различные '7МОДУЛИГ, заложены и в ’7МОДУЛИ'}

10.6.2. Семантика

(Сегменты - это компоненты для раздельной трансляции. Необходимо определить смысл набора сегментов. Это осуществляется преобразованием набора в эквивалентную собственно-программу. Необходимо, конечно, чтобы сегменты в наборе были согласованы друг с друт ом. Ровно один сегмент в наборе должен быть собственно-программой. J

а) Смысл собственно-ирограммы Р в контексте набора Т других присоединяемых сегментов {. не являющихся собсгвеино-программами.) определяется следующим образом:

•    Личное вступление-с-?МОДУЛЯМИ UP из задачи-пользователя UT. наследником которой являегся Р ( 1.1,1.е и 10.1.1 f ) , должно быть составлено следующим образом.

Для каждого сегмента-для чсгупления-в-иовом-СЛОЕ 1-с-иовыми-!ОПИ-САНИЯМИ-'МОДУЛЯМШ- { и*} СТОПОМ М. если таковое имеется, в Т,

•    UP содержит составляющее описание-мочулей-в-новом-СЛОЕ 1-е новы-ми-'ОПИСАНИЯМИ-?МОДУЛЯМИ- { и-} СТОПОМ, подобное описи-нию-модулей из М; ( в '?МОДУЛИ' должны быть заложены s^c МОДУЛИ', заложенные во все такие и только такие '’МОДУЛ И1 коюрые синтаксически корректны по отношению к личному-встуиле-нию из UT;}

•    UP не содержит никаких иных составляющих описаний-ОПЪККТОВ. и его единственная составляющая основа состоит из пропуска {5.5.2.1.а } ;

Если Т содержит какие-либо вставляемые-сегменты-на-ЯЗЫКЕ. где ’ЯЗЫК' не есть 'АЛГОЛбЙ'.

то эти сегменты преобразуются { 10.6.1 .Ь } во всгавлясмыесегменты-на-А Л ГОЛ К 68 {с тем же самым смыслом };

Пока в UT остаются кзкие-либо формальные-заготовки.

•    пусть Н есть такая формальная-заготовка-вСРЕДЕ-вь^инощая-ЗНАЧЕНИЕ, и пусть 1 еегь ннцикаюр-зцг-отовки;

Страница 63

ГОСТ 27975 -88 с. 63

•    если ! подобен какому-либо такому I, который уже рассматривался, то смысл Р не определяем;

•    Н замещается {в UT} виртуальной-заготовкой-в-СРЕДЕ-вьщаюшей-ЗНАЧЕНИЕ, составляющее последоЬательное-иредложение-в-СРЕДЕ S которой составляется следующим образом:

Для каждою сетмента-определяюшего-модуля-в-СРЕДЕ-с-новыми ?М0ДУЛЯМИ1 М. если таковой имеется, в Т, инликатор-загоговки которого ..соответствует" { b } I,

•    S содержит составляющее описание-модулей-в-СРЕДЕ-с-нивыми* ?МОДУЛЯМИ, подобное опнеанию-модулей из М;

{в *?МОДУЛИ' должны бьиь заложены все МОДУЛИ", заложенные во все !акие и только такие'?МОДУЛИГ. которые синтаксические кор-.. рсктны по отношению к S;}

•    S не содержит никаких иных составляющих описаний-ОБЪЕКТОВ, и его единственная составляющая основа состоит из составляющего ЗАКРЫТОГОпредложения из { единственною } вставляемого-сег-мента-на-АЛГОЛЕ 68-в-СРЕДЕ-с-новыми-?МОДУЛЯМИ-выдцющего-ЗНАЧЕНИЕ из Т, индикатор-заготовки которого соответствует I;

Если в Т остались какие-либо сегменты, которые не были включены в UT,

то смысл Р нс определен ;

инзче (в UT нс содержится никаких формальных-загОГОВОК, и поэтому } 'смысл Р таков, каким он определен в другом месте { 1.1.1 е} семантикой стандарта.

Ь) Если { текстуалыю } первый составляющий злеменктроки из индикатора-заготовки I состоит из некоторою символа-букиа. и всякий другой составляющий злеменг-строкм. если таковой имеется, состоит из неко-юрото символа-буква или некоторого символачжфра, то I „соответст-вусг’’ любому другому индикатору-заготовки, которому он подобен f; иначе его соответствие другим индикаторам-заготовок (подобным ему или нет) здесь не определяется, однако, оно может определяться местными соглашениями реализации, учитывающими особенности местной операционной языковой обстановки.}

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

ПРИЛОЖЕНИЕ 1 Справочное

ИСТОРИЧКСКАЯ СПРАВКА

„Исрссмогрсимос сообщение об »лгоригмкческом яшке Алгол 68". официально принятое в 1974 г. в качсстис окончлеиьноги отделяющего документа для яэмю

307

Страница 64

С. 64 ГОСТ 27975-Я8

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

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

В 1977 г. были опубликованы предложения Ч. Линдси и X. Боома по модулям и раздельной трзисляцки ,.А Modules and Separate Compibtjon Facility for ALGOL 68".

Предложения были одобрены рабочей группой 2.1 (РГ2.1) Международной федерации оо обработке информации (ИФИП) и, во избежание чрезмерного распространения диалектов, рекомендованы для преимущественного использования в реализациях. вводящих подобные средства. Настоящий стандарт включает предложения Ч. Линдси н X. Боома в переводе В.В. Ьроля.

Предложений по обработке исключительных ситуаций, имеющих такой же статус- как упомянутые выше, в настоящее время не существует. В связи с этим рабочая группа по алгоршмическому языку Алгол 68 (РГ A6S) научно-технической комисски по системам математического обеспечения при Г КВТ АН СССР решила разра&этатз, оригинальный вариант этих средств. Механизм обработки исключительных ситуаций был предложен Г.С. Цейгиным. Это предложение обсуждалось на заседаниях РГ А68, было одобрено и вопию в настоящий стандарт. От имени РГ 2.1 ИФИП это предложение рассматривал Ч. Линдси, сделавший ряд полезных замечаний.

ПРИЛОЖЕНИЕ 2 Обязательное

ТРЕБОВАНИЯ К МАШИННОМУ ПРЕДСТАВЛЕНИЮ ПРОГРАММЫ 1. Определения

1.1. Абстрактная литера - это одна из следующих 152 литер, буквы латинского алфавита:

А. В, С, D. Е. F,G. Н. 1.J.К. L. М. N, О. P.Q, R. S, Т. U, V. W. X. Y, 7,a, b.c,d. е. Г, «. h, i. j. k, I m. n. o. p, q. r. s, t, u. v, w. х,уг. буквы русского алфавита

А. Б. В. Г. Д. Е. Ё, Ж. 3. И. Й. К. Л. М, Н. О. П. Р. С. Т, У. Ф. X. U. Ч. Ш. 1ЦЪ. Ы. Ь. Э. Ю, Я; а. б. в. г. д, е, Ь ж. з. и. Л. к, я. м, к. о. о. р,«. т, у, ф, х, ц. ч, ш, ш. ъ. ы. ь, э.ю.я цифры:

0. 1.2. 3. 4.5.6. 7. 8.9 прочие литеру:

пробел "#.**’()    <->    <*>[    ]    _    I

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

,    1.2.    К о н к р с т н а я литера - зта некоторая литера, имеющаяся иа уст

ройстве ввода-вывода. Кажаая такая литера составлена из множества знаков и кодов ■ соответствии с местными соглашениями.

1-3. Разделитель -это особенность типографского набора (подраздел 9.4. d), начало или коней текста программы, или люба» абстрактная литера, отличная от буквы, цифры или знака подчеркивания. Слова и выделенные слова ограничиваются разделителями.

308

Страница 65

ГОСТ 27975-88 С. 65

1.4.    Две строчки литер соприкасаются, если между ними нет литер или особенностей типографского набора. Гели оши из сгрок литер с л с л у с i за и пи предшествует другой, юс»интакжесоприкасаются

1.5.    Выделенное слово- ло:

любое представление составленное из выделенных буки или цифр я эталонном яшке (подраздел 9.4) (т с. символы-выаелсииос-ОЮВО и представления, укаыи-ные в п. 9.4.1 как выделенные»:

символ, представленный выделенным слоном:

литеры, записывающие имлелсиное слояо способом, специфицированным в подразделе 3.4. настоящего приложения

1.6.    Слово - эго симиол*СЛОВО (подпункт 9.4.2.2. а), например. - ..конец файла'* - это слово.

1.7.    Слог - непустая notлеиовательность букв и цифр (слово «.конец файла*1, использованное так. как в и 3.4.1 настоящего приложения, состой! из двух слогов)

2. Представление конструктов алгола 68

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

Если предусмотрено несколько конкретных литер (например, для „I" и ..I " и и ! **>. то оми должны эквивалентно обрабатываться всюду, кроме как н строках и при распечатке программ, где кажлая представляет саму себя.

2 2. В каждом алфзвиге соответствующие друг другу прописные и строчные буквы эквивалентны, эа исключением ситуаций, предусмотренных в подразделе 3.1 и п. 3.5 2 настоящего приложения

2 3. Конструкт в языке представления получается заменой символов на их представления Представление дли каждого символа пае геи в терминах абстрактных литер. Кодирование конструктов в языке представления для матикиной обработки осуществляется заменой каждой абстрактной литерал на соответствующую ей конкретную литер) и вставкой особенностей типографского набора (там. тие ло разрешено

В некоторых реализациях отдельные конкретные литеры могуч не иметь представлений на устройствах нвода-ныяоаа В таких случаях реализация должна обеспечить дополнительное представление соответствуют* им абстрактных литер (нал ример. н виле комбинаций конкретных литер, доступных на этих устройствах) При этом, и ««стности, допускается ряси/иргнис списка зарезервированных слов из подпункта 3.4 1.3 данного приложения, а также введение альтернативных обозначений из разд. 10 и расширение списка представлений символов и * п. 9.4.1 настоящего стандарта альтернативными представлениями, использующими только достуиные конкретные литеры.

Чтобы перенос программ СВОДИЛСЯ только к простой транслитерации, реализация должна предусматривать способ представления программ п виде, не используюлкм подобных местных соглашений, и преобразование программ к такому виду.

309

1

3.1.    Элементы строки

3.1.1.    Множество элементов-строк и (подпункт 8.1.4-1. Ь) - это множество абстрактных литер без кавычки и а!сострофа. но с сим во лом образ-кавычки и символом-обраэ-апострофа Значение каждой абстрактной литеры есть сама литера. Соответствующие друг другу прописные и строчные букяы имеют различные естественные значения. Символ-ображавычки записывают двумя соприкасающимися кавычками и его естественным значением является кавычка. Символюбраз-апострофа записывают двумя соприкасающимися апострофами и cixj естественным значением является апостроф (один апостроф может использоваться и реализациях как регистровая литера).

Страница 66

С. 66 ГОСТ 27975-88

Последовательность управляющих литер. отсутствующих иа устройства ввода-вывода. или опт шкал пик-ре в изобрижении-строки может быть представлена следующим обр»'ЮМ

с им во л-aooci роф. симвогьоткрытк

символ-образов-управляющих-литер, символ-за* рыть.

Образы литер в списке могус шикати* целыми десятичными числами, а га к же их обозначениями в русской или латинской нотации по ГОСТ 27465 и должны разле-пяться ипятмми.

3 1.2. Дополнительная особенность типографского набора - ..ри.«рыв строки” • предусмотрена для использования только внутри и-юбражеиий-строк и изображений литерных и записывается как кавычка с наследующими олной или более особенностями типографского набора, отличными от разрыва строки, с последующей сшеодной кавычкой

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

3.2. Элементы прагматоп

3.2.1. Лослсдеяатх^шнхтысклсмемоа-ПОЯСНГНИЯ-ОФОРМЛЬННЫХ (п. 9.2.1.с) может служить любая последовательность литер (не обязательно абеюакшых). и которую не входит последовательность (вместе с разделителями), представляющая сам символ-ПОЖ НЬНШ: ОФОРМЛГННЫЙ (t. к последним завершается примат). Врез-пимиии ворожим, однако, дальнейшие ограничения на послед оозгельжчтъ литер. По пустимых в прагмэтах (но только не в примечаниях)

3.2 2. Предусмотрены шесть стандартных злементов-пратматоа ('ГРАНИЦА (РАСГ-), ТЧК (POINT), BP (UPPIR). Pfc3 (RtS), ЗАПОМНИТЬ (PUSH). ВООСТА-НОВИТЬ (POPi (В скобках английские зквивиленты злемешовпрагматов) Эти алсмснты должны распознаваться хоти бы к их минимальной форме: Символ-пратмагОФОРМЛЬННЫЙ. х томен г.

Oi м вол-прагма г-ОФОРМИ EH 11ЫЙ Каждый и а персиислемиых элементов-приматов записывается как последовательность букв, которым могут предшествовать кии та которыми могут следовать особенности типографского набора. (Во всех выделяющих режимах сим вол-прагма» может быть записан как „ПРАГМ” с последующим разделителем)

3.2.3    Новы страница

3.2.3.1- При распечатке некоторого конструкта в конкретных литерах с помоипао процессора Алгола 68 прагмат, содержащий элемент прагмага СТРАНИЦА (РАСЕ) указывает, что строчку, следующую за строчкой, содержащей замыкающий символ-прагмзт, печатают с начала новой страницы. (Прагмах СТРАНИЦА ис является, однако. особенностью типографского набора).

3.2.4    Запоминание режиме выАмения

3 2.4 1 Прагмат, содержащий злемеап-прагмата ЗАПОМНИТЬ (PUSH), указывает, что значение действующей' в данном месте пратмата, определяющего режим выделения (подраздел 3.4 настоящего приложения), запоминается для последующею восстановления

3.2-4.2. Прагмат. содержащий мемент-прагмата ВОССТАНОВИТЬ (POP), связывается е последним из прагматон. содержащих злемемт-лрагмата 'ЗАПОМНИТЬ, еще не связанным с другим пратматом. содерясаитим злемент-прагмата ВОССТАНОВИТЬ (если такой есть), и восстанавливает действие того из прагм»тов. задающих режим иы. деления, который дейстяовал гхреп этим прагматом

ЗЗОсобенности типографского набора 3.31. Особенностями типографского набора являются пробел, новая строчка и разрыв строки. Новая строчка может быть одной конкретной литерой тот физическим

310

Страница 67

ГОСТ27975-&8 С. 67

явлением, подобным конц> записи. Разрыв строки и< польз) ют только в изображе-вмх-строкм.

3.4. Слома и выделенные слова

3.4.1.    Представление слов и выделенных слов определяют „режим выделения". Существует три режима выделения, выделение точкой, выделение прописными буква* ми. резервирование слов.

Новым режим вводится прагма г ом. содержащим один из элементов-прагмата ТЧК (POINT). BP (UPPFR). РБЗ (RES) и начинает действовать сразу же после замыкающего символа-прагмаг Режим не действует на „оформление" представления (так. в режимах ВР и РЕЗ „ПРАГМ” сооттктствуст „ПРАГМ”). Приводимые ниже правила требуют наличия рездслитсля в некоторой потники В качестве раздел теней можно использовать особенности типографского набора. Слово различаются юл wo тогда, когда различны конкатенации их подслое, например, „конец файла**, ml жег был. записан также как ..конец файла'*.

3.4.1.1.    В режиме выделения точкой (ТЧК) выделенные слова прсдс-р являются следующим образом.

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

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

за выделенным словом должен следовать разделитель.

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

слот составляется из соответствующих. расположенных 1Ю порядку, абстрактных букв и цифр и мо?£ет завершаться литерой подчеркивания.

если слог не завершается литерой 1юдчсркивания, го после него должен следовать разделитель.

3.4 1.2. В режиме выделения прописными буквами (ВР) слова и выделенные слова преаставляют как в режиме ТЧК. но только с использованием дополнительных правил:

в выделенных словах не должно быть смешения прописных и строчных букв; точка может быть опушена перед выделенным словом и* прописных букв, caw ему предшествует разделитель» отличный от точки, прочна* буква или иифра, не я»*-люошаяся „прописной цифрой”. „Прописная цифра* - это цифра, которой предшествует прописка* буква или прописная цифра;

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

прописные буквы могут быть использованы только в выделенных словах и в качестве злемснта-основнотиабора (подпункт 8.1.4.1 .с).

3.4.1.3. В режиме резервирования слов (РЕЗ) слова и выделенные слова представ ляют как в режиме ТЧК. но с использованием дошшиительных правил:

точка можег опускаться 1к*ред зарезервированными словами (заданными в n 9.4.1 как представления для символов языка), состав ленными из букв русского алфавита

ВИТ ВЫВ В В I'Ll ВИЛ ВОЗБУЛ ВСЕ ВЫБ ВЫХОД ГЛОЬ ДЛИН ДЛЯ ЯМ ДО ЕСЛИ ЕСТЬ ИЗ ИМЕНИ ИМЯ ИНАЧЕ ИНЕС ИСТИНА КАНАЛ КОМН/1 КОН КОНЕЦ КОР К11 ЛИБО Л И ВЫ Б ЛИТ ЛОГ ложь ЛОК МЛ МОДУЛЬ НА НАЧ НАЧАЛО HFCTb НИЛ ОБ ОН ОТ ОТКГ ПАР ПОДВ ПОЛЮ! ПОКА ПРАГМ ПРИМ ПРИО ПРИСИТ ПРОПУСК 11К)Ц ПУС1 ПУСГ01 с СБРОС СЕМА СЕГМЕНТ СИТУАЦИЯ СКИП СЛОГ СРГЛА СТ СТРУКТ ТО Ф ФАЙЛ ФОРМАТ ЦЕЛ ЦК ЧЕРЕЗ ШАГ

311

Страница 68

С. 68 ГОСТ 27975-88

и букв латинского алфавита

ACCESS AT BEGIN BITS BOOL BY BXJES CASE CHANNEL CHAR CO COMMENT COMPL DEF DO EGG ELIF ELSE EMPTY END ESAC ECCAPTION EXIT FALSE FED FI RLE FLEX FOR FORMAT FROM CO GOTO HEAP IF IN I NT IS IS NT LOC LONG MODE NEST NIL OD OF ON OP OLSE OUT PAR POSTLUDE PR PRAGMA! PRIO PROC PUB RAISE REAL REF SEMA SHORT SKIP STRING STRUCT THEN TO TRUE UNION VOID WHILE если им предшествует разделитель, отличный от точки;

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

3-5. Составные представления

3-5.1. Некоторые представления, приведенные в п. 9.4.1, составленные из последовательности двух или болос литер, не являющихся буквами (” ". =>:, I:, :

: /«•:), являются последовагелытостями абстрактных литер, соответствующих этим символам.

3-5.2. Представление любого символа-ПОНЯТИЕ1-псред-ПОНЯТИЕМ2 является представлением для символэ-ПОНЯТИЕ 1, за которым следует представление для символа-ПОНЯТИЕ2, (символм-ПОНЯ ГИЕ1-перед-ПОНЯТИЕМ2 являются составными обозкачениями-операций, упомянутыми в подпунктах 9.4.2.2.d.c).

3.6. Другие представления

3.6.1.    Любой символ, представление которого в подразделе 9.4 соответствует абстрактной питерс, представляется этой литерой Снмвоп-из-дссязь-в-степеии, символ-плюс-и-иа и скмпол-краткос-примечание не имеют представлслиИ.

4. ОАм<ж

4.1.    Представления объектов для обмена должны использовать только абстрактные литеры (с тем. чтобы ввод можно было подготавливать, а вывод интерпретировать без ссылки па конкретную реализацию). Запросы к обстановке зависят от абстрактных литер следующим образом:

да    „Т” латинская или „ Д " русская:

нет    F " латинская или .. Н ” русская;

литера ошибки• ”; пробел    „

4.2.    Вместо абстрактных литер для симвопа-н^десить-в-сгепсми и для символа-ил юс-и-ка необходимо иаюльзовагь литеры „ Е ” { лагайская } или „ Е ** f русская ) и '„ I " { латинская } или "И” ( русская} .

Соответствующие друг Другу прописные и строчные буквы эквивалентны, когда они входят при объеме в представление любого значения, отличного от значений видов ..литерный” и „вектор из литерных".

4.3.    Строковые значения, полученные ъ результате обмена к операции ПРЕД (REPR). могу т содержать литеры, которые не соответствуют абстрактным литерам.

312

Страница 69

ГОСТ 27975-88 С. 69

ИНФОРМАЦИОННЫЕ ДАННЫЕ

1.    ИСПОЛНИТЕЛИ

В.Г^ Морозов, д-р техн. наук; Г.С. ЦеЯгин, д-р физ.-маг. наук; А.Ф. Pap; А.Н.Терехов,канд.фиэ. мат.наук; Ч.Линдси; О.Е.Клнмова; Hi. Скачков; В.В. Б роль; В.Б. Яковлев; И.Б. Гиндыш; Э.В. Оленьс-ва; Д.Ю. Жуков; Ю.И. Карпов; Ф.Х. Кабалима; ОХ. Александрова; Е.Г. Грозная

2.    УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Государственного комитета СССР по стандартам от 21.12.88 N* 4380

3.    Срок проверки - 1996 г., периодичность проверки - S лет.

4.    ВВЕДЕН ВПЕРВЫЕ

5.    ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ

Обозначение НТД. и* который дни ссылка

Номер пункта, приложения

ГОСТ 27465-87 ГОСТ 27974 - 88

Приложение 2 (п. 3.1.1)

1, 1.1.1 -1.1.4.1.1.4.1- 1.1.4.3.1.2.1,1.2.3,1.3,2.1.1,2.1.1.1-

2.1.1.3.2.1."2,2.    Г.3,2.1.4.1-2.1.4.3,2.1.5,2.2.},3.0.1,3.0.2,3.1,

3 1,3-2.1,4,4.1.1,3.3.1,3.3.2,3.4,3.5,4.1.2.4.2-4.7,4.8.1,4.8.2,

5.5. l,-5.2:i.l, 5.2.1.2,5.2.2-5.24,5.3.1. 1.5.3.2.1.5.3.2.2;5.4.1-5.4.4,5.5,6,6‘. 1.1,6.2". 1,6.3—6.7,7,7.1.1,7т2.1,7.2.2,7.3.7.4,8,9,

9.1.-9.4Я».    1,9.4.2,10,10.1,10.1.1,101-2.10.1.3.10.2.10.2.2. 10.1.3.0'- 10.2.3. f 2. 10.2.4, 10-3. 10,3.1, 10.3.1.1, 10.3.1.2, 10.3.U-10.3.1.6,I0.3.2,10.3.3.1,10.3.3.2.10.3.4,10.3.4.1Л, 10.3.4.1.2,10.3-4.2-10.3:4.7.10.3:4.8.1.10.3.4Л.2.10.3.4.9,

10.3.4.16.1.    10.3.4.10.2, 10.3.5. 10.3.5.1, 10.3.6, 10.4, 10.S.1, 10.5.2

313

Страница 70

СОДЕРЖАНИЕ

ГОСТ 27974-88

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

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

1.1.1.    Введение................................................................................4

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

1.1.3.    Синтаксис строгого яэмка........................................................6

1.1.4.    Семантика........................................ И

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

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

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

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

1.2. Обшмс гиперправияа......................................................................19

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

1.3.2    Выполиимостытреликагов ..............................................20

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

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

2-1. Терминология..............................................................................22

2    1.1 Объекты ................................................................................22

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

2.1.3.    Значения..................................................................................26

2.1.4.    Действия..............................................................................33

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

2.2-    Программа................................................................................37

2.2    1. Сингаксис ................................................................................37

2.2.2. Семантика................................................................37

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

3.0.1.    Синтаксис ..............................................................................38

3.0.2.    Семантика................................................................................39

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

3.1.1.    Синтаксис .....................................................................39

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

3.2.1 Синтаксис ................................................................................40

3.2.2.    Семантика........................................................42

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

3.3.1.    Синтаксис .........................................................................    43

3.3.2.    Семантика ............................................................................45

3    4. Выбнрээошис предложении............................................................45

3.4.1.    Сингаксис ..............................................................................47

3.4 2. Семантика ................................................................................50

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

3.5.1.    Синтаксис ............................... . . . .    .    •    .    51

3.5.2.    Семантика................................................................................52

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

4.1.    Описания....................................................................................54

4.1.1.    Синтаксис ..............................................................54

4.1.2.    Семантика..............................................55

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

4.2-1.    Синтаксис ...............................................55

4.2-2.    Семантика................................................................................55

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

4.3.1. Синтаксис ................................................................56

314

Страница 71

4.3    2. Семантика....................................................................56

4 4 Описания и.к«тификзгорои ............................................................56

4    4 i. Синтаксис....................................................57

4.4.2. Семантика............................................................58

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

4.5.1.    Синтаксис ..............................................................59

.    4.5.2. Семантика    ..................................................59

4.6.    Описатели ................................•    59

4.6    I.Синтаксис ......................................................60

4.6.2.    Семантика............................................................62

4.7.    Соотношения мсяфту индами..................................64

4.7.1.    Синтаксис ..................................................64

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

4.8.1.    Синтаксис ......................................................................65

у 4.8.2 Семантика ........................................................66

5.    Осноть.............................................................67

5.1.    Синтаксис....................................................................................67

^ 5.i- Оскгвы. связанные с именами . , .    .........................................68

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

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

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

5    2.4. Псевдоимсиа ......................................................................71

5-3. Основы, связанные с составными значениями ......................................71

53.1 Выборки........................................................................71

5-3.2. Вырезки........................................................................72

5-4. Основы, связанные с процедурами....................................75

5    4.1. Тексты процедур.......................................75

5-4.2. Формулы........................................................77

5-4.3. Вызовы '....... . ..................................................78

5.4.4.    Переходы ..............................................................................79

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

5.5.1.    Ядра......................................................................................80

5.5.2.    Пропуски ................................................................................80

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

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

. 6.1.1. Синтаксис ................................................................................82

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

6.2.1.    Синтаксис ................................................................................84

6.2.2.    Семантика..............................................................................84

6    3. Распроцедуривание........................................................................84

6.3.1.    Синтаксис ................................................................................84

6.3.2.    Семантика ..................................................................................84

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

6.4.1.    Синтаксис ................................................................................85

6.5.    Обобщение..........................................................................85

6.5.1.    Синтаксис ......................................................85

6.5.2.    Семантика.........................................................................86

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

6.6.1.    Синтаксис ................................................................................87

6.6.2.    Семантика..............................................................................87

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

6.7.1.    Синтаксис ..........................................................................88

6.7.2.    Семантика........................................................................88

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

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

7    1.1. Синтаксис ..............................................................................89

Страница 72

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

7.2.1.    Сиипксис .....................................................................92

7.'2.2.    Семантика.........................i    ,    .    .................................92

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

7.3.1.    Синтаксис ...................................................94

7.4.    Прапилыюстыкхтроения .........................................98

7.4.1.    Синтаксис .................. . . ,    ...................98

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

8.0.1. Синтаксис ..........................................................................99

8.|.    Изображения кросюги ........................................................99

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

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

8 1.3. Изображения логическою................................................101

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

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

8-2. Изображения битового ..............................................................102

8 21. Синтаксис..................................................................102

8 2 2. Семантика.................................................................104

8 3. Изображения строки ..    . %......................................................104

8.3.1.    Синтаксис ................................................................................104

8.3.2.    Ссмашика..........................................................................105

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

9.1.    Знаки......................................................................................105

9.1.1.    Синтаксис ................................................................................106

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

9.2.1.    Синтаксис ................................................................................106

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

9.4.    Салонный язык ..........................................................................108

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

9.4.2.    Символы прочих о<к>эначеинй...................................115

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

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

10.1-1.    Синтаксис ..............................................................................117

10.1-2.    Соответствие языковой обстановке ..............................................119

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

10- 2. Стандартное вступление ..............................................122

10-2.1. Запросы к обстановке..............................................................122

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

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

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

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

10.3.J.    Книги, каналы и файлы................. , ................134

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

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

10 3 4. Тексты формата........................................................................171

10-3.5 Форматный обмен ..................................................................191

10 3-6. ЛвоиэдыЯ обмен ......................................................................207

10 4. Системное вступление и список задач.......•..................................209

10-4.1. Системное вступление................................................................209

10-4.2. Список системных задач..............................................................209

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

104-1- Собственные вступления ............................................................210

10-5 2. Собственные заключения ............................................................211

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

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

316

Страница 73

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

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

Информационные данные ....................

ГОСТ 27975 -85

"•* 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.    Общие гиперправила......................

flWBBHfc и программа....................

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

2.1.1.    Объекты............................

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

2.1.3.    Значения............................

2.1.4.    Действие...........................

2.1.3. Сократят».........................

2.2.    Программа............................

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

3.0.1.    Синтаксис ...........................

3.0.2.    Семантика...........................

• З.иДд^кнутые предложения ...................

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

3.2.1.    Синтаксис ...........................

3.2.2.    Семантика...........................

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

3.3.1.    Синтаксис...........................

3.3.2.    Семантика...........................

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

3.5.    Циклические г^едложения..................

3.6.    Подключающие предложения ................

*^3.6.1. Синтаксис ...........................

;К&З. Семантика...........................

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

4.1.    Описания.............................

4.1.1.    Синтаксис ...........................

4.1.2.    Семантика...........................

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

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

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

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

4.6.    Описатели ............................

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

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

4.8.1.    Скитах с ж- ...........................

4.8.2.    Семантика...........................

4.9.    Описание модулей .......................

4.9.1. Сиггаксис .    .    .    ...

317

Страница 74

4.9.2. Семантики.....................................................................260

4.10. Ситуации и реакции......................................................................2£0

4.10.1.    Синтаксис ............................................................................260

4.10 2. Семантика ..............................................................................261

5.    Основы ........................................................................................261

5.1.    Синтаксис ................................................................................261

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

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

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

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

5.2.4.    Пссвлоимсна ..........................................................................263

5-3.    Основы, связанные с составными значениями ......................................263

5.3.1.    Выборки................................................................................263

5.3.2.    Вырезки ................................................................................263

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

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

5.4.2.    Формулы..............................................................................264

5.4.3.    Вызовы................................................................................264

5.4.4.    Переходы ..............................................................................264

5.4.5.    Вызовы ситуаций........................................................................264

5 5- Основы, связанные со значениями любого вила ..............................265

5 6. Заготовки ................................................................................^65

5 6.1. Синтаксис ..............................................................................265

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

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

6.1.1.    Синтаксис ..............................................266

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

6.2.1.    Синтаксис .....................................................................266

6.2.2.    Семантика..............................................................................266

6.3    Распроцедуриваю» ....................................................................26/

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

6.5    .Обобщение..............................................................................267

6-6-    Векторизация..........................................................267

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

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

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

7.1.1.    Синтаксис ................................................................................267

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

7.2.1.    Синтаксис ................................................................................267

7.2.2.    Семантики................................................................................266

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

7.4.    Праяильмостьпосзриення................................................................268

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

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

9.1 Знаки..................................................................................268

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

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

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

9-4.1. Представления символов..............................................................269

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

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

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

Ю-1.1. СНктаксис ............................................271

318

Страница 75

10.1.2.    Соответствие шиканой обстановке ............................................271

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

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

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

10.2    2. Стандартные виды ............................................................273

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

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

10.2.5.    Стандартные ситуации и восстанавливающие действия........................275

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

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

10.3    2.'Значения для обмена..............................................................284

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

10.3    4. Тексты формата......................................................................290

10.3-5- Форматный обмен ................................................................293

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

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

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

10 5-1. Собственные вступления ......................................304

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

10-6. Сегменты............................................................................304

30-6.1. Синтаксис ..............................................................................304

10-6.2. Семантика .............................................................306

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

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

Информационные аанные ................................. 313

Сопержанке................................................................................................................314

319

Страница 76

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

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

Редактор В.П.Огурчоа Технически* редактор О.Н. Власова

Корректор Л.А.Пономарева. В.Ф.Мъхюпиш

Сдано ■ набор 15.01 в». Иолп. к печати 19.06.89. Формат 60x90/16. Бум. типографская № 2. Гарнитура Пресс-Ромам. Печать офсетная. 20 уел. печ. л., 20,13 уел. кр.-отт- 25.55 уч.-ивд. л Тир. 15<КК). Зак. 1361 Цена 1р 50коп.

Opaetui ..Знак Почета" Издательство стандартов. I23MO Москва. ГСП, Мовоиррсмемсхий пер.. 3

НаОраио в Издательстве стамоарю» и» комло>«р« Калужская типография стандартов. Калуга, ул. Московская. 256.