ГОСТ 27974-88 Язык программирования АЛГОЛ 68

Обложка ГОСТ 27974-88 Язык программирования АЛГОЛ 68
Обозначение
ГОСТ 27974-88
Наименование
Язык программирования АЛГОЛ 68
Статус
Действует
Дата введения
1990.07.01
Дата отмены
-
Заменен на
-
Код ОКС
35.060

Я^м-лл JWf. ^

ГОСУДАРСТВЕННЫЕ СТАНДАРТЫ С 0 303 А ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ

АЛГОЛ 68 И АЛГОЛ 68 РАСШИРЕННЫЙ

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

Цма Ip. 30 к. Б За -88/Ж 569

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

ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО СТАНДАРТАМ Мое к в а

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

ЯЗЫК ПРОГРАММИРОВАНИЯ

АЛГОЛ 68 И АЛГОЛ 68 РАСШИРЕННЫЙ

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

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

МОСКВА - 198 9

© Издательство стандартов. 1989

• 681.3.06Л06.354 Груши П85

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

ЯЗЫК ПРОГРАММИРОВАНИЯ АЛГОЛ 6» ГОСТ

27974 88

Programming language AI.(JOI. 68

OK СП’ 400 >

Дажа nведении 01.07.90

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

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

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

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

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

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

/

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

Махание официальное

Перепечатка тикпрежцем!

3

С.2 ГОСТ 27974-88

(.ЯЗЫК И МЕТАЯЗЫК ■

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

11.1 внешние

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

Ь) Синтаксис есть механизм, посредством которого могут порождаться вое конструкты данною языка. Этот механизм действует следующим оф!?** Л

том

(1)» Заданы множества „гиперправил” и „метаправил” 41.13.4, 1,1.3 ЗУ. ит которых могул выводиться „порождающие правила”. Входящие в эти правила „мегапонятия" и ..гипертюмятия” представлены 4 .

настоящем стандарте гак, что каждое из них выглядит как г рамматиче ски правильная русская фраза, возможно с добавление м цифр и слец| альных знаков, в которой {изменяемые}слова стоят н требуем^ грамматической форме Однако определение синтаксиса строгого яз» ка использует „приведенную форму” этих правил, титя получения кол рой необходимо каждое слово, изменяемо* в роде, числе или падеж ) заменить на его форму именительного падежа единственного числа г, если возможно, среднего рода {, сохранив время и залог причастий F Полученное слово записывается малыми (большими} синтаксически* | знаками, если «сходное слово записано малыми (большими) синпкв-ческими знаками {.причем в последнем случае-сохраняются цифрыи специальные знаки, приписанные к этому слову}

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

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

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

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

4

ГОСТ 2 7974-аз €.3

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

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

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

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

(1J Всякую программу в языке представления получают заменой всех символов какой-то программы в строгом языке определенными гипо-графскими знаками {‘>.3}

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

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

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

''к cry'Программы {10.1.2.а}.

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

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

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

5

С.4 ГОСТ 27974-8в

дел i, j, к, m, п; веш а, Ь, х, у; лог р, q.

переполнение; лите, формат f; слог г;

строк $; бит t; компл w, z; имя нещхх, уу;

об (пел. веш) uir; проц пуст задача 1, задача 2;

(1 : п] веш xl. yl; поля [1 : л] всшэ1;

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

[ 1 : nJ цел si? (I : m, 1 : nJ цел i2; [1 : nJ комля zl;

проц х или у = и.мя вещ; сели псп < .5 то х иначе у все;

ирон ncos = (цел i) вещ: cos <2Х пиХ i/n); ___

проц nsin = (цел i) веш sin (2ХпиХ i/n); '’"*•'’

Прои финиш = пуст: на стоп;

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

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

прннстон: Гренобль: сен пьерде шартрез: коогвенк:

варшава: зандиоорт: амсгерлам: тирренин норт бераик: Мюнхен: финиш.}

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

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

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

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

„а”, ,.б”, ,.в”, „г”, л”, ,.е”. „ж”’. „з”. ..и", ,.й”. „Г", „к",. л", „м", „н”, „о”. ..п”. „р”. „с”, „т”, ..у”, „ф". .л”. ..и”. „ч”. „ш”, ..т”. „ь". .лГ\,.ь‘\ „э". „ю”. .л”. „(",„)":.

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

„А”, ..Б”, „В", „Г". JT\ „Е”, „Ж", „3". ..И", „Й". ..К”, Л", Ж. „Н”, „О”. „II”. .)"’. „С" „Т”, „У”. „Ф", „X”, „Ц”. „Ч", „Ш". ,.Ш”. л?’*. „Ы". „Ь”. „Э". ..Ю”. Л”. „О” „1”, ,.2”. .3”. .,4". ..5", ..6”. „7". „В". ..9"..,?". р».

(iii) ..прочие синтаксические знаки”, изображаемые в данном стандарте как .. . " („точка”),„ ,” („запятая”). „ : ”'(„двоеточие"),„; ” („точка с запятой"), ,.' ’'(„апостроф”),,, . ” (,дефис") и „• " (..звездочка”) Ь) ..Про го понятие" есть возможно пустая последовательность малых синтаксических знаков.

с) „Понятие"" есть Снеп устое } прото понятие, для которого можно вывести £1.1.3.2.3, J . 1.3.4 .d) порождающее правило.

d) „Метзпонятие” есть € не пустая) последовательность больших синтаксических знаков, для которой задано или получено £1Л.ЗЗл) какое-нибудь метаправило.

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

6

ГОСТ 27974-MCJ

{Таким Образом, приюпонжия (Ь) образуют подкласс класса гиперпо питий. Гиперпонятия использую! в метаправилах (J 1.3.3), в гиперправилах (1.1.3 4), я качестве парвионятий (1.1.4.2), а также сами по себе, чтобы „обозначать” определенные классы протопонятий (1.1.4 1) .}

{„Парапонятие” есть гип-ерпонятис, к которому Применяют определенные специальные соглашения и интерпретации, как разъяснено в 1.1.4.23 f) ..Символ”есть протопонятие, начинающееся с символ'. {Каждое па-рапонятие символ (9 1.1 h) обозначает конкретное вхождение такого протопон ятня.}

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

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

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

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

(iv) Вес остальные гиперпонитня. {включая врототгонятия.} нс рассмотренные выше, заключают в апострофы {. чтобы указать, что они обозначают некоторое протонами тис. как это определяется в I 1.4 I.а} (v) Особенности типографскою набора, такие, как пробел, перенос, переход на новую строчку или страницу, во внимание не принимают (см.. однако, 9.4 4).

{Примеры:

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

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

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

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

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

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

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

7

С.6 ГОСТ 27974-88

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

непустою протопонятия N, двоеточия;

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

точки.

Такое правило называют порождающим правилом .для” {этого поня-гия (IЛ3.1.с) ?N

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

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

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

(•) понятие < к тогда ею можно натаан продуктивным или нетерминальным?. либо

(.И? символ {.который терминален}, либо

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

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

{Например, звено 'изображение имени вещественного’ (, выводимое из гиперправила8.0.1.а.) является тупиком.}

{Примеры;

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

степень десяти. (8.1.2.1.g) •

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

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

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

(8.I.2.I.M

с) запись десятичного основания, степень десяти • символ на деся ть в степени • символ буква е либо символ буква е лат

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

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

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

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

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

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

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

8

ГОСТ 27974-88 С. 7

• берегся копия N:

• к лой копии присоединяется последовательность деревьев порождения, называемых „прямыми наследниками" дерена Т. порожденных для кэждф-го непустого звена какой-то Годной} альтернативы А правила Р: порядок •{деревьев в> этой последовательности совпадает с порядком указанных звеньев в А;

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

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

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

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

из одного символа, является этот символ {Пример:

порядок

, ( запись

десятичного основании'

стелем ь десяти'

возможные

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

натуральное число ‘

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

□«плечная

яифуя’

'цифра нуль'

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

символ

плюс

символ

цифра нуль'

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

—^

поел ело мт ел ьм о ст ь

ЛССЯТМЯНЫХ цифр'

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

цифра дал

символ

цифра доз' }

С.8 ГОС Т 27974-88

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

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

(Синтаксис строгого языка был выбран так. чтобы данная последовательность символов, являющаяся герминальным порождением какого-то понятия, была таковой в силу существования либо единственного дерева порождения, либо некоторого множества деревьев порождения, оглн-чающихся друг от друга лишь настолько* чтобы исходы их исполнения были одинаковыми (например, деревья порождения, выводимые из правил $.2.Ее (уравнивание). L.El.d.e (предикаты) иб.7.Еа.Ь (выбор способа выписывания вида для приводимого, которое должно опустошаться); (см также 2.2.2.а) .

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

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

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

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

I и '

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

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

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

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

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

10

ГОСТ 279741-88 С.9

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

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

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

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

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

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

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

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

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

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

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

точки.

Такое метаправило называют метаправилом „для” {этого ме«июняi ия (1.1.3.14 }М.

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

{Примеры:

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

’РАЗМЕРНОЕ вещественное, fl.2.1.С) •

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

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

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

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

и

с.10 ГОСТ 27974-88

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

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

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

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

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

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

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

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

двоеточия:

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

точки

Такое правило мз тына ни г иперправилом ,ляя" {этого гипервюнятия (1 I 3 Т е)} Н

с) Всякая .jhim; рапы ериатива" есть непустая гюсделовагелыюсть г игтср понятий, разделенных занятыми.

{Примеры:

Ъ) последовательность I Ю11ЯТИЙ

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

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

d) Порождающее правило PR { 1 1.3.2 Ь} вы по ли гея из некоторого ги-периравила HR. если копию HR можно преобразовать в копию {приведен-ной формы} лого PR . применяя ..согласованную подстановку" <е} к множеству всех {приведенных форм} гиперпонятий указанной копим HR

с) Множества {одного иди большею числа} протопонятий РР получа юг. применяя „согласованную подстановку" к соответ вующему множе ст ну гипертюнятий НН. если копнят НН можно преобразовать в копию {при веденной V- эмые РР.^зи ло.м-.-.ия ..сдунннс-то щщ;»:

V

ГОСТ 27974-38 C.ll

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(ii) опускаются все точки и последняя I, а 10 заменяют на А, например, ,.8.2.1.а” входит но вес остальные пункты как ..82а". а „103.4 !.Ы" входит а виде A34J i”,

13

C.J2 ГОСТ 27974-88

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

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

Семантики определяет ..смысл" программ <22.1 а} в строгом языке с помоптмо предложений Снехоторого формализованного естественного языка}. устанаи/швакниих, какие .действия" должны приводить во время ..лс-полнения” <2.1.4.13- этих программ. „Смысл” программы в языке представления - это смысл прог раммы в строгом языке, которую она представляет <93 }.

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

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

а) Н.«худящиеся в тексте данного стандарта гиперпомя тмя. кроме слу--иев. когда они входят в пгперправнла <1.1.3 4.Ъ} или метаправила < 1.1 ЗЗ-Ь}, „обозначают’’ любые протопонятия, которые можно получить, применяя к ним согласованную подстановку <1.13.4.с}; согласованную подстановку применяют ко всем гилерпонятлям, содержащимся в каждом законченном отрывке текста (это или отрывок, выделяемый буквой со скобкой, если такой есть, юти же иумерованлый раздел целиком) .

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

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

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

ГОСТ 27974-88 С. 1J

с) Прогоионятие 1*2, будучи проюдонягисм. обозначаемым гиперпоня-тисы 112, „заложено’* в лротопомягие Pl. -если 1’2 или какой-нибудь его эквивалент £2.1 1.2 а} содержится ЧЬЭ на некотором месте в PI. но нс содержится ии на каком месте в любом другом {промежуточном} ирогопи-НЯГим РЗ, также содержаще мен в 1’1 и таком, что Н2 может обозначить и эго РЗ.

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

1.1.4,2. Парапонятия.

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

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

• рассматриваемое как гиперионягие {.те. как если бы оно было заключено в апострофы.}Робозначает {1.1 4.1 а} некоторую ..абстракцию” {Ь} прообраза О.

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

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

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

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

Ь) Протопо-нятие В2 есть „абстракция" лротогтонятия FI. если

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

15

C.I4 ГОСТ 2 79 74 -88

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

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

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

(in) 1’2 эквивалентно {2.1 1.2.а}Р)

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

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

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

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

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

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

d) Если два «арапонятия Р и Q обозначают два конструкта S н Т coot-ВСТСТВеНШО, ГО Р называют „составляющим” Q, если S - наследник Т ине! такого Сяромежу точного конструкта} С, что

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

16

ГОСТ 27974. &8 С. 15

(ii} V наследник Т и

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

{Так например, а (S3) это составляющий операнд формулы аХ (b + 2t(i + j)) (Т),з b (S2) нет. поскольку это наследник промежуточной формул».! b +■ 21 (i + j) (U) . которая сама есть наследник Т Аналогично (b * 2Т (i + j)) составлявшеезамкнутое-предложеннеформулы Т, а зам-кнутое-предложенис (i + j) - нет, поскольку это наследник про муже точного Замкнутого •предложения. Однако (i + j) - составляющее замкнутое* преддожение-выдающее-целое формулы Т, гак как указанное промежуточное замкнутое-предпожение фактически является замкнуты м-Предложе-нием-выдающнм-вещественнае.

формула

ах (b+2l(i +j))

операнд а

операнд (Ь*2» (ITJ))

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

(Ь+2т C + j))

формула b* 2Т (Ё+й

операнд Ь

операнд 2’ (•*» ,

формула

операнд 2

операнд «*»

замниутос-прсоложсние (.вьишошсе-исл ое} (i«-j> >

с. 16 ГОСТ 27974-SB

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

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

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

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

с) „Осмысленная" программа это программа <2.2 I.а}, исполнение которой определено настоящим стандартом

1.2. О 6 ши с метаправила

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

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

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

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

0) ■’РАЗМЕРНОЕ :: алию юс ’ДЛИННОЕ; короткое ’КОРОТКОЕ. ПУСТО.

••) ’ДЛИННОЕ :: длинное .'ДЛИННОЕ; ПУСТО.

') ’КОРОГКОЕ;: коротка’КОРОТКОЕ; ПУСТО

Л ПУСТО::.

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

О 'ПОЛЯ :: ПОЛЕ; ’ПОЛЯ ПОЛЕ.

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

О •’ПОДВИЖНОЕ :: подвижное; ПУСТО.

О МАССИВ :: вектор; М АССИИ векторов.

М) ИМЯ ;:ммя: временное имя.

А ) ПРОЦЕДУРА :: «роцецурз ?11 АРАМЫ РИЗОВАН ПАЯ вырабатывающая ЗНАЧЕНИЕ.

О) ’ПАРАМЕТРИЗОВАННАЯ .; cl ПАРАМЕТРАМИ; ПУСТО-

’) 'ПАНАМЕIРЫ :: ПАРАМЕТР; ’ПАРАМЕТРЫ ПАРАМЕТР.

Q) ПАРАМЕТР :: нарэметр айда В-ИД.

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

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

। ’ОБЫЧНЫЕ "ОБЫЧНОЕ; ЮБЫЧНЫЕ ОБЫЧНОЕ.

J) ОБЫЧНОЕ ПРОСТОЕ; СОСТАВНОЕ; имя ВИДА; ПРОЦЕДУРА;

пустое значение.

ГОСТ 27974 -88 С.17

V) ЦИ::шсНОМЕР.

W) НОМЕР : I: НОМЕР.

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

Л» ЗАКРЫТО! :: Имкнугоо; «ьви«гн<М1 параллельное-. ВЫБИРАЮЩЕЕ {Л^Д^' циклическое

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

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

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

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

В) СЛОЙ новые .’ОПИСАНИЯ ’МЕТКИ

С) ■’ОПИСАНИЯ ! ОПИСАНИЯ: ПУСТО.

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

£) ОПИСАНИЕ :: СЛОВО 4 942А) для ВИДА: ИНФИКС 4*42Г> для приорита ПРИОРИТЕТ; ИНДИКАНТ {942D} для ЗНАЧЕНИЯ НОМЕР, ИНФИКС 4942F)-дня ДВУМЕСТНОЙ: ПРЕФИКС 4942К} для ОДНОМЕСТНОЙ.

Г) ПРИОРИТЕТ :; I; II; III; Illi: ill II; ПИН. Ill Illi: III HI II; III III III С) ОДНОМЕСТНАЯ :: процедура с ПАРАМЕТРОМ нырабатыпаюшан ЗНА

ЧЕНИЕ

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

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

J) !МЕТКИ МЕТКА, 1МЕТКИ МЕТКА.

К) МЕТКА СЛОВО 4942А} для метки.

) .3. Общие гипсрправила

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

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

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

В) ЛИТЕРА :: а; б в; г; д: е; ж; з; и; й; к; п-, м; и; о; п; р; с; т; у;

ф; х; и; ч; ш; Ш; ъ; Ы; ь; ?; ю; я; | .

С) ’ПОНЯТИЕ :: ПОНЯТИЕ, ПУСТО

D) УТВЕРЖДЕНИЕ :: ПОНЯТИЕ; (ЛЮНЯТИЕ) '’ПОНЯТИЕ?;

УТВЕРЖДЕНИЕ (•’ПОНЯТИЕ I) ЛЮНЯТИЕЗ.

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

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

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

с) если УТВЕРЖДЕНИЕ I и УТВЕРЖДЕНИЕ?:

если УТВЕРЖДЕНИЕ!, «ли УТВЕРЖДЕНИЕ?.

19

€.18 ГОСТ 27974-88

<1) если УТВЕРЖДЕНИЕ! или УТВЕРЖДЕНИЕ!: если УТВЕРЖДЕНИЕ]; если УТВЕРЖДЕНИЕ!.

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

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

g) ЕСЛИ (7ПОНЯ ГИЫ) есть ^ПОНЯТИЕ!) :

ЕСЛИ (’ПОНЯТИЕ!) изминается с (’ПОНЯТИЯ!) {h, i,j}

и (’ПОНЯТИЕ!) начинается с (’ПОНЯТИЯ]) {h. i. j}

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

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

i) ЕСЛИ (’ПОНЯТИЕ) начинается с (ПУСТО) {gjl:

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

j) ЕСЛИ (ЛИТЕРА! ’ПОНЯТИЕ!) начинается с (ЛИТЕРЫ’ ’ПОНЯТИЯ!) {g. у, пт}:

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

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

если (ПОНЯТИЕ) содержит (ЛИТЕРУ! 7П0ИЯТИЕ ЛИТЕРУ!) Ст) или (ПОНЯТИЕ) содержит (ЛИТЕРУ! ’ПОНЯТИЕ ЛИТЕРУ!) {mJ. m) ЕСЛИ (ЛИТЕРА .’ПОНЯТИЕ) содержит (ПОНЯТИЕ) ТЕ mJ-

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

п) ЕСЛИ (ПУСТО) содержит (ПОНЯТИЕ) {т}:

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

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

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

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

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

20

ГОСТ 2 7974-88 С.L9

сспи (»6j есть (аб)'

'если (аб) начинается с {аб) и (аб) начинается с (аб) '

• I

'вши (об) начинается с (аб)' 'сеян (аб* начинается с (вб)

((ляле* одинаково

с левой ветвью)

'если (а) совпадает с (а) и (абв. нН

и (в) начинается с (б)' ।

«ели (а) совладает с (а) в (абв я!)

'если истина если 46) начинается с (б)

'если (Б) совпадает с (6) в (*6»->П'

'если истина' сели ( ) начинается с ( 1*

если истина'

Если предикат выполняется, го его .черево порождения всегда оканчивается на 'если истина' или 'если неверно что ложь'. Если он не выполняется, тс» тупиками обычно оказываются 'если ложь и 'если неверно что исти-на"- Хотя дочти все соответствующие типерлравила написаны алн типе рпо-нятий, начинающихся; с „ЕСЛИ” и потому каждый раз обеспечивают порождающие правила для пары предикатов типа ‘сели УТВЕРЖДЕНИЕ Г и если неверно.что УТВЕРЖДЕНИЕ Г. это нс значит, что в каждом гаком случае должен выполняться какой-то один из этой пары предикатов. Например, предикат 'если цифра четыре считает ИГ {4.3.Ес} нс выполняется, но нс приняты никакие меры дня того, чтобы выполнялся предикат 'если неверно что иифра четыре считает 111’, поскольку в настоящем стандарте ом нс применяется

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

13.3 Синтаксис общих конс трукции

А) ОФОРМЛЕННОЕ ;; краткое; выделенное; стиля НОМЕР а) возможное ПОНЯТИЕ : ПОНЯТИЕ; ПУСТО-

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

с) список ПОНЯТИЙ {и! : ПОНЯТИЕ; ПОНЯТИЕ, знак a ик^с {94(}. список ПОНЯТИЙ СсЪ

С. 30 ГОС! 27 974-68

d) упакованное ОФОРМЛЕННОЕ ’ПОНЯТИЕ ; знак начало ОФОРМЛЕННЫЙ <94f, -}.?ПОНЯ ГИЕ,знак конец ОФОРМЛЕННЫЙ <94f, ■}.

е) индексирующее ОФОРМЛЕННОЕ ПОНЯТИЕ . знак открыть индексы ОФОРМЛЕННЫЙ <94f. }. ПОНЯТИЕ, знак закрыть индексы ОФОРМ ЛЕННЫЙ {94f,J.

f) УТВЕРЖДЕНИЕ! либо УТВЕРЖДЕНИЕ2: УТВЕРЖДЕНИЕ!; УТВЕРЖДЕНИЮ.

■{Из этою синтаксиса прямо следует, что имеются такие порождающие привяла, как

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

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

(которое используют в порождении примера в I U.2.f. но для которого больше ист никакого явного порождающего правила) Таким образом уменьшено число гшгерлрзвшд фактически выписанных в настоящем саан дартс, а оставшиеся, стали нагляднее, гак как мм общие конструкции выписаны словами, позволяющими предположить, какими должны быть их по-рождении

По той же причине ссылки (U.JA.f) на эти правила заменены более со-де раса тельным и ссылками; например, вместо „последовательное ть десятичных цифр £133Ь}” в 8.1.1.1b дано более содержательное „последовательность десятичных цифр {с>" Кроме того, ссыпки внутри самих общих конструкций ограничены необходимым минимумом ?

2. ВЫЧИС ЛИТЕЛЬ И ПРОГРАММА

Смысл программы в строгом языке объясняют в терминах гипотетического вычислителя, который осуществляет множество действий <2.1-0, составляющих исполнение {2.1 4 1} пой программы. Вычислитель работает с некоторым множеством „объектов” <2.1.1}.

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

2.1.1. Объекты

..Объект” является или конструктом <1.1.3.2.eh или „значением" <2,1.l.J.a}. или ..участком** <2.1 I.l b}, или ..окружением” £2.1 1.1 с>. или ..сиеной” <2.1.11 .d}.

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

2.1.1.1, Значения, участки, окружения и сиены

а.) Вся кое ..значение"’является или „простым значением” <2.13.1}.или

22

I (НТ 2797 4 -88 C.21

„именем” {2.1.3_2> , или „.составным значением" (т.е. „структурой {2.1.3.3]-или „массивом" {2.1.3.4}), или „процедурой" {2.1.3.5}-.

Ь) Всякий „участок” {есть Ш1учренним объект. ю>1ормй} соотвеге^^ ет каким-то '70ПИСАНИЯМ 2МЕТКАМ* {1.2.3.C.I} „Незанятый участок” - эю участок, для которого '20ПИСАНИЯ "МЕТКИ’есть 'ПУСТО'.

{Каждое 'ОБОЗНАЧЕНИЕ для ПРИЗНАКА' (4.8.1 .P.G) , заложенное з данные '’ОПИСАНИЯ '.'МЕТКИ1, соогвегсгвуст определяю!цему-ОБО-ЗНАЧЕНИЕ нндикаюру выдаюшему-ИРИЗНгУК (т.е. какому-нибудь имен-индикатору, обозначению-операции или и ялика гору-вида), описанному в конструкте, исполнение которого вызвало создание данного участка. Ука-заниос 'ОБОЗНАЧЕНИЕ для ПРИЗНАКА' может „получить доступ" к какому-то значению или сиене „внутри” этого участка (2.1.2х).

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

{Вес герминальные мстапорожденин мета понятий „ОПИСАНИЕ". „МЕТКА” и „ПОЛЕ" (. или включающее их. и чаще употребляемое мута-понятие ,,ПАРА”5 имеют форму ‘ОБОЗНАЧЕНИЕ для ПРИЗНАКА'. Обозначаемые 'ПАРАМИ' „свойства” применяю! в синтаксисе и семантике, чтобы в конкретной ситуации связывать с таким 'ОБОЗНАЧЕНИЕМ’ определенный признак.}

с) Всякое ..окружение” или пусто, или составлено из {какого-либо другого} окружения и некоторого участка

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

d) Всякая „сцена" S есть объект, составленный из конструкта С {1.1.3 2.е} и окружения Е. С называется конструктом, а Е окружением „этого” S {или окружением „и ” 3}

{Доступ к сценам внутри участков (2.1.2 .с) осуществляв юн через МЕТКУ' или 'ОПИСАНИЕ', возникающие из идеи гификаторон-выдаюших-мстку или инддкагоров-вида; сцены могут также быть значениями (2.1.5з)>

2.1.1.2. Виды.

{Каждое значение имеет атрибут, называемый его ..видом”. Он определяет, как эю значение связано с другими значениями и какие с ним можно производить действия. Этот атрибут описываю! или. точнее, „выписывают” посредством какого-нибудь’ЗНАЧЕНИЯ’ (1,2.1 .R) (; например, существует вид, выписываемый как 'вещественное', и вид. выписываемый- как 'структура содержащая букву эр дат букву е лат для выборки вещественного булеву и лат букву эм лат для выборки вещественного в себе'). Поскольку преследуется цель, чтобы виды, специфицируемые индикаторами-вила а и Ь в

вид а =ст (имя а Ь),

вид b =ci (имя ст (имя b b) Ь

факгичехки были одинаковыми, го необходимо, чтобы как ’ЗНАЧЕ’ (ИЗ

25

С.22 ГОСТ 27974-Я8

'ни! определение структуры

содержащей букву бе лат для

выборки имени использования ни 1 и себе*.

гак и 'ЗНАЧЕНИЕ1

'ни IIопределение структуры содержащей букву бе лат дли выборки имени структуры содержащей букву бе лат для выборки имен» использования ци 11 в себе в себе'

(а на самом деле и многие другие) были возможными выписываниями од-иото н юге же вида Аналогично специфицируемый- описателем об (пел, нети) вил можно выписать как 'объединение целою нешественного в<клицо', так и объединение вещественного целого воедино'. Вее протопонязия 'ЗНАЧЕНИЕ', выписывающие один и тот же вид. называются „эквивалентными” (а).

Некоторые прогопонятия 'ЗНАЧЕНИЕ', такие, как 'имя использования ИЯ III . ИМЯ ИИ III I -определении Имени Использовании ни III 1\ 'объединение вещественного имени вещественного воедино1 и 'структура содержащая букву а для выборки целою букву а для выборки веществе иного в себе', не являются правильно построенными (7.4.4.7. l.f, 4.8 J.c) и нс выписывают никакого вида.

Хотя для большинства практических применений ..вид” можно рассматривать просто как 'ЗНАЧЕНИЕ*, его строгое определение включает целый класс прОголонятий ‘ЗНАЧЕНИЕ', эквивалентных друт Другу, и любое из мик может описывать этот вил.}

а) 'ЗНАЧЕНИЕ' { 1 2.1 .R/ „эквивалентно ^ 'ЗНАЧЕНИЮ?', если выполняется <13.2} предикат 'если ЗНАЧЕНИЕ! эквивалентно ЗНАЧЕНИЮ' <7.3.1.а}.

{Правильно построенное 'ЗНАЧЕНИЕ' всегда эквивалентно самому себе; 'объединение целого вещественного воедино’ эквивалентно 'объединению вещественного целого воедино'.}

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

Шаг: Если Рс нс совпадает с Qc. некоторое 'ЗНАЧЕНИЕ!', содержащееся в Рс, нг» не содержащееся ми в каком {большем} ’ЗНАЧЕНИИ?', содержащемся в Рс. заменяют некоторым эквивалентным ему 'ЗНАЧЕНИЕМ ' и этот Шаг предпринимают снова.

{Таким образом, ‘идентификатор выдающий объединение целого вещественного воедино' эквивалентен идентификатору выдающему объединение вещественного целого воедино' }

Ь) Всякий „вид” есть такой класс С прото-понятий 'ЗНАЧЕНИЕ', что каждый его элемент эквивалентен {а} каждому другому его элементу, а также <, чтобы обеспечить правильность построения}, самому себе, но не эквивалентен никакому ‘ЗН АЧЕ1ШЕЛ', не принадлежащему С.

24

ГОСТ 27974-8а С.23

■СОднако если эквивалентность видов специально нс обсуждается. можно говорить о виде просто как о терминальном метапорожденми „ЗНАЧЕНИЯ" в силу сокращения, которое будет дано в 2.1.5 f.}

с) Каждое значение имеет один конкретный вид.

{Например, видом значения 3.14 является '■вещественное' Не существует. однако, значений, вид которых начинается с объединение', ‘временное имя' или 'подвижный МАССИ В из' (см. 2.1.3.6) }

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

{Значение V может ..именовать" (2.1.2.е) другой внутренний объект О или быть составлено из (2.1.1.l.d) него (.например, имя может именовать значение, а такая сцена, как процедура, частично составлена из окружения). Далее, время жизни ячеек памяти, содержащих (2.Е3.2э) этот объект О или используемых в связи с ним (2 1.1.) Ь). может -оказаться ограниченным С. поскольку спустя некоторое время они могут обновиться), и потому нельзя, чтобы V сохранялось дольше этого времени жизни, так как иначе можно было бы попытаться достичь через V какую-то уже нс сущшруюигую ячейку памяти. Чтобы выразить ио ограничение, юво рят. что если V должно быть „присвоено” ($.1,2.1 Ь) какому-нибудь имени "W. ю „область действия" * не должна быть „старше" области действия V Таким образом, область действия значения V есть мера возраста указанных ячеек памяти и. следовательно, их времени жизни.}

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

Ь) Каждое окружение имеет одну определенную „область действия” {Область действия каждого окружения „младше'’ (2.1.2 0 области действия того окружения, из которого оно составлено (2.1 l.J.c).}

{Нс следует смешивать область действия окружения с областями действия значений, доступных внутри его участка. Область действия окружения предпочтительно используют при определении области действия спел, для которых оно необходимо (7.2.2.с), или области действия выдачи генераторов, для которых оно является „локализующим” (5.2 3 2.Ь>. Область действия окружения определяют относительно (2.1 2.f) области действия некоторого другого окружения, так что создаются иерархии областей действия, в конечном счете зависящие от области действия первичного окружения (2 2.2.а) }

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

а) Соотношения либо „постоянны", т.е. не зависят от данной про» рам мы и се исполнения, либо под влиянием некоторых действий могут становиться „справедливыми” или „несправедливыми”. Кроме того, соотношения могут быть „транзитивными" , т.с. если „*” — такое -соотношение и А*В и В’С оба справедливы, то справедливо и А*С.

Ь) ..Быть выдачей" есть соотношение между значением и действием, а именно исполнением сцены. Данное соотношение становится справедливым по завершении этого исполнения {2.1.4.1.Ь}.

25

С.24 ГОСТ 27974 - 88

с) ..Иметь доступ" есть соотношение между 'ПАРОЙ' £4.8.1 .Е} и значением млн сценой V; око может быть справедливым ..внутри’” определенного участка L £, в ?ОПИЕаиид ’’МЕТКИ' которого заложена эта ПАРА’} Данное соотношение становится справедливым, когда ла 'ПАРА'’ „получает доступ” к V внутри L 0.5.2. Шаг 4, 4.8.2.а}, и тогда оно будет справедливым внутри L между любой 'ПАРОЙГ. эквивалентной <2.1.1.2.3? ЭТОЙ 'ПАРЕ', и V

d) Постоянные соотношения между значениями: „быть того же вида, что и*" <2.1 1.2.с>. „быть меньше’-. ..быть обобщаемым до”, „быть удлиняемым до" <2.1,3. Ее} и „быть эквивалентным" {2 IJ.l.gK Если одно из них вообше определено для данной пары значений, то оно справедливо или несипавсдчино постоянно. Все эти соотношения транзитивны.

с) ..Именовать” сеть соотношение между „именем" £2.1.5.2.a} N и каким-нибудь другим значением. Данное соотношение становится справедливым, когда N ..начинает именовать" это значение, и перестает быть справедливым, гогла N начинает именовать другое значение.

О Существуют Три транзитивных соотношения между областями действия, а именно область действия А {2 J.IJJ может быть либо „младше”, либо „такая же. как и", либо „старше” области действия В. Если А младше В. то В старше А. и обратно. Если А такая же, как и В, го А не старше и нс младше В {; обратное нс обязательно справедливо, гак как для некоторых пар областей действия соответствующее соотношение может быть не определено вообще}.

g) „быть полименты” есть соотношение между именем и „составным именем" £2.13.2.Ь}. Данное соотношение становится справедливым, когда, это составное имя „снабжается подымсием” {2.1 3.3 е. 2.1.3.4.g} или „генерируется" £2.1.3.4.j, I}; оно остается справедливым до тех пор. пока составное имя не будет снабжено другим множеством подымем

2.1.3 'Значения

2.1.3.1. Простые значения .

а> Всякое простое значение является либо ,,арифметическим значением4*. те. „целым числом" или ..вешеезиенным числом”, либо „истинностным значением” f , либо унтером" g . либо „пустым значением" h .

b) Всякое арифметическое значение имеет „размер”, т.е целое число, характеризующее степень различия, с которой это значение сохраняется & вычислителе.

с) Видом целого или вещественного числа размера п является некоторое ’’РАЗМЕРНОЕ целое' или ’’РАЗМЕРНОЕ вещественное' соответствен-ио; при лом если п положительно Нравно нулю, отрицательно), то эго '■’РАЗМЕРНОЕ' есть повторенное п раз 'длинное' (пусто, повторенное - л раз 'короткое') .

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

26

КХЛ ’ 27974-38 CJ3

ных чисел соответственно <10.2.1 л. b, d, е). после чего око остается постоянным.

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

чгю ариф-метические значения обладают следующими свойства ми:

для каждой лары целых чисел или вещественных чисел одинакового размера определено соотношение „быть меньше” в его обычном математическом смысле < 10.23.3л. Ю.2.3.4.а};

для каждой пары целых чисел одинакового размера может суще сгвовагь отличимое от них третье число того же размера: первое целое

числю ..минус” второе <IO.2.3.3.gh

• для каждом пары вещественных чисел одинакового размера могут существовать три различимых вещественных числа ЮЮ же размера первое вещественное число ,.минус” („умноженное на”, „деленное на") второе число < 10.2.3-4_g, I, т).

• данные термины „минус”, „умножить на” и „разделить на" имеют их обычный математический смысл с той лить разницей, что в случае вещественных чисел результаты таких действий получаются „в смысле численного анализа”, т.с. действия осуществляются над числами, слегка отклоняющимися от заданных С; это отклонение оставлено в данном стандарте неопределенным);

• каждое целое число данного размера „обобщаемо" до некоторого близкою к нему вещественного числа того же размера {6.5),

• каждое целое (вещественное) число данного размера может быть „удлинено до” некоторого близкого к нему целого (вещественного) числа, имеющего на единицу больший! размер {|0.2.3.3.q. 10 2.3.4.п) f) Всякое .«истинностное значение” есть или „ИСТИНА", или „ЛОЖЬ".

Ею видом является 'логическое*.

gl Каждая .литера" „эквивалентна” некоторому неотрицательному целому числу размера нуль - ее ..целочисленному эквиваленту” <10.2 l.nh это соотношение определено только в тюй степени, что разные литеры имеют разные целочисленные эквиваленты и существует „наибольший цело-численный эквивалент" {10.2.1.р} . Видом литеры является *лигорное'.

10 Единственное „пустое значение" есть „пустое". Его видом является ’пустое значение*.

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

i) Областью действия всякого простого значения является область действия первичного окружения <2.2.2л>.

2.1.3.2. Имена.

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

27

С.26 ГОСТ 27974-as

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

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

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

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

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

d) Если N - составное имя. именующее структуру (массив) V <2 13 3. 21,3.4}. и какое-то его подыми {2.12.g}. выбираемое {2.1 З.З.с. 2 1.3 4 g} по 'СЛОВУ' (индексу) 1, начинает именовать {новое} значение X. то N начинает именовать структуру (массив). отличающуюся or V только своим полем (элементом), выбираемым по I, которое {стало теперь} эти м X.

{Относительно вида подыманием. 2.1.3.3.d и 2.1_3.4.f}

2.1.3.3. Структуры.

а) Всякая ..структура'" составлена из последовательности других значений ее „полей". каждое из хоторы х „выбирается " {Ь } по определенному 'СЛОВУ' £9.4 2.1 .Л) {О выборке поля по указателю-поля см. 2.1 .5.g.}

{Упорядоченность полей структуры используется в семантике записсй-струкгуры (Э.3.2.Ь). текстов формата (10.3.4) и в- выстраивании (I0J .23.с>.}

Ь) Видом структуры V является некоторая 'структура содержащая •ПОЛЯ в себе'. Если заложенное в эти ‘ИЮЛЯ’ n-е 'ПОЛЕ' есть некоторое 'СЛОВО для выборки ВИДА', то это n-е поле значения V „выбирается" по данному 'СЛОВУ' и приемлемо для {2.1.3.64} данного 'ВИДА'.

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

d) Если вид имени N {. именующего какую-то структуру.} есть леко-tbpoe 'имя структуры содержащей 'ПОЛЯ в себе' и выполняется предикат 'если СЛОВО для выборки ВИДА находится в ’ПОЛЯХ' £7.2.1 Ь.с}.то вн-

28

ГОСТ 27974-88 С.27

дом выбираемого {е} по этому 'СЛОВУ' подымсни данною N является ’имя ВИДА'.

е) Когда имя N, именующее структуру V,,.снабжается подымензми” {е, 2.L.3.4.g, 4.4 2.Ь. 5.2.3.2.а}, тогда для каждою 'СЛОВА', выбирающего пояс F в V:

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

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

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

• если М - составное имя {2.1.3,2.Ь}. го оно само снабжается ПОДЫ-менами { е, 2.1.5 4.g}

2.3.3.4. Массивы.

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

Ь) „Паспорт” имеет форму

COnU,), (h,uj).....(ln,Um)).

где каждая пара (lj , Uj), i = 1, —, n, является целочисленной „граничной парой*’, в которой 1| есть i-я „нижняя граница”, a Ujесть i-н „верхляя граница".

с) Если Uj < 1, для некоторого i, i “ 1,.... п. то паспорт называется ..вырожденным" н существует единственный элемент массива, называемый „скрытым элементом" {и нс выбираемый ни по какому индексу; см.также 5 2.1.2.Ь}; в Противном случае число элементов равно

(и, - 1| ♦ 1) X (иг - 1, ♦ 1) X ... X (un — ln +- 1) и каждый из них выбирается по определенному индексу (г,,.... тп). где li £ г, <Tii, i = 1.....n.

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

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

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

f) Массив вила ’МАССИВ из ВИДА' может именоваться либо .именем; подвижного” с видом 'имя подвижного МАССИВА из ВЦДАГ, либо ..именем фиксированного" с видо-м 'имя МАССИВА из ВИДА!', где {в обоих случаях} .ВИД' ..фиксирует” {2.1.3.6.Ь} 'ВИДГ.

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

29

C.2S Г(ХТ2 79?4 88

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

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

g) Когда имя N, имену-юшее массив V, „снабжается подымснами” {g, 2.13,3 с, 44.2.1), 5.2.1.2 b-. 5.2.3.2 .а?, тогда для каждого индекса, выбирающего элемент Е в V;

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

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

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

• если М составное имя {2.L.3 2.Ь}, то оно само снабжается полы-менами <g,2.l.33.e}

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

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

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

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

• Пусть Т состоит из целых чисел и троек Tj, j = I, ...» п, пт из которых фактически являются тройками; пусть j-я тройка есть Ц. Uj. dj). j = I,.... m,

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

<i) паспорта ((Ч - d,. u, - d»), (Ь - dj, Th - d:X,.... (lm - dpi.

*Jm - dnj)):

<ii) элементов массива; V, причем выбираемым в W по индексу {Wi,.... wm ){|j - d3 < Wj < uj - dj} элементом.если он существует, будет элемент, выбираемый в V по индексу (Vj, .... vn). определяемому следующим образом:

Для i ® 1, ,.., п.

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

vi * L'«

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

• Vj = Wj * dj,

30

ГОСТ 27974-88 С.29

j) Имя М. „генерируемое” это отрезку Т из имени N. именующего массив V. есть имя {фиксированною. — не обязательно вновь созданное}-, имеющее ту же область действия, что и N. Имя М именует массив W, выбираемый {а} по Т в V. Каждое подыми этого М, выбираемое по индексу lw, является одним из выбираемых это некоторому индексу I, {уже существующих} подымем имени К. где каждый индекс lvопределяется по этому Г и соответствующему lw определенным и предыдущем подразделе методом.

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

(i) паспорта этого V и

(ii) выбираемых по данному 'СЛОВУ'в элементах этого V полей; причем выбираемым в W по некоторому индексу 1 элементом, если он су-шествует, будет выбираемое ню данному ’■СЛОВУ1 поле в том элементе массива V, который выбирается по индексу L

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

2. 13 5. Процедуры

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

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

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

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

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

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

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

Ь) Не существует значений, вид которых начинается с подвижное , но существуют имена подвижного, вид которых начинается с 'имя подвижного', например al в поди |l:nj веш al;. В данном случае al, видом которого

СЭЮ ГОСТ 27974-83

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

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

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

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

не являющаяся видом никакого значения, фиксируется

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

являющейся поэтому видом значения, которое может именоваться подвижным именем, имеющим вид

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

Этот последний вид уже есть вид имени и, следовательно, сто нельзя подвергнуть фиксации.!

с) {Не существует имен, вид которых начинается с 'временное имя',

„Временное имя” вила 'имя ВИДА' - эго выдача некоторой ФОРМЫ выдаюшей-врем-енное-имя ВИДА, но так как в настоящем языке неi описа телей-временмого нмени-ВИДА (4.6.1). то синтаксисом гарантируется, что никакое временное имя никогда не будет присвоено, приписано или выработано в результате вызова процедуры.

Например, хх ; =4! (ij не есть присваивание потому, что хх нс есть идеи-тификагор-выдакиний-имя-врсмснного-нмснк-всщсствснно-го. Временные имена возникают в вырезках, выборках из массива или при векторизации имен подвижного.!

d) Значение вида Ml „приемлемо для” вида М2, если

(i) Ml такой же, как и М2, или

(ii) М2 объединен из {а} М.1 {например, для специфицированного описателем об (вещ, цел) вида приемлемы значения, вид которых специфицируется либо вещ. либо цел}, или

(iii) Ml фиксирует {b} М2 {, например, для вида 'подвижный вектор из вещественных’’ (.для которого не существует значений,) приемлемы такие значения, как выдача, фактического-описателя поди [1 : nJ вещ, являющаяся значением вида 'векториз вещественных'}.

или

(iv) Ml - имя ВИДА’, а М2 — ‘временное имя ВИДА' {например, для вида ‘временное имя вещественного' приемлемы значения (как выдача вырезки al (i)), вид которых есп 'имя вещественного'}.

{См. 2.1.4.1 .Ь в связи с приемлемостью выдачи сиены.}

32

ГОСТ 2797*-88 С.31

2Л .4. Действия

2.1-4.! Исполнение.

а) „Исполнение” определенных сиен £. а именно тех. чьи кока рук isi обозначился определенными пара понятиями,} описывается в разделах настоящего стандарта, озаглавленных ..Семантика". 15 них задастся последовательность ..действий", которые надо провести в холе исполнения каждой закон сцены.

£ Примеры действий, которые могут ОПИСЫВАТЬСЯ

• сделать справедливыми как не-то соотношения.

• создать новые имена и

• исполнить другие сцены.}

„Смысл** сиены это эффект действий. проводимых в коде ее исполнения Любое из этих действий или любую их комбинацию можно заменить любым действием или комбинацией, вызывающими тот же зффикт

Ь) Исполнение сиены S может ..выдавать'*значение. Пели конструктом из S является ПОНЯТИЕ-вцд&ющес-ЗНДЧЕНИЕ. то выливаемое значение если не оговорено противное, {«мест такой вил. ’по оно} приемлемо для £2.1.3.6.61 этого 'ЗНАЧЕНИЯ'.

СЭто Правши) позволяет обсуждать выдачи в семантике без явного упоминания их вида.}

с) Если исполнение некоторого конструкта А в некотором окружении Е не описано явным способом, отличным от сказанного в лом пункте, и В единственный прямой наследник А. требующий исполнения Сем ниже}. то исполнение Л в Е состоят в исполнении В» Е.а выдача А, если таковая полагается, есть выдача этого В. если она существует £; такое автоматическое исполнение называется „црелысполнснисм" А в Е}_

Конструкт не требует исполнения, если он невидим £ I 1.3 2.h}. является символом £9.1.t h} или его исполнение не описано никаким способом в настоящем стандарте и ли один из его прямых наследников не требует исполнения.

£Например. исполнением ламкнугою-предложсния-выдаюшсго-имя-вс-тествеиного (3.1 1.а) (х:=3.14) является (,и выдает то же значение, что и) исполнение его составляющего последовательно! о-предложения-выдающе-го-имя-всшсс! венного (3 2.1.э) Х:гЗ.141

2.1 4,2. Последовательные и совместные действия.

а) Всякое действие может быть „неделимым”, ...последовательным’ или ..совместным”. Всякое последовательное или совместное действие со-стоит из одного или нескольких других действия, называемых его „лод-дейсгвиями”. Неделимое действие не состоит из других действия £; какие действия неделимы,оставлено настоящим стандартом не определенным}

Ь) „Наследным действием” другого действия В является поддейотвис либо В. либо- наследного действия В.

с) Действие А есть „наддейсгвие” действия В. если В - поддейетвис £а} для А.

d) Лодденствия всякого последовательного действия S выполняются

2- 1361

33

С.32 ГОСТ 27974 -В8

одно за другим: г.с. за завершением £2 1.4 З.с. d Оподлей сгви я для S иле i запуск -{2.1 4 .'.ь, с} следующего поддейсгвия окно S. если оно есть {Исполнение сцены, состоящее в общем случае из последовательности Дей-егьий, буле 1 тиклсаов-ательным действием.}

е) Паддейсгвия совместного действия совмещаются во времени; точнее, взбирается и доводится до конца одно из тех сто наследных неделимых дсйстний. которое в данный мо-мент ..активно” {2.1.4.3л}: и по его завершении <2Л.4.3.с} выбирается другое такое действие и т а. {вплоть до завершения их всех}.

Способ такою выбора, оставлен настоящим стандартом нс определенным. за тем лишь исключением, что если два действия {.совместные между собой,} названы „несовместимыми" £10.2.4} Друг с другом, то {они не должны совмещаться, т.е} ни одно из наследных неделимых действий одного из них {одно из них {. если оно само неделимо.}) «с должно выбираться, если другое {действие} активно в данный момент и одно или несколько. но не все из его наследных неделимых действий уже завершены.

0 Если одна или несколько сцен должны быть „исполнены совместно”, то это исполнение есть совместное действие, состоящее из {совместного} исполнения данных сиен.

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

а) Всякое действие либо „активно”, либо „неактивно". Действие ста-новотел активным, когда они „запускается" {Ь, с} или „возобновляется” <g}; действие становится неактивным, когда оно „завершается” {с, Ь}. ..прекращается" {е}. „приостанавливается” {f} или „прерывается" {h}

b) Когда последовательное действие „запускается”, запускается его первое подлействие. Когда „запускается” совместное действие, запускаются все ею полдействия.

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

d> Всякое последовательное действие ,.завершается ”. когда завершается его последнее поддейстпие. Всякое совместное действие „завершается”, коша завершены все сто подденет в ия.

с) Когда {последовательное или совместное} действие „прекращается", прекращаются все сю поддейсгвия {и, следовательно, вес сто наследные действия;} {после нею вместо него может запуститься другое действие Прекращение действия вызывается исполнением перехода (5.4 4.2) }

f) Когда действие „приостанавливается” приостанавливаются все сто поддействия {и. следовательно, все его активные наследные действия} {Действие может приостановиться в. течение „вызова" процедуры, выда пасмой обозначениемютаерании вниз (10.2.4.d), после чего оно может возобновиться впоследствии, во время вызова процедуры, выдаваемой обо значение мюперзции вверх (10.2.4а).} ।

Если в какой-то момент приосммавливэется некоторое jewelвне. ни являющееся наследным действием ..процесса" ..параллельною действия”-.

34

ГОСТ 27974 -88 С.ЗЗ

-t 10.2.41. у другого процесса (других процессов) которого продолжают су-шествовать активные наследные неделимые действия, то дальнейшее исполнение нс определено.

g) Когда действие А „возобновляется*', воэобновл яются его подлей ствия. приостановленные вследствие приостановки самого А.

h) Всякое действие может ..прерваться” событием, {например, ..переполнением”.} не определяемым семантикой настоящею стандарта, ио вызванным вычислителем, если ст о возможности {2 2.2 6} не позволяют обеспечить удовлетворительное исполнение. Кот да действие прерывается, прерываются все его поддействия н. возможно, его надасйсгвя я. {Возобновятся ли эти действия после прерывания, будут ли запушены другие действия или же окончится исполнение данной программы, настоящим стандартом оставлено не определенным.}

{Результат данных выше определений следующий*

В ходе исполнения программы (2.2.2.а) исполнение ее замкнутого-предложения в пустом первичном окружении активно. В любой данный мо МОНТ Исполнение одной сцены может вызвать исполнение другой едены или совместное исполнение нескольких других сцен. В том случае, когда исполнение этой другой сцены или еден завершится. Предпринимается следующий иит по исполнению первоначальной сцены и тл. до тех пор пока он в свою очередь не завершится.

Можно видеть, что все это аналогично обращению одной подпрограммы к другой - выполнение вызвавшей подпрограммы продолжается по завершении выполнения вызванной подпрограммы. Данные в настоящем стандарте семантические правила для исполнения различных параподятий соответствуют текстам таких подпрограмм; эти семантические правила могут даже в подходящих обстоятельствах рекурсивно вызывать сами себя (, но в каждом таком случае с различными конструктами или в различных окружениях.)

Таким образом, в каждый момент существует дерево активных действий, наследных (2.1.4.2.Ь) для исполнения данной программы.}

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

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

а) „А (этого) В" или ..А из В”, где А и В - паралонятня, заменяет фразу „А. которое есть прямой наследник {3.1.3.2.0 В'".

{Это позволяет сокращать „прямой наследник (конструкта)” до .его", „из”, „этого" или же просто употреблять форму родительного падежа*. например, i в присваивании (5.2.1.1а) в:=1 есть „его” получатель S иди i-Лол учитель „этого" присваивания, или даже 1-получатель присваивали i: = I); а го дремя как i не есть получатель последовагслыгого-гЕрелло-кения i:-: 1; j: ■ 2(,хотя ан составляющий получатель (l.l.4.3.d) этого гредложения) .}-

Ь) „С в Е”, где С - конструкт, а Е - окружение, заменяет фразу „сцс-

2*

35

С.34 ГОСТ 2797* 88

на. составленная <2.1 J.l.d} из С и Е”. Иногда она сокращается просто до „С", если ясно, о каком окружении идет речь

{Так как процесс исполнения (2.1.4-1.а) может применяться только к сменам, это сокращение чаше всего встречается в таких формах, как ..Пик лическос-прсдложсние С в окружении Е1 исполняется../* (3.5.2) или ..При* сванвание А исполняется...'” <5.2.1.2.4. где говорится об исполнении Л в любом подходящем окружении).}

с) ..Выдача (этого) S”. тле S - сцена, исполнение которой нс предписано явно, заменяет фразу ..выдача, получаемая в результате запуска исполнения сцены S. если дожидаться завершения этого исполнения”.

(Таким образом, высказывание (3.2.2.С) ..W есть выдача этой основы:*', (использующее также сокращение, определенное в b выше.) надо интерпретировать кок означающее

..Исполняется сиена, составленная из данной основы и того окружения, о котором идет речь: W является выдачей, подучаемой по завершении исполнения згой сиены;’*.}

d) ..Выдачи Sa.....Sn”; где S,. .... Sn - сиены, исполнение которых не предписано явно, заменяет фразу „выдачи, получаемые в результате запуска совместного исполнения {2.L4.2J? сцен S Sn> если дожидаться за вершения этого исполнения {, что предполагает завершение исполнения всех сиен?".

Если некоторые или все сцены S,, ..., Sn описаны как определенные составляющие какого-то конструкта, взятые в некотором окружении, то их выдач» должны рассматриваться расположенными в текстуальном порядке {i.l.3.2.i} этих составляющих в данном конструкте.

{Таким образом, высказывание (3.3.2.Ь)

..пусть V,, .... Ут будут {совместными} выдачами составляющих основ этого С;"

должно интерпретироваться как означающее

„пусть V|, .... У^будут соответствующими выдачами, получаемыми-в результате запуска и последующего завершения совместного испол нения сцен, состоящих из составляющих основ этого С, взятых в иД текстуальном порядке, и того окружения, в котором исполняется

е) „Если А есть (является) В”, где А и В - гиперпонязня. заменяет фразу „если А эквивалентно {2 1 Л.2.а} В”.

{Таким образом, в высказывании „Случай С: 'ВЫБИРАЮЩЕЕ' есть некоторое 'выбирающее по ПРЕДСТАВИТЕЛЮ'” (3.4.2.Ь) несущественно, бу дет ли это 'ВЫБИРАЮЩЕЕ' начинаться с 'выбирающее по объединению'или же с 'выбирающее по НИ определению объединения'.}

f) ..Вид есть (является) А”, где А гнперпонягие. заменяет фразу „вид {. являющийся классом протопонятий 'ЗНАЧЕНИЕ'}, который включает это А".

(Это позволяет употреблять такие сокращенные формы, как „вид есть некоторая 'структура содержащая 'ПОЛЯ в себе ”, .данный вид начинается

36

ГОСТ 27974-88 С.35

С 'объединение'” или „вид. в который заложено 'ПОЛК'., в обтаем случае вил можно указать, приведя только одно входящее в него 'ЗНАЧЕНИЕ', }

g) „Значение, выбираемое (генерируемое) по данному указатели-поля F,” заменяет фразу „если F - {ПРИМЕНЯЮЩИЙ-}- СЛОВО-указатеяь-поля -{4.8 1.0. то данное значение выбирается {^Л.ЗЗ.а. с 2.13.4.к } (генерируется {2.IJ.4.1}) по этому 'СЛОВУ'”.

2.2. Программа

2.2.1. Син ганок

а) программа: замкну гое предложение в новом {пустом окружении} сильно выдающее пустое значение <31 а}

{См. также 10 1}

2.2.2. Семантика

а) Исполнение программы осп. исполнение ее замкнуто!опредло-жсиия-в-новом-силыиз-выдаюшею-пустое значение в пустом окружении £2.1.1.!.с}, называемом „первичным окружением”.

{Несмотря на то, что цель настоящего стандарта определять смысл собстиенно программ (10.1 I g). эго смысл устанавливается только через предваряющее определение смысла! Программы, в которую эта собственно-программа вложена (10.1.2).}

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

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

37

С.36 ГОСТ 27974-88

с) Модель гипотетического вычислителя, использующая реальную вычислительную машину, называется „.реализацией" Алгола 68, если она нс ограничивает применение наыояшен» языка в других аспектах, отличных от упомянутых выше. Кроме того, если определяется язык А. собственно-программы которого являются также собственно-про г рамами языка В; и смысл каждой такой собствснно-прОграмМЫ, определяемый языком А, совпадает с се смыслом, определяемым языком В. то А называется „ПОЛЬ* языком" для В.,а В называется „надъязыком'' для А.

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

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

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

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

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

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

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

в ведение НОВЫХ блоков определений,

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

3.0.1. Синтаксис

а) • фраза : основа ДЕЙСТВУЮЩАЯ OSd}; ?

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

Ъ) •выражение ПРИВОДИМО выдающее ВИД:

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

с) ♦оператор:

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

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

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

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

у) • Переменная вида ВИД : ПРИМЕНЯЮЩИЙ СЛОВО

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

38

ГОСТ 27974-88 С.37

f) “блок в СРЕДЕ : определяющее СЛОЙ пюсяедователыное

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

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

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

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

СРЕДЕ {34i};

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

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

текст процедуры в СРЕДЕ выдающий ПРОЦЕДУРУ {541а, Ь}

{Блоки-в-СРЕДЕ появляются в определении ..идентификации” (7.2.2.Ь) }

3.0.2. Семан гика

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

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

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

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

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

(вешх: ЧИТ (х); х) В

(вещх; чмт (х); х) +3.14?

3.1.1. Синтаксис

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

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

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

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

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

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

{Пример

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

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

39

С.38 ГОСТ 27974-М

3,2 П о с л е л о в а г с Л ь н ы е предложения

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

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

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

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

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

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

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

дня з ДО тт ни если a [i] =8 то на найдено все кц;

ложь выход

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

3.2.1. Синтаксис

а) определяющее новые ’ПАРЫ Поспелова цельное предложение

ПРИВОДИМОЕ В СРЕДЕ Ola..Mf,l. 35h>:

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

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

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

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

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

кортеж с ’ПАРАМИ ПРИВОДИМЫЙ в СРЕДЕ Ш;

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

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

СРЕДЕ {bk

если (’ПАРЫ) есть (МЕТКА ’МЕТКИ), определение метки через МЕТКУ в СРЕДЕ Сс}, кортеже ’МЕТКАМИ ПРИ ВОДИМЫЙ в СРЕДЕ {Ь};

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

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

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

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

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

с) определение метки через СЛОВО для метки в СРЕДЕ -СЫ:

40

ГОСТ 27974-sec.J?

определяющий СЛОВО мистификатор в СРЕДЕ выдающий метку {48а}, знак метка {94Г}.

d) «снова ДЕЙСТВУЮЩАЯ {b, 33b,g, 34i,35d, 46m, п, 521с, 532e,54la.b.

543с. А34АЬ, с. d}:

ОСНОВА 45А.-ЗАДЕЙСТВУЮЩАЯ

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

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

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

Приводимое и ПРИВОДИМО? Се. 522а}: если (ПРИВОДИМО! есть (сильно).

ЕСЛИ (ПРИВОДИМО?) есть (ПРИВОДИМО); если (ПРИВОДИМОЕ) ее и (сильно).

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

g) ЕСЛИ ЗНАЧЕНИЕ уравнивает ЗНАЧЕНИЕ! и ЗНАЧЕНИЕ? {с} . если (ЗНАЧЕНИЕ!) есть (ЗНАЧЕНИЕ?).

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

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

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

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

>)• определяющее предложение:

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

предложение ПРИВОДИМОЕ в СРЕДЕ <32а3:

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

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

Ь) чит (xl); веш $ = О;

суммирование : для i до п ик (xl (i] > О ! $■ г «х! (i) I неположительное) кц выход нс положительное : печ (s) • веш s : • О;

суммирование : для i до nuK (х ! [ij > 01 s ♦:“ xl [i] I неположительное) ku выход нс положительное : печ (s) • суммирование : для (до пик (xl [i] >0(s+:=xl (i| I нс положительное) к и выход нс положительное : печ (s) 4

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

41

С.40 ГОСТ 27974-88

печ (s)

с) суммирование: d) лея (s)}

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

3.2.2. Семантика

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

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

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

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

• согласно апрелеляюше.му-новые-ЗПАРЫ-ПОНЯТИЮ С, возможно

Qicyict вующему, {которое задает «го участок.}

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

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

• если ЕI нс обует. валено, то пусть EI будет Е2;

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

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

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

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

(О фактичеекюго-ппкеатепя этого М и

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

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

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

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

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

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

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

Случай В: С есть задание-ар: умен тот*, заглавие-цикл а или спецификация:

Для i-l..... п, где п - число 'ОПИСАНИЙ', заложенных в'?ПАРЫ’.

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

42

ГОСТ 27974-88 €.4 1

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

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

• Е является локхпиэуюшнм (см. 5.2 J.2.b), но дальнейшее не определено.}

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

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

• W - выдача э/ой основы;

а иначе

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

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

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

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

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

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

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

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

[ ] цел q ■ (1.4,9. 16.25);

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

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

проц пуст есть, говорить; сема рот» уст I:

пар начало

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

коней }

3.3.1. Син таксис

а) совместное предложение в СРЕДЕ

сильно выдающее пустое значение {SD, 55 1а},

УПАКОВКА образа основ

сильно выдающих пустое значение в СРЕДЕ {bl.

b) образ основ ПРИВОДИМЫХ в СРЕДЕ {a, b, с, d. 34g}:

если ПРИВОДИМОЕ уравнивает

ПРИВОДИМОЕ! МПРИВ0ДИМ0Е2 {320.

основа в СРЕДЕ ПРИВОДИМАЯ 1 £32d>.

43

С. 42 ГОСТ 27974 -88

знак а также <940.

основа в СРЕДЕ ПРИВОДИМАЯ? <32а}либо образ основ 11РИВОДИМЫХ2 в СРЕДЕ <Ю

с) пэраллельиое предложение в СРЕДЕ

сильно выдающее пусто* значение {SD, 551»}:

знак параллельно {94f}, УПАКОВКА образа основ сильно выдающих пустое значение в СРЕДЕ {Ь}.

d) совместное предложение в СРЕДЕ

сильно вы дающее МАССИВ из ВИДА {50, 551а};

если (МАССИВ) есть (вектор).

УПАКОВКА образа основ

сильно выдающих ВИД в СРЕДЕ <Ь};

если (МАССИВ) есть (вектор МАССИВОВ!), УПАКОВКА образа основ

сильно выдающих МАССИВ) из ВИДА в СРЕДЕ {Ь};

УПАКОВКА ПУСТО,

е) совместное предложение в СРЕДЕ сильно выдающее структуру содержащую ИЮЛЯ ПОЛЕ в-себе {SD,5$la}:

УПАКОВКА образа ИЮЛЕЙ ПОЛЯ «СРЕДЕ {f}

О образ ’ПОЛ ЕЙ ПОЛЯ в СРЕДЕ { е. О:

образ ИЮЛЕЙ в СРЕДЕ {Гознак а также <940, образ ПОЛЯ в СРЕДЕ {g}.

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

g) образ СЛОВА для выборки ВИДА в СРЕДЕ {f}: основа в СРЕДЕ сильно выдающая ВИД { 32d}.

h) * запись структуры : совместное предложение

в СРЕДЕ сильно выдающее с труктуру содержащую ’ПОЛЯ ПОДЕ в себе {е}.

i)* запись массива : совместное предложение

в СРЕДЕ сильно выдающее МАССИВ из ВИДА {d}.

j)* запись составною : совместное проложение

в СРЕДЕ сильно выдающее СОСТАВНОЕ £d, е}

к)* вакуум : УПАКОВКА ПУСТО.

{Примеры:

а) (х _*1.у :=2)

с) пар (задача), задача?)

е) (1.2) (в комля (1,2))

Ъ} х :e I, у." 2 d> (1.2) (в I ] веш (J.2))

f) 1.2

е) 1 >

{Залнси-сгруктур должны содержать по крайней мерс два образа-ПОЛЯ.

Записи-массивон содержат куль, две или более состав ля юи тих основ. Одно значение тоже .можно сделать массивом, например [1:1] цел v ;= 123, но при этом иепмьзуеюи приведение, называемое векторизацией (6.6.).}

44

ГОСТ 27974-88 С.43

3.3.2. С^мангикл

1} Исполнение сов мест ного-п редложени я выдающею пу стое-эна чение или параллельного*предооже1шя вылакмцего-пустое-значение состоит в совместном исполнении сто живляшшкх основ и выдает пустое.

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

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

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

иначе

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

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

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

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

• W состоит из

(i) паспорта < (1. пт) >,

(И) V......Vr„;

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

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

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

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

• пусть паспортом {, например,} V, будет (Ui.Ui).....Un-Un))-

• W состоит из

(О паспорта <(l.m). (h.u,).....(Jn, un));

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

Для i = 1.....СП,

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

{Отмстим, что в |„| лиг группа = („абв”. „где”) паспортом трехмерной выдачи W будет ((!, 2), (J, 1), (I, 3)), поскольку основы „аба" и „где” сначала векторизуются (6.6.). так что V, и V2 имеют паспорта ((1.1), (.1,3)).}

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

{Выбирающис-прсдложсния позволяют осуществлять динамический выбор среди различных путей вычисления. Выбор среди альтернатив (глав-ной-частн-ВЫБИРАЮЩЕГО-прсдложсння и прсдолжсния-ВЫБИРАЮЩЕГО-предлажения) определяется результатом проверки некоторого истинностного значения, целого числа или вида Подвергаемое проверке значение вычисляется выясняющим предложением прежде, чем делается выбор.

Всякое выбнраюшее-ло-логичсскому-преддожение (или условное-прел-ЛОЖСНЖ) имеет форму

(х > О I xl 0) в „кратком" оформлении, или

45

С.44 ГОСТ 27974 -8 8

если к> 0 то х иначе0 вес в оформлении . .стиля I ”:

х > 0 - его выясняющее-предложение, го х - главная чэсть ВЫБИРАЮ-ШЕГО-предп-ожения. иначе О продолжение-ВЫБИРАЮтрГО-предложе-ния: так как выбираютие-преддожения полностью замкнуты, то каждая из этих трех составляющих может иметь синтаксическую ст рук туру кортежа. Выбираимиее-ло-логнчсскому-предложению можно также укоротить до (х <01х := - х) или

если х < О го х := — х все;

где опущенное продолжеинс-ВЫБИРАЮШЕГО-предпожения должно пониматься хак иначе пропуск. С другой стороны, выбор можно повторить, написав:

(х>ОИ + хН х < 01 I - xl 1) или

если х > 0 то I ♦ х инее х < О т-о L - х иначе 1 все,

и г.д.. что должно пониматься как

<х>0( I* х I (х<О1 1 - х I D).

ВАРИАНТНЫЕ-приложения, осуществляющие выбор по целому числу ипи виду, отличаются тем. что главная-чзсть-ВАРИАНТНОГ'О-ПрсштоженИя составлена изоснов. Общий образен для них такси:

( _ _ | — -. ,.,----| ----) или

ныб —в — -.........либо----быв

Здесь выбор также можно повторить, используя ливыб.

Компонентами выбираюшего-по-целому-предложения (или вариант но-го-предложения) служат просто основы, но их должно быть по крайней мере дне: выбор среди лих основ следует их текстуальному порядку.

Пример:

проп пуст работать.отдыхать, развлекаться;

выб дсп день: нит (день): день

в работать, работать, работать, работать, работать, отдыхать, развлекаться

либо печ ((.дня с номером”, день. „ нет в неделе”))

быв

В выбирающем-по-ПРЕД'СТАВИТЕЛвО-предложенни (или сопоставляю-тем-предложении), которое проверяет виды, каждый; ВЫБИРАЮЩИЙ-ва-риант имеет форму (описатель идентификатор): основа или (описатель): основа. Специфицируемый этим описателем вид сравнивается с (текущим) видом проверяемого значения; упомянутый идентификатор, если он есть, обеспечивает с Полной надежностью в отношении синтаксической проверки вида доступ к значению, подвергнутому проверке, внутри данной основы. Использование вида 'ПРЕДСТАВИТЕЛЬ' обеспечивает требуемую свободу для вида проверяемого значения; кроме того, 'ПРЕДСТАВИТЕЛЬ' должен содержать вид каждой из спецификаций, иначе соответствующий ВЫБИРАЮЩИЙ-вариаят не будет никогда выбран.

Пример:

вид мальчик = сг (цел возраст, вещ рост).

вид девочка = ст (цел возраст, веш вес);

46

ГОСТ 27974 -ев С.45

проц об (мальчик, девочка) новорожденный:

выб новорожденный в

(мальчик джон) : печ (рост oi пятой).

(девочка мэрн) : печ (всеот мэри)

вес.}

{Иерархия блоков и условном-предложении выглядит так:

к аналогично для остальных типов выбора. Таким образом, среда и-окружение выясняющепо-предложения продолжаю! иметь силу как в главной-ча-пи-ВЫБИРАЮШЕГО-прелложения. так и в продолжемии-ВЫБИРАЮЩЕГО-лредложения Однако обратная передача управления из т лавиОЙ-частн-илн прОдолжсния-ВЫБИРАЮШЕГО-прсдложсния невозможна, так как выясняю-щее-иредложеннс нс может содержать опрсделсний-метки (, за исключением тех. которые содержатся во входящих в него ЗАКРЫТЫ ^-предложениях).}

3.4.1. Синтаксис

А) ВЫБИРАЮЩЕЕ :: выбирающее ло логическому; ВАРИАНТНОЕ.

В) ВАРИАНТНОЕ :: выбирающее по шелому:

выбирающее по ПРЕДСТАВИТЕЛЮ

а) ВЫБИРАЮЩЕЕ Предложение в СРЕДЕ!

ПРИВОДИМОЕ <5D, 55 1а. А34Н1. А34?а>:

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

ОФОРМЛЕННЫЙ состав ВЫБИРАЮЩЕГО предложения ПРИВОДИМЫЙ в СРЕДЕ 1 {Ь}.

финиш ВЫБИРАЮЩЕГО ОФОРМЛЕННЫЙ Ole-,-}

b) ОФОРМЛЕННЫЙ состав выбирающего по ВИДУ

предложения ПРИВОДИМЫЙ в СРЕДЕ! (а.!}:

определяющее СЛОЙ2 выясняющее предложение выдающее ВИД в СРЕДЕ! {с,-}, ОФОРМЛЕННЫЕ альтернативы выбирающего по ВИДУ предложения ПРИВОДИМЫЕ в СРЕДЕ! с СЛОЕМ? <d}.

с) определяющее новые ?ОПИСАНИЯ2 выясняющее

предложение выдающее ВИД в СРЕДЕ! {В, 35g}:

кортеж с 7ОПИСАНИЯМИ2 раскрыто выдающий

ВИД в СРЕДЕ) с новыми ’ОПИСАНИЯМИ <32ЬК

d) ОФОРМЛЕННЫЕ альтернативы ВЫБИРАЮЩЕ ГО предложения ПРИВОДИМЫЕ в СРЕДЕ? <Ь}: ОФОРМЛЕННАЯ главная часть ВЫБИРАЮЩЕГО

4?

С.46 ГОСТ 2 7974-S3

предложения ПРИВОДИМАЯ в СРЕДЕ? {«};

ес/Ш ПРИВОДИМОЕ уравнивает

ПРИВОДИМОЕ! и ПРИВОДИМОЕ? <320, ОФОРМЛЕННАЯ главная часть ВЫБИРАЮЩЕГО предложения ПРИВОДИМАЯ! в СРЕДЕ? {с}, ОФОРМЛЕННОЕ продолжение ВЫБИРАЮЩЕГО предложении ПРИВОДИМОЕ? в СРЕДЕ? <13. е) ОФОРМЛЕННАЯ главная часть ВЫБИРАЮЩЕГО предложении ПРИВОДИМАЯ в СРЕДЕ? {d} вход в собственно ВЫБИРАЮЩЕЕ ОФОРМЛЕННЫЙ {93b.-}, собственно выбор ВЫБИРАЮЩЕГО ПРИВОДИМЫЙ в СРЕДЕ? <f, g, hk f) собственно выбор выбирающим по логическому ПРИВОДИМЫЙ в СРЕДЕ? {с}:

определяющее СЛОЙЗ последовательное предложение ПРИВОДИМОЕ в СРЕДЕ2 {320. g) собственно выбор выбирающего по целому ПРИВОДИМЫЙ в СРЕДЕ? £ек образ основ ПРИВОДИМЫХ в СРЕДЕ? {33b}-h) собственно выбор выбирающим по ПРЕДСТАВИТЕЛЮ ПРИВОДИМЫЙ в СРЕДЕЗ <с, h}:

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

11РИВ(Ш1МЫЙ в С РЕДЕ 2 {i 1;

если ПРИВОДИМОЕ уравнивает

ПРИВОДИМОЕ! и ПРИВОДИМОЕ? \>?е] выбирающий но ПРЕДСТАВИТЕЛЮ вариант ПРИВОДИМЫЙ! в СРЕДЕ? Ш, знак а также <94f>. собственно выбор выбирающий по ПРЕДСТАВИТЕЛЮ ПРИВОДИМЫЙ? в СРЕДЕ? {h}.

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

ПРИВОДИМЫЙ в СРЕДЕ2 {h}: определяющая СЛОЙЗ спецификация ЗНАЧЕНИЯ вСРЕДЕ2сСЛОЕМЗ {j,k,-Z если ЗНАЧЕНИЕ служит ПРЕДСТАВИТЕЛЕМ {64b}. основа в СРЕДЕ? с СЛОЕМ? ПРИВОДИМАЯ {32d} {Здесь-СЛОЙЗ :: новое СЛОВО для ВИДА; новое ПУСТО.} j) определяющая новое СЛОВОЗ для ВИДА спецификация ВИДА в СРЕДЕЗ <!}:

упакованное кратким определяющее новое СЛОВОЗ для ВИДА задание аргумента в СРЕДЕЗ <54]с}.

знак двоеточие {94f}

к) определяющая но вое П УСТО специфик ацмя

ЗНАЧЕНИЯ в СРЕДЕЗ {з}: упакованный кратким формальный описатель ЗНАЧЕНИЯ в СРЕДЕЗ {46b}. злак двоеточие <94f}.

48

ГОСТ 27974 -88 С.47

1) ОФОРМЛЕННОЕ продолжение ВЫБИРАЮЩЕГО предложения ПРИВОДИМОЕ в СРЕДЕ? {d}:

выход собственно ВЫБИРАЮЩЕГО ОФОРМЛЕННЫЙ <914, -}, определяющее СЛОЙЗ последовательное

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

продолжатель ВЫБИРАЮЩЕГО ОФОРМЛЕННЫЙ £91 с, -}, ОФОРМЛЕННЫЙ состав ВЫБИРАЮЩЕГО?

предложения ПРИВОДИМЫЙ в СРЕЛЕ2 {Ь},

если ВЫБИРАЮЩЕЕ? может следовать за ВЫБИРАЮЩИМ <ш} ш) ЕСЛИ выбирающее по ВИДУ! может следовать

за выбирающим по ВИДУ! {I}:

если (ВИД!) есть (ОБЫЧНОЕ),

ЕСЛИ (ВИД?) есть (ВИД!);

если (ВИД!) начинается с (объединение).

ЕСЛИ (ВИД?) начинается с (объединение).

п)* выбирающее предложение ДЕ ЙСТВУЮЩЕЕ:

ВЫБИРАЮЩЕЕ предложение ДЕЙСТВУЮЩЕЕ {а}.

о)* условное (Предложение ДЕЙСТВУЮЩЕЕ?

выбирающее по логическому предложение ДЕЙСТВУЮЩЕЕ {а} р)* вариантное предложение ДЕЙСТВУЮЩЕЕ:

выбирающее по целому предложение ДЕЙСТВУЮЩЕЕ {а}.

q)* сопоставляющее предложение ДЕЙСТВУЮЩЕЕ:

выбирающее по ПРЕДС! АВИТЕЛЮ предложение

ДЕЙСТВУЮЩЕЕ <а>

{Примеры:

a) (x>0lxl о) •

выб i в иринсюн, Гренобль либо финиш быв -выб u ire (цел i) : печ (1), (веш) печ („нет”) быв b)x>0lxl0 c)x>O-i’Uir

d) lx ■ Ixl О e) (x •

в Принстон, Гренобль •

в (пел j) : печ (i), (вещ) ; печ („нет”)

f) х g) пркнегон.Гренобль

h) (цел i) : печ (к), (вещ) : печ („нет”)

i) (цел i) : печ (i) j) (цел i) :

к) (вещ) :

I) либо финиш • I :Х < ОI - XI 0}

{Правило d показывает, почему'ПРИВОДИМО выдающие ЗНАЧЕНИЕ' должны „уравниваться". Если, например, альтернативы-ВЫБИРАЮЩЕГО предложения крепкие, то хотя бы одно из его главной-часги-ВЫБИРАЮШЕ-ГО-прсдложсння или продол^ияФЬ1БИРЛЮЩЕГОпр«¥Южсния должно быть крепким, в то время как другое может быть сильным. Так. например, в (plxl пропуск) ♦ (pl пропуск I у) условное-прешсоженмс (pfxl пропуск)

С.48 ГОСТ 27974-88

уравнивается, делая 1х крепким, а 4 пропуск сильным, в то время как (р Iпропуск! у} уравнивается, делая I припуск сильным, а 1у крепким. КоШрПрймср (р i пропуск! пропуск) *■ у показывает, что обе компонетны не могут быть сильными, поскольку иначе обозначение-оперзини + было бы нгндентификируем».}

3.4.2. •Семантика

а) Выдача W состава-ВЫБИРАЮЩЕГО-предложенин С в Окружении 1:1 определяется следующим образом:

пусть Е2 - окружение, устанавливаемое {З.З.З.Ь} вокруг Е1 согласно выясняющему-предложению этого С:

- пусть V - выдача этою выясняющего-предложения в Е2;

• W - выдача сцены, „выбранной” {b} по V из С в Е2;

требуется, чтобы по области действия выдача W не была младше Е1.

Ь> Сиена S, „выбранная” по значению V из состава ВЫБИРАЮМЕГО-предяожсния-выдающего-ЗНАЧЕНИЕ С в окружении Е2. определяется сле-дуюисим образом:

Случаи А: 'ВЫБИРАЮЩЕЕ' есть 'выбирающее по логическому'и V есть истина:

• S - составлявшая главная чэсть-ВЫБИРАЮШЕГО-прсд-ложения этого С в Е2 ;

Случай В: 'ВЫБИРАЮЩЕЕ* есть 'выбирающее по целому’ и I < V < п где п — число составляющих основ составляющего собственно -выбора-ВЫБИРАЮЩЕГО этою С:

■ S есть V-я такая основа в Е2;

Случай С: ’ВЫБИРАЮЩЕЕ’ есть выбирающее по ПРЕДСТАВИТ ЕЛЮ’ и

V приемлемо для £2.1 3.6.d?'ЗНАЧЕНИЯ?'какой-нибудь с-о ставлякнией сПсцификации-ЗНАЧЕНИЯ2 D этого С-{; если таких составляющих спецификаций несколько, то не определено. какая из них выбирается в качестве О}:

• S основа, следующая за этим D в некотором {нелокали-зующем (3.2.2.Ь) }окружении,устанавливаемом вокруг Е2 согласно D с V;

'Остальные случаи {. когда значение V отлично от указанных}:

Если С содержит составляющее продолжение-ВЫБИРАЮЩЕГО предложения О, то S есть О в Е2;

иначе S есть пропуск-выдаюший ЗНАЧЕНИЕ в. Е2.

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

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

Пример t:

цел фак : = J;

”ля i от гт таг - 1 до 1

ГОСТ 27 974-88 0 9

цк фак Х:= j KU

Пример 2:

.№o,h; чит ((а, b)) прагм здесь а > ОЛ b > 0 прагм:

цел q = 0. г : = а: '

иска г > b прагм здесь a«bXq + rA(Xr прагм

лк (q + : = 1, г —:=b) кц

прагм здесь а = ЬХ q + гАО^гАгСЬ прагм

(см 42. г де, объясняются прагматы).

Идентификатор переменной цикла, например i в примере 1. определен нал леем циклом. Вводимые условием-иикла определения действую! также и в теле-никла.

Исли идентификатор переменной цикла не применяется! в цикле, то за-глпвкечшкла можно опустить. Можно опустить настройку-нижнего-пределз от I: точно так же можно опустить и шаг 1. Настройку-верхнсгопрецел а можно опустить, если не требуется проверять конечное значение переменной цикла Можно опустить и условие-цикл а пока истина. Например, вместо для i от I шаг 1 до п пока истина цк печ (.л“) кц можно написать

до л ик печ (..а") кц

Иерархия блоков выглядит так

3.5,3. Синтаксис

А) ЦИКЛ :: нижний предел: шаг; верхний предел.

а) циклическое предложение в СРЕДЕ!

сильно выдающее пустое значение C5D, 55 la}:

ОФОРМЛЕННОЕ заглавие цикла определяющее

новое СЛ0ВО2 для целого в CFEJ1EI -СЬ}, ОФОРМЛЕННАЯ настройка цикла в СРЕДЕ 1 {с}. ОФОРМЛЕННЫЙ цикл с СЛОВОМ! для целого в СРЕДЕ I {е}

Ь) ОФОРМЛЕННОЕ заглавие цикла определяющее

новое СЛОВО2 для целого в СРЕДЕ! {а}:

знак для ОФОРМЛЕННЫЙ <94g. -}.

определяющий СЛОВО! идентификатор в СРЕДЕ!

с новым СЛОВОМ! для целого выдающий целое <48а}:

51

СЛО ГОСТ 27974-88

если (СЛ0ВО2) есть (буква алеф). ПУСТО.

с) ОФОРМЛЕННАЯ настройка никла в СРЕДЕ I £а);

возможно ОФОРМЛЕННАЯ

настройка нижнею предела в СРЕДЕ {d>.

возможная ОФОРМЛЕННАЯ настройка шага я СРЕДЕ! {d}

возможно ОФОРМЛЕННАЯ

настройка верхнего предела в СРЕДЕ1 Ed}-.

d) ОФОРМЛЕННАЯ настройка ЦИКЛА в СРЕДЕ! {с}:

знак ЦИКЛ ОФОРМЛЕННЫЙ {94g,->,

основа в СРЕДЕ! раскрыто выдающая целое {32d>.

е) ОФОРМЛЕННЫЙ ЦИКЛ с ОПИСАНИЕМ! в СРЕДЕ! Ш:

■ОФОРМЛЕННЫЙ подчиненный условию цикл

8 СРЕДЕ! с новым ОПИСАНИЕМ 2 {О;

ОФОРМЛЕННОЕ тело цикла в СРЕДЕ! с новым

ОПИСАНИЕМ! {hl.

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

ОФОРМЛЕННОЕ определяющее СЛОЙЗ

условие никла в СРЕДЕ2 {gE,

ОФОРМЛЕ ИНОЕ тело никла в СРЕДЕ2 с СЛОЕМЗ Ch}.

g) ОФОРМЛЕННОЕ определяющее СЛОЙ3

условие цикла в СРЕДЕ! {fl:

знак пока ОФОРМЛЕННЫЙ {94g, ■}, определяющее СЛОЙЗ выясняющее предложение выдающее логическое в СРЕДЕ2 {34с, •}.

h) ОФОРМЛЕННОЕ тело цикла в СРЕДЕ! {е, f >:

знак цикл ОФОРМЛЕННЫЙ {94g. О.

определяющее СЛ0Й4 последовательное предложение

сильно выдающее пустое значение в СРЕДЕЗ { 32аУ, знак конец цикла ОФОРМЛЕННЫЙ {94g, ->

{Примеры:

а) для i пока i < п цк задача! ки * ДО п ик задача!; задача! ки

Ь) для i

с) от -5 до »5

d) от -5

е) пока i <п ик задача! ки • цк задача!; задача! ки

0 пока i <п ик задача!; задача? кц

g) пока i < п

h) цк задача!; задача! ки 1

3.5.2. Семантика

Циклическое-предложеннс С в окружении Е1 исполняется посредством следующих шагов:

Шаг 1: lice составляющие настройки-ЦИК ЛА из С, если они вообще есть, исполняются совместно с Eli

• пусть f - выдача составляющей настройки-ннжяего-предела из С, если она ест ь, а иначе f будет 1;

ГОСТ 279744вСЛ

• пусть Ь - выдача составляющей настройки-шага из С, если она есть-, а иначе bбудет I;

- пусть I - выдача составляющей настройки-всрхисго-предсла и? С, если она есть, а иначе пусть t отсутствует;

• пусть Е2 будет {нелокализующим (3.2 2.Ь) } окружением, устанавливаемым вокруг Е1 согласно заглавию-цикла-опреяелякндему-новое-СЛОВ-02-для целого из С и с целым числом f;

Шаг 2: Пусть i - целое число, доступное {2.1.2х> для 'СЛОВА2 для целого' внутри участка окружения Е2;

Если t не отсутствует.

то

если b <0 и i < t или если Ь >0 и а> t, то С в El {завершается и} выдает пусто;

{иначе предпринимается шаг 3; }

Шаг 3: Пусть окружение ЕЗ и истинностное значение w определяются следующим образом

Случай А: С не содержит составляющего условия-цикла:

• ЕЗ есть Е2;

• w есть истина:

Случай В: С содержит составляющее условие-цикла р

• ЕЗ есть {возможно нелокалиэуюшее (3.3.2 .Ь) Окружение. устанавливаемое вокруг Е2 согласно выясняюшсму-предложению из Р;

• w — выдача этого выясняющсго-предложения в ЕЗ;

Шаг 4:

Если w - истина.

го

• составляющее гело-шлела данного С исполняется в ЕЗ;

• 'СЛОВО? для целого' получает доступ к i + b ину грн участка окружения Е2;

• шаг 2 предпринимается снова; иначе

• С в Е1 {завершается и } выдает пустое.

{ Цикличсское-предложснис

для i от и! шаг и2 до иЗ пока условие их действие кц эквивалентно, таким образом, замкнутому-предложению-выдаюшему-пустоо-значение

начало цел f :- u 1 . мел Ь - и2. t = м3;

шаг2:

если (Ь>ОЛ f< t)V(b<OAf>*)Vb-0 то цел i = f;

если условие

то действие; f ^b; на шаг2 все

все конец.

S3

С52 ГОСТ 27974 -8в.

Разумеется, такой эквивалентности может нс быть, если данное циклическое-предложен не содержит локальные генераторы или некоторые из использованных обозначений-операций не идентифицируют обозначения-операций в стандартной языковой обстановке (10) j •

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

£ Описания служат дли того, чтобы

• вводить новые индикаторы, например, идентификаторы,

• определять их виды или приоритеты и

• приписывать этим индикаторам значения и инициализировать переменные.}

4.1. Описания

4.1.1. Синтаксис

А) ОБЪЕКТ :: вид- приоритету тождество для ПРОБИЛА;

переменная как имя ПРОВИДА; операция как ПРО-ВИД;

ПАРАМЕТР; поле вида ВИД среди ПОЛЕЙ.

£ ПРОВИД :: процедура; ВИД}

а) описание (ОПИСАНИЙ в СРЕДЕ Та. 32b}: описание ОБЪЕКТОВ через (ОПИСАНИЯ

в СРЕДЕ £42а. 43а. 44а. с. 45а. 1;

если (’ОПИСАНИЯ) есть ((ОПИСАНИЯ! ГОПИСАНИЯ2), описание ОБЪЕКТОВ через (ОПИСАНИЯ!

в СРЕДЕ £ 42а, 43а, 44а. с, 45а, •}.

знак а также {94П.

описание (О ПИСАНИЙ 2 а СРЕДЕ £а}.

Ь) групповое определение ОБЪЕКТОВ через (ПАРЫ ПАРУ

в СРЕДЕ {Ь, 42а. 43а. 44а. о. 4 5а. 46е. 541е}:

групповое определение ОБЪЕКТОВ через (ПАРЫ в СРЕДЕ

£Ь, с>. знак а также <940.

групповое определение ОБЪЕКТА через НАРУ в СРЕДЕ <с}.

с) групповое определение ОБЪЕКТА через НАРУ

в СРЕДЕ <Ь,42а, 4 3а. 44а,е, 4 5з, 46с, 5 41с}:

определение ОБЪЕКТА через ПАРУ

в СРЕДЕ £42b, 43b. 44c.f, 45с,46f, 541 f, •}.

d) • определение П АРЫ определение ОБЪЕКТА через ПАРУ

в СРЕДЕ £4 2b. 4 3b, 44с. С. 4 5с, 46f, 5 41f>;

определение метки через ПАРУ в СРЕДЕ £32с}

{Примеры:

а) вид г = имя вещ, s = лит - приоV = 2, А = 3 • цел m ■ 4очь • вещ х, у •

onv= (лог а, Ь) лог : (а I истина! Ь)

Ь) г = имя вещ, s « лиг • v= 2. А = 3 • m = 4096 •

х, У • V^ (лога, Ь) лог : (а I истина! Ь)

с) г ■ имя вещ • V= 2 - m = 4096 • х •

54

ГОСТ 279 74-88=1'3 3

V ■ (лог а. Ь) лог : (а 'истина! Ь) }

4.1.2. Семантика

Исполнение описания состоит в совместной исполнении ею описания-ОБЪЕКТОВ и его описания, если оно есть. {Таким обраэом. вес описания-ОБЪЕКТОВ, разделенные знакамк-а-также. исполняются совместно.}

4.2 О п и с з и и я видов

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

Например,

вид массив = (т. п) веш и

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

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

4.2.1. Синтаксис

а) описание видов через ^ОПИСАНИЯ в СРЕДЕ <41 а}:

знак вил {‘Md}.

групповое определение видов

через ОПИСАНИЯ в СРЕДЕ {41b. с}:

Ь) определение вида через ИНДИКАНЕ

для ЗНАЧЕНИЯ НОМ ЕР в СРЕДЕ {41с}:

если (ИНДИКАИТ) есть (выделенное СЛОВО) млн

(СРЕДА) есть (новое с СЛОЕМ).

определяющий ИИДИКАНТ индикатор вида в

СРЕДЕ выдающий ЗНАЧЕНИЕ НОМЕР <48а>.

знак определяется как {94d},

фактический описатель ЗНАЧЕНИЯ НОМЕРв СРЕДЕ Ес}.

с) фактический описатель ЗНАЧЕНИЯ НОМЕР! в СРЕДЕ {h}.

если (ИОМЕР1) есть (I) .

фактический определитель ЗНАЧЕНИЯ

в СРЕДЕ { 46с, d, g, h, о, s. -};

если (НОМЕР!) есть (Н0МЕР2 I).

использующий ИНДИК АНТ 2 индикатор вила в

СРЕДЕ выдающий ЗНАЧЕНИЕ НОМЕР2 {48b}

{Примеры:

а) вид г = имя веш, s “ лит

h) г = имя всиг с) имя вещ • пит

£ Использование 'НОМЕРА' исключает круговые цепочки определений-видов, такие, как видя = b, b =а

Определяюшне-?РАЗМ ЕРНОЕ-СТАНДАРТНОЕ-индикаторы-видов могут описывания только в стандартном-встунпеики. где среда имеет фор'-'новое с СЛОЕМ' (10.1.1.Ь).}

4.2.2. Семантика

Исполнение опкеания-видов {не требует действия, не выдает эпичен

С.54ГОСГ 27974-88

тем самым J завершено.

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

{Описаний-приоритетов используются для определения приоритета обозначений-оперший. Существуют приоритеты or 1 до 9.

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

4.3.1. Сингак си с

а) описание приоритетов через ЮПИСАНИЯ в СРЕДЕ {41а}:

знак приоритет {94d}.

групповое определение приоритетов

через '.ОПИСАНИЯ в СРЕДЕ {41b, с}.

Ь) определение приори гота через ИНФИКС для

приоритета ПРИОРИТЕТ в СРЕДЕ {41с};

определяющее ИНФИКС обо-значение операции в СРЕДЕ

выдающее приоритет ПРИОРИТЕТ {48а}.

знак определяется как C94d>. знак ЦИФРА {94b}.

если ЦИФРА -считает ПРИОРИТЕТ {с, d}.

{ЦИФРА :: цифра нуль; цифра один; цифра два; цифра три:

цифра четыре; цифра пять: цифра шесть; цифра семь;

цифра восемь: цифра девять.}

с) ЕСЛИ ЦИФРА 1 считает ПРИОРИТЕТ I. {Ь.с}:

ЕСЛИ ЦИФРА2 считает ПРИОРИТЕТ {с, d}.

если (цифра один цифра два цифра три цифра четыре

цифра пять цифра шесть цифра семь цифра восемь

цифра девять) содержит ШИФРУ? ЦИФРУ I) .

d) ЕСЛИ цифра один считает Г СЬ.с} ЕСЛИ истина.

{Примеры:

а) прио Vе 2, А =3 b)V = 2}

4.3.2. Семантика

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

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

{Описали я-идснт ификаторов задают определяюшиеждеитификаторы-выдающие-ВИД при помощи либо описаний-тождеств,. либо описапий-нерс менных.

Примеры:

вещ пи = 3.1416 •

вещ точность := 0.05.

Второй пример, который служит описанием-переменной, можно рас-сматривать как эквивалентную форму для описания-тождества

имя вещ точность- = лок веш =0.05.

Исполнение описаний-идентификаторов вызывает приписывание значений их идентификаторам; в приведенных выше примерах 3.1416 прыннсы-

56

ГОСТ 2797+ -8И С. S 5

вается пи и новое локальное имя. именующее 0.05, приписываемся точности,}

4.4.3. Синтаксис

А) ПРОВИД I! процедура; ВИЛ

В) ЛОКАЛИЗУЮЩИЙ :: локальный, глобальным: первичный.

а.) описание тождеств-для ПРОПИЛА

через ’ОПИСАНИЯ в СРЕДЬ {41а}:

формальный описатель ПРОВИДА в СРЕДЕ {Ь,46Ь}.

групповое определение тождеств для ПРОВИДА через [ОПИСАНИЯ в СРЕДЕ {41 Ь, с}.

Ь) ЛЮБОЙ описатель процедуры

в СРЕДЕ {a, 523b}: знак процедура <94d}.

с) определение тождества для ПРОВИЛА

через СЛОВО для ВИДА в СРЕДЕ {41с}:

определяющий СЛОВО идентификатор в СРЕДЕ

выдающий ВИЛ {48а}, знак определяется как {94d}.

источник вида ВИД для ПРОБИЛА в СРЕДЕ {а}.

d) источник вида ВИД для II РОВИЛЛ в СРЕДЕ {с. f. 45с}

сели {ПРОБИЛ) есть (ВИД),

источник вида ВИД в СРЕДЕ {521с};

если {ПРОВИД) есть (процедура),

текст процедуры в СРЕДЕ выдающий ВИД {541а, Ь, -}

е) описание переменных как имен ПРОВИДА

через 'ОПИСАНИЯ в СРЕДЬ <410:

задание ЛОКАЛИЗУЮЩЕЮ генератора в СРЕДЕ

выдающего имя ПРОВИДА {523b}.

групповое определение переменных как-

имен ПРОБИЛА через [ОПИСАНИЯ в СРЕДЕ {41Ь,с}.

f) определение переменных как имен ПРОВИДЬ

через СЛОВО для имени ВИДА в СРЕДЕ {41с}:

определяющий СЛОВО идентификатор в СРЕДЕ

выдающий имя ВИДА {48а}, знак присвоить <94с}.

источник вида ВИД для ПРОВИДА в СРЕДЕ {dj;

если (ПРОВИЛ) есть (ВИД).

определяющий СЛОВО идентификатор в СРЕДЕ

выдающий имя ВИДА {48а}.

g)* олисаиле идентификаторов:

описание тождеств для ПРОБИЛА

через 'ОПИСАНИЯ в СРЕДЕ {а};

описание переменных как имен ПРОБИЛА

через .’ОПИСАНИЯ в СРЕДЕ {с}.

{Примеры:

а) цел ш = 4096 - проц г 10 - вещ ; ПСЧ X 10

Ь) проц с) m - 4096

d) 4096 • веш : печ X 10

57

С. 56 ГОСТ 27974 -83

е) вещ х. у ■ Прон рр :а веш : псч X 10

f) рр :■ веш : псч X 10 • х}

4.4.2. Семантика

а) Описание-тождссгв Dисполняется следующим образом:

• совместно исполняются составляющие источники-для ЛРОВИДА из D:

Для каждого составляющего Определения-тождества D1 из D

• выдача V источникз-для-ГТЕОВИДА данного D1 приписывается £4.8.2л} опрелсллюшсму-идсвтификатюру этою D1.

Ь) Описание-переменных D исполняется следующим образом:

задан» е-гснсратора {5.2.3.1 .b? G этого Dи все кслочннкм-для-ПРО-ВИДА. если они есть, составляющих определений-переменных из D исполняются совместно;

Для каждого составляющего определения-переменной-через СЛОВО-для имени-ВИДА D1 из D,

• пусть W1 - какой-то „вариант” £с}для 'ВИЛЛ' значения, именуемого выдачей N данного G;

пусть XI - вновь созданное, ими, равное N по области действия и именующее W1;

• если N1 — составное имя {2.1.3.2.Ь}. то N1 снабжается поды-менами <2.1.3.3.е, 2.1.3.4.g};

N1 приписывается {4.8.2.а)- определяю щему-идемтмфикатору данного D1;

выдача источника-ляя-ПРОВИДА. если он есть, этого D1 присваивается £5.2.1.2.b}Nl.

£фактн'1сскийчэписатель, общий для нескольких определений-переменных, исполняется только однажды. Например, исполнение

цел m := 10; [I : m *:■ 1] цел р, q; псч (ш)

вызовет печать 11, а не 12; кроме того, р и q будут приписаны два новых локальных имени, именующих массивы с паспортами ((1,11)) и неопределенными элементами.}

с) „Вариантом” значения V для вида М будет некоторое значение W, приемлемое для £2J.3.6.d} М н определяемое следующим образом:

Случай А: М есть 'структура содержащая ИЮЛЯ в себе':

Для каждого 'СЛОВА ДЛЯ выборки ВИДА', заложенного в эти 'ИЮЛЯ'.

• полем, выбираемым по 'СЛОВУ' в W, будет вариант для ’ВИДА' гою ноля, которое выбирается по СЛОВУ в V;

Случай В: М есть '''ПОДВИЖНЫЙ МАССИВ из ВИДА!':

• паспортом значения W служит паспорт данного значения V;

- каждый элемент этого W есть вариант для 'ВИДА Г некоторого элемента значения V;

Остальные случаи:

- W — любое значение, приемлемое для М.

S8

ГОСТ 27974-88 С.57

d) Выдачей фактического опиезтелм-процецуры является какая-нибудь процедура {. вид которой не существен}.

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

{ОПисэния-опсраинй залают опрсдсляюшие-обозначснияопе раций Пример:

on тс = (веш а. Ь) веш : (3 X а < b I а I Ь).

В отличие от случая, например, описаний-идентификаторов, в одну и iy же зону могут входить более одною описания-операции с одним и тем же знаком-АФФИКСА; например, предыдущий пример прекрасно может находиться в одной зоне с

оптс= (компл маккарти, джек) комля: (печ<.5 I маккарти! джон).

в этом случае обозначение-операция птс называется „перегруженным".}

4.5.1. Синтаксис

А) ОПЕРАЦИЯ :: ДВУМЕСТНАЯ. ОДНОМЕСТНАЯ.

В) АФФИКС :: ИНФИКС:. ПРЕФИКС.

а) описание операций как ПРОВИДА

через ОПИСАНИЯ в СРЕДЕ 441а}:

знак операция {94d}. формальный план ПРОВИДА

в СРЕДЕ {Ь.46р.-},

Группокос определение операций как 1ГРОВИДА через ОПИСАНИЯ в СРЕДЕ {41Ь,с}.

Ь) формальный план процедуры в СРЕДЕ {в}: ПУСТО.

с) определение операции как ПРОВИДА через

АФФИКС ДЛЯ ОПЕРАЦИИ в СРЕДЕ {41с}:

определяющее АФФИКС обозначение операции в СРЕДЕ

выдающее ОПЕРАЦИЮ {48а}.

знак определяется как {94d},

источник вида ОПЕРАЦИЯ для ПРОВИДА в СРЕДЕ {44d}.

{Примеры:

а) он 7= (лог^Ь) лаг : (а Iистина! Ь)

с) V= (лога. Ь) лог : (а Iистина! Ь) }

4.5.2. Семантика

а) Исполнение описашия-олсраций состоит в совместном исполнении его составляющих определений-операций.

Ь) Определение-операнни исполняется приписыванием {4.8.2.а} его определяющему-обозначению-операции процедуры, выдаваемом его источником-для ПРОБИЛА.

4.6. Описатели

{Описатели специфицируют виды. Всякий описатель является или определителем, явно описывающим какой-то вид. пли ислользуюшим-индикато-ром-вида, который употребляется вместо некоторого определителя через описание-вида. Определители формируются нз символов пуст, цел, веш, лог и лит (10.2.2) при помощи других символов, а именно имя, ст, [ ], проц и об. Например, проц (вещ) лог специфицирует вил 'процедура с параметрам вида вещественное вырабатывающая логическое'.

59

C.S8 ГОСТ 17974-88

ФактИчеС кие-О писатели, применяемые главным образом в генераторах, гребуют, чтобы в них были заданы границы. Формальные-описатсли, применяемые главным образом в формальных-параметрах и ядрах, не требуют гранки. Следующий за имя описатель всегда виртуальный’ и может, поскольку подвижность сеть свойство имен, специфицировать подвижный МАССИВ из ВИДА'. Тах как в генераторах фак гическис-опнсз тели неявно следуют за 'имя', они также могут специфицировать 'подвижный МАССИВ из ВИДА' !

4.6.1. Синтаксис

А) ЛЮБОЙ "НЕФОРМАЛЬНЫЙ; формальный.

В) НЕФОРМАЛЬНЫЙ :: виртуальный; фактический.

С) ’ЗНАЧЕНИЯ "ЗНАЧЕНИЕ; ЗНАЧЕНИЯ ЗНАЧЕНИЕ.

а) НЕФОРМАЛЬНЫЙ описатель ЗНАЧЕНИЯ

в СРЕДЕ {c,c,g,h,523*,b}:

НЕФОРМАЛЬНЫЙ определитель ЗНАЧЕНИЯ

вСРЕЛЕ (c.d.g.h.o. S, -И

использующий ИНДИК АТ индикатор вила в СРЕДЕ

выдающий ЗНАЧЕНИЕ НОМЕР 448b, ■}

Ы формальный описатель ЗНАЧЕНИЯ

в СРЕДЕ {е. h. р, г. u. 34k. 44а. 541а, Ь.е, SS1а}:

если ЗНАЧЕНИЕ фиксирует ЗНАЧЕНИЕ { 47а, Ь. с, >.

формальный определитель ЗНАЧЕНИЯ

в СРЕДЕ {c.d.h.o.s.-l;

испо.тьзуюший ИНДИКАТ индикатор вида в СРЕДЕ

выдающий ЗНАЧЕНИЕ! HOMEPf4«bJ

если ЗНАЧЕНИЕ фиксирует ЗНАЧЕНИЕ! {47а,Ь,с, •}.

с) ЛЮБОЙ определитель имени ВИДА в СРЕДЕ <а, Ь.42с}.

знак имл <94d>,

виртуальный описатель ВИДА в СРЕДЕ -{а}-.

d) ЛЮБОЙ определитель структуры

содержащей ИЮЛЯ в себе в СРЕДЕ {а, Ь.42с}:

знак структура £94d}> упакованный кратким

ЛЮБОЙ образ [ПОЛЕЙ среди ИЮЛЕЙ в СРЕДЕ fcj.

о» ЛЮБОЙ образ 1П0ЛЕЙ1 среди 'ПОЛЕЙ в СРЕДЕ <d, е}:

ЛЮБОЙ описатель ВИДА в СРЕДЕ {а, Ь}.

групповое определение полей вида ВИЛ

среди [ПОЛЕЙ через «ПОЛЯ! в СРЕДЕ {41Ь, с};

если (!ПОЛЯ1> есть (!НОЛЯ2 !ПОЛЯЗ), ЛЮБОЙ описатель ВИДА в СРЕДЕ <а. Ь}.

групповое определение полей вида ВИД

среди [ПОЛЕЙ через [ПОЛЯ2 в СРЕДЕ {4!Ь,с>,

знак а также {94О„

ЛЮБОЙ образ НЮЛЕЙЗ среди [ПОЛЕЙ в СРЕДЕ <с}.

О определение поля вида ВИД среди [ПОЛЕЙ

через СЛОВО для выборки ВИДА в СРЕДЕ {41с}-

60

ГОСТ 279-74 -88 C.S9

определяющий СЛОВО указатель ноля

вила ВИЛ среди 'ПОЛЕЙ -{48с}.

gl НЕФОРМАЛЬНЫЙ определи тель подвижною МАССИВА

из ВИДА в СРЕДЕ Ъ,42с1

знак подвижно*: <94d}, НЕФОРМАЛЬНЫЙ описал ель МАССИВА из ВИДА в СРЕДЕ {а}.

h) ЛЮБОЙ определитель МАССИВА из ВИЛА в СРЕДЕ {а, о. 42с} мидексова ин ый ОФОРМЛЕННЫЙ

ЛЮБОЙ диапазон МАССИВА в СРЕДЕ {г. j, k, I}.

ЛЮБОЙ описатель ВИДА в СРЕДЕ {а. Ь}.

i) ЛЮБОЙ диапазон вектора МАССИВОВ в СРЕДН {h. i}: ЛЮБОЙ диапазон вектора в СРЕДЕ {j, k, I}, знак а также {94f}.

ЛЮБОЙ диапазон МАССИВА в СРЕДЕ <i, j. k J}

j) фактический диапазон вектора в СРЕДЕ {h. £}:

нижняя граница в СРЕДЕ {т}. знак вплоть до {94f}.

верхняя граница 8 СРЕДЕ {п};

верхняя граница и СРЕДЕ (п}

к.) виртуальный диапазон вектора в СРЕДЕ {h, £}: возможный знак вплоть ж» { 94f }.

1) формальный диапазон вектора в СРЕДЕ <h, i): возможный знак вплоть да {94Д.

т) нижняя граница в СРЕДЕ Си 532f, g}:

основа в СРЕДЕ раскрыто выдающая целое {32<3}.

п) верхня ч 1 раница в СРЕДЕ (j, 5 32 f }:

основа в СРЕДЕ раскрыто выдающая целое {32*1}.

о) ЛЮБОЙ определитель. ПРОЦЕДУРЫ в СРЕДЕ {а,Ь,42с}:

знак процедура €94d>, формальный план ПРОЦЕДУРЫ в СРЕДЕ {р}.

р) формальный план процедуры '.'ПАРАМЕТРИЗОВАННОЙ вырабатывающей ЗНАЧЕНИЕ в СРЕДЕ Со. 45а>:

если ^ПАРАМЕТРИЗОВАННАЯ) сеть (ПУСТО), формальный описатель ЗНАЧЕНИЯ в СРЕДЕ {Ь};

если (’ПАРАМЕТРИЗОВАННАЯ) есть (с ’ПАРАМЕТРАМИ), упакованный кратким групповой

описатель ШАРАМЕГРОВ в СРЕДЕ {q. г}.

формальный описатель ЗНАЧЕНИЯ в СРЕДЕ {Б}.

q) групповой описатель ПАРАМЕТРОВ

I «АРАМ ЕТРА в СРЕДЕ < р. Д}:

групповой описатель {ПАРАМЕТРОВ в СРЕДЕ {q. г}, знак а также <940,

групповой описатель ПАРАМЕТРА в СРЕДЕ {г}.

г} групповой описатель

параметра вида ВИД в СРЕДЕ {р, q}: формальный описатель ВИДА в СРЕДЕ <Ь>.

61

С.60 ГОСТ 27974-88

s I ЛЮБОЙ определи!ель объединения [ОБЫЧНЫХI ОБЫЧНОГО! воедино я СРЕДЕ {а. Ь.42с}: если неверно что ПУСТО

родственно [ОБЫЧГЕЫМ1 ОБЫЧНОМУ! {47f}. знак объединение {946}. упакованный кратким । рупловой описатель ЗНАЧЕНИЙ и СРЕДЕ {t. и), если ЗНАЧЕНИЯ сплетены с [ОБЫЧНЫМИ 2 WgjH укрытые ЮБЫЧНЫМ ОБЫЧНОЕ!

входят в укрытые !ОБЫЧНЫЕ2 <731>n

укрытые [0БЫЧНЫЕ2 входят

в укрытые ’ОБЫЧНЫЕ! ОБЫЧН0Е1 <731, пт}

t ь групповой п-писатсль !ЗНАЧЕНИЙ

ЗНАЧЕНИЯ в СРЕДЕ <8. О:

групповой описатель [ЗНАЧЕНИЙ з СРЕДЕ {т, и}, знак а также <94f}.

групповой описатель ЗНАЧЕНИЯ в СРЕДЕ {и}.

и) ipyiinouoM описатель ЗНАЧЕНИЯ в СРЕДЕ {s.tl: формальный описатель ЗНАЧЕНИЯ в СРЕ ДЕ СЬ}

■С Примеры:

а) [I : и] вещ • лицо Ь) [ | веш • строк

с) имя агент

Ф ci Quen возраст, имя ли но отец, сын) с) имя лицо отец, сын •

цел возраст, имя

лицо отец, сын f) возраст h! [1 m, 1 : п] вещ j! 1 : п II 7 п) п р) (лог, лог) лог г) лог t) цел, пит

g) подо [1 :п] веш

i) I : m. 1 : п

к) :

m) I

о) проц (лог. лог) лог

q) лог. лог

s) об (дел, лит)

и) цепУ

•СО факткчсских-олжэтелях-ЗНАЧЕНИЯ-НОМЕР см. 4,2.Ес, о фактических-описателяХ’Проиедуры см. 4.4.1 Ь

Нс сущест вует описателей, специфицирующих такие виды, как 'объединение целого объединения целою вещественного воедино воедино' или 'объединение целого веществе иного целого воедино*. В действительности описатели об (цел, об (цел. вещ)) и об (цел. вещ. цел) можно написать, но в обоих случаях специфицируемым: видом будет 'объединение целою вс-шественною воедино' (. что с таким же успехом можно выписать и как 'объединение вещественного целого воедино') .?

4.6.2. Семантики

62

ГОСТ 27974 -S3 С.6 S

а) Выдача W факгическогО-описателя-ВИДА Г) в окружении Е определяется следующим образом:

Если 'ВИД' есть некоторое 'СОСТАВНОЕ', ю

пусть D1 в £1 „развертывается" {с} из D в Е;

■ W - выдача £ определителя! D1 в {локализующем, см. 3.2.2.Ь,} окружении, устанавливаемом по Е и вокруг Е1 ;

иначе

• W - любое значение {приемлемое для 'ВИДА'}.

Ь) Выдала W фактическою-определктеля-СОСТАВНОГО D определяется следующим образом:

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

- совместно исполняются составляющие описатели данного D;

• каждое поле выдачи W есть вариант {4.4.2.с}

(i) выдачи последнего составляющего описателя -ВИДА иэ D, находящегося перед составляющим определяющнм укаэа-тслем-поля этого D. выбирающим £2.1.5.$} данное поле (ii} Для данного 'ВИДА';

Случаи В: 'СОСТАВНОЕ' является ‘МАССИВОМ из ВИЛА*:

- совместно исполняются все составляющие нижние- и верхние-границы данного D и его описатель DL;

Для i=l, .... п, где п - число векторов', содержащихся в 'МАССИВЕ'.

■ пусть Ц — выдача нижней-гранкцы, если она есть, i-ro составляющего диапазона-вектора этого D, а иначе h будет 1;

• пусть и; - выдача верхмей-границы этого диапазона-вектора, Wсостоит из

(i) паспорта (£1,,U|), .... (In,un)),

(ii) вариантов выдачи описателя D1 для 'ВИДА';

Случай С: ’СОСТАВНОЕ' является 'подвижным МАССИВОМ из ВИДА': - W - выдача описателя данного D.

с) Сцена S, „развертываемая из” фактического-описателя-СОСТАВНО-ГО D в окружении Е. о пределяется: следующим образом:

Если видимым примой наследник D1 данною Весть некото-рый мидика-тор-вила.

то

* S - сиена, развертываемая из сцены, выдаваемой D1 в Е. иначе {D1 - определитель} .

• S - составляется из D1 и Е.

d) Всякий данный описатсль-ЗН АЧЕНИЯ „специфицирует” вид 'ЗНАЧЕНИЕ'

63

С.62 ГОСТ 17974-88

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

-{Некоторые виды должны фиксироваться, потому что вид никакого значения нс может быть подвижным {2.1 .З.б.Ь}. Родственные объединения нс должны допускаться во избежание двусмысленности. Множество 'ПРЕДСТАВИТЕЛЕЙ' н 'ОБЫЧНЫХ' может быть сплетено заменой всех этих 'ПРЕДСТАВИТЕЛЕЙ' их 'ОБЫЧНЫМИ’ компонентами. }

4,7.1, Синтаксис

А) НЕСОСТАВНОЕ :: ПРОСТОЕ; ИМЯ ВИДА; ПРОЦЕДУРА. ПРЕДСТАВИТЕЛЬ; пустое значение.

В) 7ОБЫЧНОЕ:: !ОБЫЧНЫЕ; ПУСТО.

С) ?ЗНАЧЕНИЯ :: .'ЗНАЧЕНИЯ; ПУСТО.

а) ЕСЛИ НЕСОСТАВНОЕ фиксирует

НЕСОСТАВНОЕ <b, с.46b, 521с. 62а, 7 In} : ЕСЛИ истина.

Ь) ЕСЛИ МАССИВ из ВИДА2 фиксирует

’ПОДВИЖНЫЙ МАССИВ изВИДА! {b, е, 46b, 521с, 62а, 71 п}:

ЕСЛИ ВИД2 фиксирует ВИД I {а, Ь, с, -}.

е) ЕСЛИ структура содержащая ИЮЛЯ 2 в себе

фиксирует структуру содержащую ИЮЛЯ 1 иссяк {b.e. 46b. 521с, 62а. 71п}:

ЕСЛИ1ПОЛЯ2 фиксируют !ПОЛЯ1 {фе,}

d) ЕСЛИ !П0ЛЯ2 ПОЛЕ2 фиксируют ИЮЛЯ 1 ПОЛЕ! {с, d}: ЕСЛИ Ч1ОЛЯ2 фиксируют ’ПОЛЯ! {d, е, -}

и ПОЛЕ2 фиксирует ПОЛЫ! {е, •}.

с) ЕСЛИ СЛОВО для выборки ВИД.А2

фиксирует СЛОВО для выборки ВИДА! {с, d}:

ЕСЛИ ВИЛ2 фиксирует ВИД I {а.Ь, с. - }.

f) ЕСЛИ ЮБЫЧНЫЕ1 родственны ?ОБЫЧНЫМ2 {f,46s}: если (7ОБЫЧНЫЕ2) есть (ОБЫЧНОЕ 20БЫЧНЫЕЗ), ЕСЛИ ГОБЫЧНЫЕ1 ОБЫЧНОЕ родственны ’ОБЫЧНЫМЗ {f} или ОБЫЧНОЕ скреплено с объединением 'ОБЫЧНЫХ I 7ОБЫЧНЫХЗ воедино {7]щ};

если (’ОБЫЧНЫЕ2) есть (ПУСТО). ЕСЛИ ложь.

g) ЕСЛИ ’ЗНАЧЕНИЯ сплетены с ЮБЫЧНЫМИ {g, 46s}:

если ('ЗНАЧЕНИЯ) есть (ЮБЫЧНЫЕ), ЕСЛИ истина;

если ('ЗНАЧЕНИЯ) есть (’ОБЫЧНЫЕ объединение 'ОБЫЧНЫХ! воедино ’ЗНАЧЕНИЯ),

ЕСЛИ 7ОБЫЧНЫЕ ЮБЫЧНЫЕ 1 ’ЗНАЧЕНИЯ сплетены с ’ОБЫЧНЫМИ {g}.

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

об (имя цел, дел) (люк цел)

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

64

ГОСТ 27974-88 С.63

□мд ссп ■ об (серели. петер);

об (имясеп. сеп) (лок сеп)

двусмысленно. Отметим. что из-за сплетения (, правило g.) вид. специфицируемый описателем данного ядра, точнее обозначается описателем об (имя сеп. ссреди, пегер) .}

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

4.8.1. Синтаксис

А} ИНДИКАТОР :: идентификатор; индикатор вида; обозначение операции.

В} ПРИМЕНЯЮЩИЙ :: определяющий, использующий.

С) ’ПАРЫ ;: 'ПАРЫ; ПУСТО.

D) ГП АРЫ :: ПАРА; !ИДРЫ ПАРА.

Е> ПАРА :: ОПИСАНИЕ; МЕТКА: ПОЛЕ.

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

Е) ПРИЗНАК :: ВИД; ЗНАЧЕНИЕ НОМЕР; БИНАРНОЕ; метка; выборка ВИДА.

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

а) определяющий ОБОЗНАЧЕНИЕ ИНДИКАТОР в СРЕДЕ с новыми ?ПАРАМШ ОБОЗНАЧЕНИЕМ для ПРИЗНАКА 7ПАРАМИ2 выдающий ПРИЗНАК {32с, 35 b, 42b, 43b, 44с, f. 45с, 541f}: знак ОБОЗНАЧЕНИЕ {942A, D, F, К}, если ОБОЗНАЧЕНИЕ для IПРИЗНАКА не зависит

01 ?ПАР1 ?ПАР2 <71а. Ь.с}

Ь) использующий ОБОЗНАЧЕНИЕ ИНДИКАТОР в СРЕДЕ выдающий ПРИЗНАК {42с, 46а,b, SD, 542а, Ь, 544а}: знак ОБОЗНАЧЕНИЕ <WA, D, F,К}, если ОБОЗНАЧЕНИЕ для ПРИЗНАКА идентифицировано в СРЕДЕ {72а}.

с) определяющий СЛОВО указатель поля вида ВИД среди 9ПАР1 СЛОВА для выборки ВИДА 7ПАР2 {460: знак СЛОВО {942А}, если СЛОВО для выборки ВИДА

нс зависит от ?ПАР1 ?ПАР2 {71а, Ь,с} d} нспол ьзуюший СЛОВО у ка затель поля вида ВИД среди ИЮЛЕЙ {531а}: знак СЛОВО {942 А}.

если СЛОВО для выборки ВИДА находится в ИЮЛЯХ {72b. с, -}.

е)" ПРИМЕНЯЮЩИЙ ОБОЗНАЧЕНИЕ-индикатор в СРЕДЕ

выдающий ПРИЗНАК:

ПРИМЕНЯЮЩИЙ ОБОЗНАЧЕНИЕ ИНДИКАТОР в СРЕДЕ выдающий ПРИЗНАК {а.Ь}.

о • ПРИМЕНЯЮЩИЙ СЛОВО указатель доля шдв ВИД-ПРИМЕНЯЮЩИЙ СЛОВО указатель поля вида ВИЛ среди ДОЛЕЙ {с, d}.

65

$-1361

С.6.4 ГОСТ 27974 ИЗ

€ Примеры:

а) х(в веш х. у) Ь) х (в х + у)

с) следующая (см. 1.1.2) d) следующая (в следующая из

проект) 1

4.8.2. Семантика

а) Когда какое-нибудь значение или сцена V „приписывается” определяющему ОБОЗНАЧЕНИЕ-индикагору-выдаюше.му-ПРИЗПАК в окружении Е. 'ОБОЗНАЧЕНИЕ для ПРИЗНАКА' получает доступ к V внутри участка этого Е <2.1.2.с}-.

Ь-) Выдача W использующего-ОБОЗНАЧЕН ИЕ-имдмкатора-выдаюшего-ПРИЗНАК I в окружении Е, составленном! из Окружения Е1 и участка L, определяется следующим образом:

Если L соответствует '70ПИСАНИЯМ ’МЕТКАМ', s которые заложено { l.t.4J.c} ио 'ОБОЗНАЧЕНИЕ для ПРИЗНАКА',

то W - значение или сцена, если они существуют, доступные для ’ОБОЗНАЧЕНИЯ для ПРИЗНАКА’ внутри L, и не определено в про-тивном случае;

иначе W - выдача этого I в El.

{Рассмотрим замкнутое-предложение, содержащее другое такое же: начало прим блок I прим

цел i =421, цел а := 5. проц р = пуст печ (а);

начало прим блок 2 прим

веш а; а := i; р конец конец

К тому времени, когда в ходе исполнения встретится а:= i, будут созданы два новых окружения, по одному для каждого блока.

Сначала идет поиск опрсделяющсго-идснтификатора i в Е2,младшем из них. и, поскольку он не найдется гам, то начнется поиск (успешный) в старшем окружении в Е I Участок этого EI соответствует 'букве и лат для целого букв* а для имени целого букве пз лат для процедуры вырабатывающей пустое значение'. Следовательно, выдачей данного использующего идентификатора i будет значение 421, приписанное (а) ’букве и лат для целого внутри участка окружения Е1. Однако выдача идентификатора а в а := i найдется в участке окружения Е2.

Когда вызывается (5.4.3.2.Ь) процедура р, ее основа исполняется в некотором окружений ЕЗ. устанавливаемом вокруг Е1, но no Е2 (3.2.2-Ь). Это означает, что- в отношении области действия ЕЗ младше Е2, а Е1 - составляющее окружение этого ЕЗ. Когда а должно печататься, оно является выдачей идентификагора-выдающего-имя-аелого. описанного во внешнем нз имеющихся блоков, и эта выдача есть 5.

Таким образом, смысл индикатора, используемого, но нс описанного внутри процедур».!, определяется контекстом. 8 котором эта процедура была создана, з нс тем. в котором она вызывается.)

66

ГОС Т 27974 - 88 С.65

5. ОСНОВЫ

•(Основы используются для программирования примитивных дейсгвий или прекращения в единичные компоненты больших конструктов из разд 3.

Приведснные ПОНЯТИЯ. по не доопределения, являются результатом приведений (разд 6) 1 в случае ЗАКРЫТЫХ-предложений любые требуемые приведении осуществляются внутри них

Из задаваемого ниже синтаксиса следует, например, что текст из отчет + ..коней” разбирается как (текст из отчет) * ..конец”, поскольку выборка есть 'ВТОРИЧНОЕ', а формула - 'ТРЕТИЧНОЕ'3

5.1. Синтаксис

А) ОСНОВА (32d7 :: приведенное присваивание <52)а}:

приведенное отношение одноименности {522а}:

приведенный текст процедуры 54-1 а.Ь ; переход (544а}: пропуск (523а} ; ТРЕТИЧНОЕ { »} .

В) ТРЕТИЧНОЕ (A.52lb.522aJ .: псевдоимя (524а} .

приведенная АРНАЯ формула { 542а.bj . ВТОРИЧНОЕ ( С}

С) ВТОРИЧНОЕ {В, 531а. 542с} -: приведенная иыборка {531а) :

приведенный ЛОКАЛИЗУЮЩИЙ генератор { 52 3а} ;

ПЕРВИЧНОЕ {D}.

D) ПЕРВИЧНОЕ {С. 532а. 543а) приведенная вырезки (S32aJ ;

приведенный вызов { 55|а};

приведенное изображаемое {SOa}:

приведенное ядре £ 551а] ;

приведенный текст формата {А341з} ;

приведенный использующий СЛОВО идентификатор [48b} : ЗАКРЫТОЕ предложение { 31а.33а.с. d. е. 34а. 35а},

(Гипсрправылз для ’приведенной ФОРМЫ ПРИВОДИМО выдающей ЗНАЧЕНИЕ’, данные в 6.1.1 .а, Ь, с, d и с, служат входами в синтаксис при-, ведений Когда этот синтаксис приведений запрашивается для какой-то 'приведенной ФОРМЫ ПРИВОДИМО выдающей ЗНАЧЕНИЕ', он в конце кондов возвратятся (, исключая тупики,) к некоторому правилу для 'ФОРМЫ выдающей ЗНАЧЕНИЕ!' в данном разделе. Именно на эти правила даны ссылки в метаправилах, перечисленных выше Синтаксис приведений престо преобразует 'ЗНАЧЕНИЕ' в 'ЗНАЧЕНИЕ!' для семантики; в это время нс порождается никакой другой видимый наследник } а)" доопределение ДЕЙСТВУЮЩЕЕ.

переход ДЕЙСТВУЮЩИЙ {544а] ;

пропуск ДЕЙСТВУЮЩИЙ (5 52 } .

псевдоимя ДЕЙСТВУЮЩЕЕ {524а}.

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

Л* 67

С.66 I ОС! 27974-88

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

{ Именам можно присваивать (5.2.1). их можно сравнивать с другими именами <5.2.21 и создавать (5.2.3)./

5.2 I Присваивания

j В присваиваниях значение „присваивается” имени. Например, в х :• 3.14 выдаваемое источником 3-14 вещественное число присваивается имени, выдаваемому получателем х.}

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

а) присваивание в СРЕДЕ выдающее ИМЯ ВИДА { 5AJ : получатель выдающий ИМЯ ВИДА в СРЕДЕ (b) знак присвоить /94с} .

источник вида ВИЛ в СРЕДЕ {с}.

Ъ) получатель выдающий ИМ Я ВИДА и СРЕДЕ { a }

ТРЕТИЧНОЕ в СРЕДЕ мят ко выдающее ИМЯ ВИДА £5Bj

с) источник вида ВИД1 в СРЕДЕ {a. 44d} :

основа в СРЕДЕ сильно выдающая ВИД2 132dj если ВИЛ2 фиксирует ВИД I { 47а, Ь, с, -) .

{ Примеры:

а) х := 3 14 Ь) х

с) 3.14 }

5.2 1.2. Семантика.

а) Всякое присваивание А исполняется следующим образом:

• пуст» N и W - /совместные} выдачи ( имя и некоторое другое значение } получателя и источника этою А;

• W присваивается { b} N:

• выдачей А служит К

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

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

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

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

Случай А: 'ВИД' есть структура содержащая ’ПОЛЯ в себе': Для каждого 'СЛОВА', выбирающего поле в W.

• зю поле присваивается подымени, выбираемому по 'СЛОВУ' в N:

Случай В: 'ВИД' есть ’МАССИВ из ВИДА Г:

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

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

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

• этот элемент присваивается подымени. выбираемому по I в N;

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

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

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

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

88

ГОСТ 2797 4-88 С. 6.7

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

• N снабжается подыменами {2.1.3.1g} ;

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

• лот элемент присваивается подымени. выбираемому но IbN;

Остальные случаи {. например, если 'ВИД' есть 'ПРОСТОЕ' или некоторый'ПРЕДСТАВИТЕЛЬ'} : .

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

{ Если ааио

под» [1:0) [1:3] пел тголвфик-с,

то наличие скрытого элемента { 2.1.3.4 с} гарантирует, что смысл присваивания подвфикс :«лок (1 : 1) [1 : 3] цел вполне определен, в то время как смысл присваивания подвфикс :«лок (1 :1J (1:4] цел не определен, так как граничные пары ио второму измерению различны.}

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

( Отношснил-онноимсниослк могут использоваться, чтобы узит, совпадают ли два имени одною и того же вида.

Например, после присваивания проект :■ (.^бв". нил) отношение-одноименности следующая из проект :■: имя книга (нил) выдает значение истина. Однако следующая из проект : = : нил: выдаст ложь, поскольку оно эквивалентно следующая из проект :=: имя имени книга (нил), здесь выдача ТРЕТИЧНОГО следующая из проект есть безо всяких приведений имя, именующее второе поле структуры, именуемой значением проект и, следовательно, не являющейся псевлоименем.}

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

а) отношение одноименности в СРЕДЕ выдающее логическое { 5а} :

если мягко уравнивает ПРИВОДИМО! и ПРИВОДИМО! {.32f j , ТРЕТИЧНОЕ! в СРЕДЕ

ПРИВОДИМО! выдающее имя ВИД {511} , сравнитель имен { b}-,

ТРЕТИЧНОЕ! в СРЕДЕ

ПРИВОДИМО! вылаюшее имя ВИД /5В/.

Ь) сравнитель имен { а} : знак есть f 94f};

знак не есть («О

{ Примеры.

а) следующая из проект :»: имя книга (нил)

Ь) :*: • :*.}

{ Данным синтаксисом нс порождается al (i) :=: al Ц]. Тем самым предотвращается сравнение временных имен (2.1_3.6.с> посредством отно-шепни, одноименности.}

5.2.2.!. Семантика.

Выдача W отношения-одноименности 1 определяется следующим образом.

69

с.й ГОСТ 27974-88

• пусть № и N2 - {совместные} выдачи ТРЕТИЧНЫХ этого I;

Случай А: Знаком сравиитсля-имен этого 1 является знак-есть:

W - истина, если { имя) NI есть то же, «по и N2, и ложь в противном случае;

Случай В: Знаком сралн теля имен этого 1 является знак-не-есть:

• W - истина, если Ml не есть то же, что и ^2. и ложь в противном случае.

5.2.3.1енераторы

{ Исполнение генератора, например лок вещ в хх :■ лок веш := 3.14. или задания-генератора, например |1: п) лит в fl с п] лит u.v;. включает создание имени, т.е. отведение места в памяти.

Использование локального-t енератора предполагает (в большинстве реализации) отведение памяти в динамическом стеке, тогда как глабаль-ные-генераторы предполагают отведение памяти в другой области, называемой „кучей", в которой для управления памятью можно применять технику, называемую обычно ..сборкой мусора". В силу меньшей эффективности последнего режима локальные-генераторы лучше, так что в задами и-ге-нсраторов описаний переменных можно опускать только лок.)

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

{ ЛОКАЛИЗУЮЩИЙ :: локальный; глобальный; первичный.) а) ЛОКАЛИЗУЮЩИЙ генератор в СРЕДЕ

выдающий имя ВИДА f 5С } :

знак ЛОКАЛИЗУЮЩИЙ [ 94d, ) , фактический описатель ВИДА в СРЕДЬ [4ба) Ь) задание ЛОКАЛИЗУЮЩЕГО генератора

в СРЕДЕ ВЫДАЮЩЕГО ИМЯ ПРОВИДА {44е) :

знак ЛОКАЛИЗУЮЩИЙ {‘Md, ) .

факт йческий описатель ПРОВИДА в СРЕДЕ { 44b, 46а) ;

если (ЛОКАЛИЗУЮЩИЙ) есть (локальный),

фактический описатель ПРОБИЛА в СРЕДЕ { 44b, 46а} ;

{примеры:

а) лок вещ Ь) лок веш • вещ)

[Не существует представления для снывола-первичный (см, 9.4.а))

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

а) Выдача W ЛОКАЛИЗУЮЩЕГО-генератора или задания-ЛОКАЛИЗУЮ-ШЕГО-гелератора G в окружении Е определяется следующим образом: • W - вновь созданное имя, начинающее именовать [2.13.2л) выдачу в Е факгнческого-описзтеля [ 4.4.2 4. 4.6.2.а) из С;

• W по области действия га же, что и окружение EI, определяемое следующим образом:

Случай А: 'ЛОКАЛИЗУЮЩИЙ' есть 'локальный':

• Е1 — .локализующее окружение” [ bj, доступное из окружения Е;

Случай В: 'ЛОКАЛИЗУЮЩИЙ'есть’глобальный’:

?0

ГОСТ 27974-88 С.69

• El является {первым окружением, созданным в ходе исполнения текущей собственно-программы, являющимся} таким, что:

(0 первичное окружение [2.2.2.а} - это окружение окружения окружения этого El f именно так!} и

(ii) El есть Е или старше Е;

Случай С: * ЛОКАЛИЗУЮЩИЙ' есть первичный':

• Е1 первичное окружение;

• если W - составное имя {2.1 J.2.bj, то W снабжается подыменами fZ.lJJ.e. 2.1.3 4 g}.

{ Единственное место, где встречаются примеры первичных-генерато-ров, - это стандартное- и системное вступления (103.1.Ih, 103.I.4.b. п, о, 10.4.1.а).

Когда G есть заданке-гекераторэ-выдаюшего-имя-процедуры, вид выдачи W не существен.}

Ь) „Локализующим окружением’", доступным из окружения Е, является окружение Ek определяемое следующим образом:

Если Е - „нелокзлиэукмцее” {з.2.2.Ь} ,

го Е1 - локализующее окружение, доступное из окружения этого Е;

иначе Е| есть Е.

{Окружение является нелокализуютим, если оно устанавливается согласно Поспелова тельному ■'предложению или выясняющему-предложению. которое не содержит составляющего описания-вида, -идентификатора или операции, либо согласно заглавию-цикла (3 5.l b) или спецификации (34.1.j,k).]

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

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

а) псевдоимя в- СРЕДЕ сильно выдающее имя ВИДА { 5BJ : знак нил {94f}

{Пример:

а) нил{Нил - это аналог нуля для имен

5.2.4 2. Семантика.

Выдачей псевдо имени является псевдоимя.

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

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

5.3.1. Выборки

{ Выборка выбирает поле из структуры или (если это - выборка из массива”) некоторый массив из массива, элементами которого служат структуры. Например, вч из z выбирает первое вещественное поле (называемое обычно вещественной частью) выдачи этого Z. Если г выдает имя, то вч нэ z также выдает имя. ио если g выдает комплексное значение, то вч из g выдает вещественное значение, а нс именующее его имя }

71

СЛОГОСТ 27974- 88

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

А) 'ИМЯ :: ИМЯ; ПУСТО.

В) ’ССЫЛКА НА :: ИМЯ; ИМЯ подвижного; ПУСТО.

[ИМЯ :; имя; временное имя.}

.1.1 выборка в СРЕДЬ выдающая'.’ИМЯ ВИДА 1 { 5Cj :

не пользующий СЛОВО указатель ПО-ля

вида ВИД! среди !ПОЛЕЙ {48dJ. знак мэ {94fJ , ВТОРИЧНОЕ в СРЕДЕ слабо выдающее ?ИМЯ

структуры содержащей ИЮЛЯ в себе {5С} ;

если (ВИД!) есть (МАССИВиз ВИДА2).

использующий СЛОВО указатель поля

вида ВИД? среди ’ПОЛЕЙ [49dj . знак из {94fJ, ВТОРИЧНОЕ в СРЕДЕ слабо выдающее ТССЫЛКУ

НА МАССИВ из структур содержащих !ПОЛЯ в себе (5CJ , сеян (?ИМЯ) выводится из ("’ССЫЛКИ НА) { Ь. с. • }.

Ь) ЕСЛИ (временное имя) выводится из

(ИМЕНИ подвижного) [ а. 532а.66а} : ЕСЛИ истина.

с) ЕСЛИ (?ИМЯ) выводится из

<?ИМЕНИ) [ а. 532а. 66а } : ЕСЛИ истина.

i Примеры:

а) вч из z • вч из z 1}

[ Вид вч кз z начинается с 'имя', так как вид z начинается с него же.

Пример:

цел возраст :=7; ст (лог пол, цел возраст) жиль;

возраст из жиль := возраст;

Отметим, что получатель возраст из жиль выдает ими, так как жиль само выдает имя. После описания-тождества

ст (лог пол. цел возраст) джек ■ (истина, 9),

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

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

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

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

• требуе тся, чтобы V {. если оно имя.} ле было пссвдокменем;

W - значение, выбираемое в [2.1.3.3.з, е, 2.1.3,4-kJ , или имя. генерируемое из { 2.1.3.4 1} V по указателкнюля этого S.

f Выборка мз имени, именующего структуру, выдает существующее подыми (2.1.3.3.е) это-го имени. Имя. порожденное из имени, именующего-массив, посредством выборки со ВГОРИЧНЫМ-выдаюижм-МАССИВмз-ВИЦА (как в вч из 2 I). есть имя, которое может как быть, так и не быть вновь созданным для этой цели. J

5.3.2. Вырезки

1 Вырезки подучаются посредством индексации, например xl [i], Вырезания, например хЗ [2 : п), или и того и другого, например х2 [j : n, j]

72

ГОСТ 27974-88 с.71

или х2 (, к]. И индексация, и вырезание могут Применяться только к ПЕРВИЧНЫМ. например к xl или (р {хНу!), но не к вч из z I. Значением вырезки может быть или один из элементов выдачи ее ПЕРВИЧНОГО, или под множество, таких элементов; например, xl (ij - вещественное число из вектора вещественных чисел xl. х2 (i.) представляет собой Но строку матрицы х2, а х2 [, kJ — ее k-й столбец.)

5.3.2.1. -Синтаксис.

А) ’МАССИВ :: МАССИВ; ПУСТО.

а) вырезка в СРЕДЕ выдающая ’ИМЯ ВИЛА! (SI)}

ПЕРВИЧНОЕ в СРЕДЕ слабо выдающее ••ССЫЛКУ НА МАССИВ! из ВИДА! { 5D] , индексирующий ОФОРМЛЕННЫЙ индексатор МАССИВА! в СРЕДЕ оставляющий ПУСТО { Ь. с, •}.

если (?ИМЯ) выводится из (?ССЫЛКИ НА) ( 531b.с. J : если (ВИДГ1 есть (МАССИВ2 из ВИДА2),

ПЕРВИЧНОЕ в СРЕДЕ слабо выдающее ’ССЫЛКУ НА МАССИВ! из ВИДА2 ( 5»}. индексирующий ОФОРМЛЕННЫЙ индексатор МАССИВА!

в СРЕДЕ оставляющий МАССИВ2 f b. d,-}.

если (?ИМЯ) выводится из (’ССЫЛКИ НА) { 531Ь,с, ] . (МАССИВ :: вектор; МАССИВ векторов.)

b । индексатор вектора МАССИВОВ в СРЕДЕ оставляющий ’МАССИВ! 7МАССИВОВ2 (а.Ь) : индексатор вектора в СРЕДЕ, оставляющий '.’МАССИВ! { с. d. ■). знак а также («0.

индексатор МАССИВА в СРЕДЕ оставлятощий 7МАССИВ2 { Ъ, с„ d, •} .

с) индексатор вектора и СРЕНЕ оставляющий ПУСТО { a, b} индекс в СРЕДЕ (е }.

d) индексатор вектора в СРЕДЕ оставляющим вектор fab) : отрезок в СРЕДЕ [tj;

возможная -сдвинутая нижняя граница в СРЕДЕ f gj

е) индекс в СРЕДЕ f с г: _

Основа в СРЕДЕ раскрыто выдающая целое ( 32dJ

О отрезок в СРЕДЕ (с):

возможная ннжння граница в СРЕДЕ (46m], знак вплоть до

возможная верхняя граница в СРЕДЬ {-46л} . •

возможная сдвинутая нижняя |раница в СРЕДЕ [ gj .

g) сдвинутая нижняя граница в СРЕДЕ |d,f)

знаке [94fj, нижняя граница в СРЕДЕ [ 46m J .

h)* ограничение : индекс в СРЕДЕ £ е} ; отрезок в СРЕДЕ 1 f J ; возможная сдвинутая нижняя граница а СРЕДЕ (g].

i)" индексатор:

73

С.71 ГОСТ 27974-88

индексатор МАССИВА в СРЕДЕ

оставляющий 7МАССИВ ( b, с, d j.

j)* грань : индекс в СРЕДЕ [с); нижняя граница в СРЕДЕ f46m};

верхняя граница в СРЕДЕ {46п} ;

сдвинутая нижняя граница в СРЕДЕ [g] .

{ Примеры:

a) x2{i.j) -x2[,j|

Ь) 1 :2,j (в х2 [1 : 2J]) • i.j (в х2 [i.j])

с) j (в х2 Ц :2,j) d) 1 :2 • @0 (в xl [ФО))

e)j fl 1 :2®0

- g)@0}

{ Индекс уменьшает число измерений на одно, а отрезок не меняет ею. В правиле (а) 'МАССИВ' отражает число ограничений в вырезке, а 'МАССИВ!' - число тех из них. которые являются отрезками или возможными сдвинутыми-нижними-граюшамм.

Если значение, из которого должна быть сделана вырезка, есть имя. то выдачей этой вырезки также будет имя. Кроме того, если вил исходного имени есть имя подвижного МАССИВА из ВИДА', го эта выдача будет временным именем (см. 2.1.3.6.с).}

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

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

• пусть V и (|), .... 1П) — {совместные выдачи} ПЕРВИЧНОГО вырезки S к индексатора £ Ь } из S;

• требуется, чтобы V /, если оно имя.} ие было псевдоименем;

• пусть ((ri, si),..., (rn, sn)) - паспорт выдачи V или значения, именуемого V;

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

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

• требуется, чтобы rj < 1; < s^ Случай В: Ц - тройка (I, u, 1') .

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

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

• требуется, чтобы г; < L и V < $j;

• пусть D будет О. если Г отсутствует и L — Г впротивном случае; £ О - это число, которое следует вычест ь из L для того, чтобы получить сдвинутую нижнюю границу;)

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

• W - значение, выбираемое в £ 2.L3.4.a, g, i). или имя. генерируемое из £ 2.1.3.4 j } V по (1|,.„, 1П).

Ь) Выдача индексатора 1 вырезки S есть отрезок {2.1.3.4.hJ или индекс (2.1.3.4.a} (Ij, ..., |п), определяемый следующим образом:

составляющие грани, вырезки S исполняются совместно;

Для i = I,.... п, где п - число составляющих ограничений вырезки S, Случай A: i-e ограничение есть индекс

• h ^ £ целое число, которое есть} выдача этого индекса;

74

ГОСТ 27974-88 G 73

Случай В- i-e ограничение есть отрезок Т:

• lj - тройка (1. и, Г), где

• 1 — выдача составляющей ннжней-гранииы из Т, если ома

есть, а иначе отсутствует,

- и - выдача составляющей верхней-границы из Т, если она есть, а иначе отсутствует,

• I' - выдача составляющей сдвину той-ниж ней границы из Т. если она есть, а иначе 1:

Случай С; i-e ограничение есть- возможна ж двину га л-мижняя-г ранииа N: - lj - тройка (.Отсутствует, отсутствует. Г). где

► f — выдача сдвииутой-нижней-Гранины из N, если она есть, а иначе отсутствует.

{ Отметим, что если (Ц , ..., 1П) не содержит троек, то это индекс, выби-раюгиий один элемент; в противном случае это отрезок.-выбирающий подмножество элементов }

( Вырезке из имени, именующего массив, выдает существующее полымя (2.1 3.4J) этого имени, если все составляющие ограничения этой вырез ки являются индексным 8 противном случае она выдает генерируемое имя. которое может как быть, так и не быть вновь созданным для этой пели. Следовательно, выдача-отношения-одноименности xl [I 2] :=: xl [1 :2J не определена, хотя xl [1] :=: xi Ц] должно всегда выдавать истина.)

{ Различные возможные Гранины в выдаче вырезок иллюстрирую тс л •следующими примерами, для каждого из которых показан паспорт значения. именуемо!о соответствующей выдачей:

(О : 9.2 : И] цел i 3:

13 Ц.З : 10@3] X [ЦЗ. 10»*';

гЗ (1,3 :|01 *((!,»»*;

13 Ц.З :] *((1.9))*;

13 И,:] А ((1,10))*;

13 {1, ] * (2.11»*';

13 1.2] * (0,9» *J

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

[Процедуры создаются из текстов-процедур (5.4.1) или переходов (5 4 4); их можно ..вызвать” при помощи вызовов (5.4.3), формул (5 4 2) или посредством распроцедуривайия (63) .}

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

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

Примеры.

75

G74 ГОСТ 27974-88

nycr : печ (х);

(имя веща,весаb) лог : (a<b 1а:=Ь; истина I ложь).)

5.4.1 J. Синтаксис.

а) текст процедуры в СРЕДЕ 1 выдающий

процедуру вырабатывающую ЗНАЧЕНИИ $44d, 5д) : формальный описатель ЗНАЧЕНИЯ в СРЕДЕ I {46b} , знак признак процедуры { 941} .

основа в СРЕДЫ сильно выдающая ЗНАЧЕНИЕ f32d)

b) текст процедуры в СРЕДЕ 1 выдающий процедуру

с ^параметрами вырабатывающую значение {444,5.4} упакованное кратким

определяющее новые 'ОПИСАНИЯ2 задание

аргументов в СРЕДЕ! с новыми ЮПИСАНИЯМИ2 [е}.

если ЮПИСАНИЯ2оказались ПАРАМЕТРАМИ (c.d. ] . формальный описатель ЗНАЧЕНИЯ в СРЕДЕ 1 { 46bj .

энак примак процедуры { 94f}.

основа в СРЕДЕ! с новыми ^ОПИСАНИЯМИ?

сильно выдающая ЗНАЧЕНИЕ {32d}-

с) ЕСЛИ ЮПИСАНИЯ ОПИСАНИЕ оказались

!ПАРАМЕТРАМИ ПАРАМЕТРОМ { b.-с} :

ЕСЛИ ЮПИСАНИЯ оказались «ПАРАМЕТРАМИ (с, d. •} и ОПИСАНИЕ оказалось ПАРАМЕТРОМ {d,-} { ПАРАМЕТР :: параметр вида ВИД.}

d) ЕС ЛИ СЛОВО для ВИЛА оказалось параметром вида

ВИД {b.c}: ЕСЛИ истина, с) определяющее новые ’ОПИСАНИЯ’

задание аргументов в СРЕДЕ2 { b. е. 34j }:

формальный описатель ВИДА в СТЕЛЕ {46b} , групповое определение параметров вида ВИД через ’ОПИСАНИЯМ в СРЕДЕ’ [ 41b, с} ;

если (ЮПИСАНИЯ2> есть (ЮПИСАНИЯЗ !ОПИСАНИЯ4>, формальный описатель ВИДА в СРЕДЕ? { 46b} , групповое определение параметров вида ВИД

через ЮПИСАНИЯЗ в СРЕЛЕ2 {41b,с}.

знак а также { 94f} ,

определяющее новые ЮПИСАНИЯ4 задание аргументов в СРЕДЕ2 ( е} .

0 определение параметра вида ВИД

через СЛОВО2 для ВИДА в СРЕДЕ2 ( 41с} : определяющий СЛОВО?

идентификатор в СРЕЛЕ2 выдающий ВИД { 48а} .

g)* формальный параметр вида ВИД:

определение параметра вида ВИД через СЛОВО для ВИЛА в СРЕДЕ { f}.

76

С.75 ГОСТ JT074-M

£ Примеры:

а) вещ ; печ х 10 bl (лот а. Ы лог : <а I b • ложь!

е) лог а. Ь • лог а. лог b f) а }

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

Выдачей текста-процедуры Т а окружении Е является процедура, составленная из

(i> Т и

(it) окружения, необходимого для J^JJ-c } Т в Е.

5.4.2. Формулы

{Формулы бывают бинарные и унарные, например х ♦ i или абс х. Порядок исполнения формулы определяется приоритетами се обозначений-операций; первыми исполняются унарные формулы, затем - бинарные, от высшего приоритета к низшему J

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

Л) БИНАРНОЕ :: приоритета ПРИОРИТЕТ.

В) УНАРНОЕ :: приоритета III III III I.

СУ АРНОЕ :: БИНАРНОЕ; УНАРНОЕ.

D) -'НОМЕР :; НОМЕР: ПУСТО.

а) БИНАРНАЯ формула в СРЕДЕ выдающая ЗНАЧЕНИЕ [c.^BJ БИНАРНЫЙ ’’НОМЕРА операнд выдающий ВИД! в СРЕД! jc.}. использующее ИНФИКС обозначение операции в СРЕДЕ

выдающее процедуру с параметром вида ВИЛ 1

параметром вида ВИД? вырабатывающую ЗНАЧЕНИЕ L^bJ.

если ИНФИКС пли БИ НАР! ЮГО

илеит ифиимровац в СРЕДЕ {?2а} .

БИНАРНЫЙ НОМЕРА операнд выдающий ВИД? и СРЕДЕ £ с. -}

Ь) УНАРНАЯ формула в СРЕДЕ выдающая ЗНАЧЕНИЕ, {с. 5В} : использующее ПРЕФИКС обозначение операции в СРЕДЕ

выдающее процедуру с параметром вила КИЛ вырабатывающую ЗНАЧЕНИЕ f48b}.

УНАРНЫЙ операнд выдающий ВИЛ в СРЕДЕ £ с J.

с} АРНЫЙ операнд выдающий ВИД в СРЕДЕ ( а. Ь}

приведенная АРНАЯ формула в СРЕДЕ [a b}

крепко выдающая ВИЛ {61b} :

седи ТАРНОЕ) есть (УНАРНОЕ!, ВТОРИЧНОЕ в СРЕДЕ крепко выдающее ВИЛ [SCJ Ь) • формула выдающая ЗНАЧЕНИЕ:

.АРНА Я формула в СРЕДЕ выдающая ЗНАЧЕНИЕ { a. b}

е)* обозначение ИНФИКСОМ бинарной one рации

выдающее ДВУМЕСТНУЮ:

ПРИМЕНЯЮЩЕЕ ИНФИКС обозначение операции в СРЕДЕ выдающее ДВУМЕСТНУЮ f 48а. b) . fl* обозначение ПРЕФИКСОМ унарной операции

выдающее ОДНОМЕСТНУЮ:

ПРИМЕНЯЮЩЕЕ ПРЕФИКС обозначение операции

С. 76 ГОСТ 27974-8-8

в СРЕДЕ выдающее ОДНОМЕСТНУЮ [48л. b) .

g)* операнд вида ВИД:

ЛРНЫЙ операнд выдающий ВИД и СРЕДЕ [cj,

[ Примеры:

а) - х + ) bj — х

О - х • 11

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

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

- пусть R — процедура, выдаваемая обозначение м-оперзцни формулы F;

- пусть Vj..... Vn {п есть 1 или 2} - [совместные} выдачи операндов формулы F в { локализующем., см. 3.2.2.Ь.) окружении Ы , устанавливаемом вокруг £;

• W - выдача вызова £5.4.J.2.bJ процедуры R в El с V],..., Vn;

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

[ Отмстим, что a t b нс в точности ю же, что и аь в обычных обозначениях; действительно, как (-It 2 + 4 = 5). так и (4 — 1 t 2 = 3) имеют значение истина, поскольку лервык, символ-минус является обозначенисм-уна рной-операции, а второй - обозначением-бинарной-операции. }

5.4,3. /Вызовы

[ Вызовы используются для задания исполнения параметризованных процедур с фактичееккми-гаараметрами.

Примеры:

sin (х) • (р I sinl -cos) (х).}

S.4.3.1. Синтаксис.

а) вызов в СРЕДЕ выдающий ЗНАЧЕНИЕ {5DJ;

ПЕРВИЧНОЕ в СРЕДЕ раскрыто выдающее процедуру

с ’Параметрами вырабатывающую значение [5dJ.

упакованные кратким

фактические ’ПАРАМЕТРЫ в СРЕДЕ { Ь, с}.

Ь) фактические 'ПАРАМЕТРЫ ПАРАМЕТР в СРЕДЕ (a. b}:

фактические ПАРАМЕТРЫ в СРЕДЕ [b, с} .

знак а также l^fj ■ , з

фактический ПАРАМЕТР в СРЕДЕ (с).

с) фактический параметр вида ВИД в СРЕДЕ (a, b)

основа в СРЕДЕ сильно выдающая ВИД ( 32d ].

I Примеры:

а) вывод (станд вывод, х) (см. 10.3-3.1.з)

Ь) синд вывод, х с) х }

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

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

• пусть ( процедура J R и VH ..., Vn будут ( совместными ) выдачами ПЕРВИЧНОГО нэ С в Е ;с составляющих фактичсских-параметров лого С в / локализующем, см. 3.2.2.Ь,} окружении Е1, устанавливаемом вокруг Е;

18

ГОСТ 27974-88 С. 77

• W — выдача вызова [b } процедуры R в El с V,, .... Vn;

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

Ь) Выдача W „вызова” процедуры R в окружении Е1, возможно со значениями {параметров} Vb .... Vn,определяется следующим образом:

пусть Е2 - окружение, устанавливаемое {з 2.2 b|no Е1 вокруг окружения процедуры R согласно зэданию-аргументов упакованного-задания-аргументов, если оно есть, текста-процедуры из R со значениями, если они ecn-V,.....V„;

• W — выдача в Е2 основы текста-процедуры из R.

£ Рассмотрим последовательное- предложение

проц замсльзон ■ (цел л, проц (цел) веш f) вещ:

начало длин веш s : = длин 0;

дл я i до п. нк s * : = удя f (i) t 2 к u;

укрепим корень (s)

конец;

замельзон (пт, (цел j) веш :xl (j]).

В ЭТОМ контексте последний вызов даст тот же эффект, что и ядро: веш:

цел п • ш, проц (цел) веш f = (цел j) вещ : xl [j] ■

начало длин вещ s : = длин 0;

для i до п цк s +: = удя f (i) Г.2 ки:

ук р длин корень (s)

конец).

Таким образом, передача фактических-параметров аналогична исполне-нию описаний-тожлества (44.2.з); см. также установление (3 .2.2.Ь) и приписывание (4.8.2.а) }

5.4.4. Переходы

£ Переход может прекратить исполнение кортежа и заставить некоторый другой помеченный кортеж исполнятьс я вместо него.

Примеры;

у :« если х> 0 то корень (х) иначе на Принстон все • на сен льср де шартрез.

С другой стороны, если контекст требует вида 'процедура вырабатывающая ЗНАЧЕНИЕ’, га вместо этого выдается процедура, основой кото-рой служит данный переход, как в проц пуст m :■ на порт бервнк.}

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

а) переход в СРЕДЕ сильно выдающий ЗНАЧЕНИЕ [5а} :

возможное указание £ b J,

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

выдающий метку {48b/. ,

b) указание fa^: знак на ОФОРМЛЕННЫЙ t94f, -/ ;

знак ИДИ ОФОРМЛЕННЫЙ {94f. -}.

символ верхний предел ОФОРМЛЕННЫЙ [94g, J.

{ Примеры:

а) на коотвейк - go to варшава • зандвоорт

79

С. 78 ГОСТ 27974-8:8

Ь) на • go*to }

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

Псреход-в-'СР’ЕДЕ-вьщаютций-ЗНАЧЕНИЕ J в окружении Е исполняется следующим образом:

• пусти сиена, выдаваемая в Е идентификаторем-метки этого- J, составлена из кортежа S2 н окружения Е1;

Случай А: 'ЗНАЧЕНИЕ' нс является никакой 'процедурой вырабатывающей ЗНАЧЕНИЕ!':

• пусть S1 - кортеж наим-сньшсго{1.|,3.2.£}лослс.до-вагсльного-преяложения, содержащего S2;

- исполнение S1 в Е1 или любого кортежа, исполняемого вместо него в Е1„ прекращается 12.1.4.3.-е} ;

- S2 исполняется в Е] „вместо” S1 в Е 1;

Случаи В: 'ЗНАЧЕНИЕ"’ ость 'процедура вырабатывающая ЗНАЧЕНИЕ!.': - J в Е (завершается mJ выдаст процедуру, составленную из:

(!) нового тскста-проиедуры-в-СРЕДЕ-выдающего-ЗНАЧЕ-НИЕ, основа которого- подобна ( 1.1.3.2.к } этому J, (ii) окружения Е1.

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

5.5.1. Ядра

\ Ядра можно использовать, чтобы обеспечить сильную позицию, например. имя веш (хх) в нмя вещ (хх) := 1, имя книга (нил) в следующая из проект : = : имя книга (нил) и строк (р 1с1 г) в S +:“ строк (pl с! г).}

5.5.1.1. Синтаксис. -

а) ядро в СРЕДЕ выдающее ЗНАЧЕНИЕ {SDJ: формальный описатель ЗНАЧЕНИЯ в СРЕДЕ {46b}, ЗАКРЫТОЕ предложение в СРЕДЕ сильно выдающее ЗНА ЧЕНМЕ f31 а. 33а, с, d, е, 34а. 35а. ■} ( Пример:

а) имя книга (нил)}

{ Выдачей ядра является, в силу предысполнення (2.1.4.1 .с), выдача его-ЗАКРЫ'ГОГО-предложения.}

5.5.2. Пропуски

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

а) пропуск в СРЕДЕ сильно выдающий 3 НАЧЕНИЕ f 5 А } : знак пропуск {94fJ.

{Пример:

а) пропуск J

5.5,2 2 Семантика. .

Выдачей пропуска является некоторое {неопределенное} значение, по области действия такое же, как и первичное окружение.

{ Вид выдачи пропуска-выдающего-ЗНАЧЕНИЕ есть 'ЗНАЧЕНИЕ'. Про-пуск-выдающий-пустое значение служит пустым оператором и его можно.

80

ГОСТ 27974-88 С.79

например, использован после метки, которая отмечает конец последов а-тельного-предложения. J

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

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

Существует шесть возможных приведений, называемых „раскроиеду-риваине”, ..разыменование”, ..объединение”, „обобщение”, „векюриза-пня” и „опустошение”. Каждое приведение, исключая „объединение”, оказывает соответствующее динамическое влияние на связанные с ним значения. Следовательно, при помощи приведений неявно можно ^программировать ряд примитивных действий. }

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

{ Всякое приведенное есть конструкт, дерево порождения которого может начинаться с последовательности приведений, оканчивающейся приводимым. Порядок (завершения) исполнения этих приведений идет поэтому от приводимого к приведенному G что к определило выбор этих па-рапонятин). Например, i в вещ (i) является приведенным, дерево порождения которого включает 'после обобщения' и 'после разыменования' именно в этом порядке на пути от приведенного к приводимому. Разыменование должно завершиться: прежде, чем произойдет обобщение.

Соответствующее дерево порождения (с о-пущепным ’в СРЕДЕ', 'использующий СЛОВО'и невидимыми поддеревьями) выглядит гак:

'приведенный идентификатор

сильно выдающий вещественное'

| 6.1.1л

р* 'идентификатор выдающий вещественное после обобщении'

обобщение | 6,5.1л

|— 'идентификатор выдающий целое после разымем опикя' разыменование | 6.2.1.8

L 'идентификатор выдающий имя целого после сохранения-'

6.1.11

'идентификатор выдающий имя целого' (приводим ое>

|* 4.8Д.Ь,9.1.1.Ь

'символ бу ква и лат' . J

81

С.80 ГОСТ 27974-88

6.1.1. Синтаксис . 1

А) УСИЛЕНИЕ (а. 66а) •: УКРЕПЛЕНИЕ {в}; обобщение [6$а. b.c.d);

векторизация fcM; опустошение (67а, b) .

В) УКРЕПЛЕНИЕ £ А, b ] :: РАСКРЫТИЕ t С }; объединение [ 64а} .

С) РАСКРЫТИЕ { В с. d. 62а. 63а. 64а, 65а. b. с. d} ::

сохранение [ f J; разыменование { 62а) ;

распроцедурившие (63а} .

Г») СМЯГЧЕНИЕ {с, 63b} :: сохранение { f} ;

мягкое распродсдурнванме {63b}

Е) ФОРМА ; : РАСКРЫВАЕМОЕ; ПРЯМОЕ.

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

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

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

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

G) ПРЯМОЕ :: присваивание в СРЕДЕ; ядро в СРЕДЕ;

отношение одноименности в СРЕДЕ; изображаемое в СРЕДЕ;

ЛОКАЛИЗУЮЩИЙ генератор в СРЕДЕ; текст формата в СРЕДЕ.

а) приведенная ФОРМА сильно

выдающая ЗНАЧЕНИЕ { 5А, В. С. D, А34Н} :

если (ФОРМА) есть (РАСКРЫВАЕМОЕ), РАСКРЫВАЕМОЕ выдающее значение после УСИЛЕНИЯ (л} ;

если (ФОРМА) есть (ПРЯМОЕ).

ПРЯМОЕ выдающее ЗНАЧЕНИЕ после УСИЛЕНИЯ { А} .

если неверно что (ЗНАЧЕНИЕ после УСИЛЕНИЯ) есть (пустое значение после распроцедуривший).

Ь) приведенная ФОРМА крепко

выдающая ВИД ( SA, В, С, D, 542с} :

ФОРМА выдающая ВИД после УКРЕПЛЕНИЯ { В)

:) приведенная ФОРМА раскрыто

выдающая ЗНАЧЕНИЕ (5А. В, С, D} :

ФОРМА выдающая ЗНАЧЕНИЕ после РАСКРЫТИЯ { с}.

1) приведенная ФОРМА слабо выдающая

?ИМЯ СОСТАВНОГО (5А, В,С, D} :

ФОРМА выдающая ?ИМЯ СОСТАВНОГО после РАСКРЫТИЯ (с} , если неверно что (?ИМЯ) есть (ПУСТО)

и (РАСКРЫТИЕ) есть (разыменование)

I приведенная ФОРМА мягко выдающая ВИЛ ( 5-А, В. С, Dj :

ФОРМА выдающая ВИД после СМЯГЧЕНИЯ { D}

1 ФОРМА выдающая ЗНАЧЕНИЕ

после сохранения {С, О, 67а, b}:

ФОРМА выдающая ЗНАЧЕНИЕ.

>♦ приведенное ПРИВОДИМО выдающее ЗНАЧЕНИЕ

приведении ФОРМА ПРИВОДИМО

выдающая ЗНАЧЕНИЕ { а. 6, с. d„ е} .

)* приводимое выдающее ЗНАЧЕНИЕ:

ГОСТ27974-88 С. 81

ФОРМА выдающая ЗНАЧЕНИЕ.

{Примеры:

а) 3.14 (их :=3.14)

Ь) 3.14 ( в х * 3.14)

с) sin (в sin (х))

d) xl (в xl [2] : = 3.14)

е) х (в х := 3.14)}

( Ссылки на 'ФОРМУ выдающую ЗНАЧЕНИЕ' (правила f) содержатся в подразделе 5.1.А. В. С. D. Заметим, что ’ФОРМА выдающая ЗНАЧЕНИЕ’ может быть тупиком. Тупики в этой главе не отмечаются.^

£ Существуют пять сортов синтаксических позиций, а именно:

- „сильные'* позиции. т.е. фактическис-параметры. например х в sin (х). источники. например х в у : = х. ЗАКТЫТЫЕ-прсдложсння ядер, например (нил) в имя книга (нил), и операторы, например, у =х в СУ := х; х :=0);

„крепкие" позиции, т.е. операнды, например х в х + у.

• „раскрытые” позиции, те. выясняюшис-преппоженяя, например х > 0 в (х > О I xl 0) . грани, например j в xl [i], и ПЕРВИЧНЫЕ вызовов, например sin в sin (х);

• „слабые” позиции., т.е. ВТОРИЧНЫЕ выборок н ПЕРВИЧНЫЕ вырезок, например х I в х) (ij;

- „мягкие" позиции, т.е. получатели, например х в х := у, и одно из ТРЕТИЧНЫХ отношений -одноименности, например х в хх : = : х. Сильные позиции появляются также при уравнивании (3.2-l.e).

В сильных позициях могут встретиться все шесть приведений, в крепких позициях запрещены векторизация, обобщение и опустошение, в раскрытых и слабых позициях, кроме того, запрещено объединение.а в мягких позициях разрешено только распроцедуривай^. Однако ФОРМ Д-выда-юшзя-СОСТЛВНОЕ-после разыменования не может быть прямым наследником приведенной ФОРМЫ-спабо выдаюшей€ОСТАВНО (правило ф. поскольку в противном случае х : = xl [i] было бы двусмысленным синтаксически (хотя в этом случае не семантически). Точно так же ПРЯМОЕ-вылаю-щес-пустос-значснис-после-распроцсдурнвания не может быть прямым наследником приведение! о-ПРЯ!МОГО-сильно-вь1даю1цего-луслое-311ачсние (правило а), так как в противном случае было бы двусмысленным (проц пусть энгельфриег; проц пуст рей пенс = про-пуск: жгельфрхег :■ рейпенс: пропуск).}

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

{ Разыменование служит для получения значения, именуемого некоторым именем, как в х := у, где у выдает имя, именующее вещественнее число, и именно это число присваивается имени, выдаваемом получателем х Априорный вид у. рассматриваемого как приводимое, есть 'имя вещественного'. а его апостериорный вид. когда у рассматривается как приведен-нос. есть ’вещественное'.

83

С.82 ГОСТ 27974-«8

6.2.1. Синтаксис

а) ФОРМА выдающая ВИД! после разыменования [оК'):

ФОРМА выдающая ИМЯ ВИДА? после РАСКРЫТИЯ {о|<).

если ВИЛ J фиксирует ВИД? { 47з. Ь.с,-}

£ Пример:

а) х (в веш (х))}

6.2.2. Семантика

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

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

• требуется, чтобы N нс было пссвдонменем;

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

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

£ Распроцедурив;! ни с используется, когда надо вызнать процедуру без параметров Например, в х := псч А псевдослучайное число А вызывается процедура, выдаваемая псч, и присваивается выдаваемое ею вещественное число; апостериорным видом псч является 'вещественное'. С точки зрения синтаксиса из априорною вида удаляется начальное 'процедура вырабатывающая’. }

6.3.1. Синтаксис

а) ФОРМА выдающая ЗНАЧЕНИЕ после

рэспроцедуривания {б!С,67а} :

ФОРМА выдающая процедуру вырабатывающую ЗНАЧЕНИЕ

после РАСКРЫТИЯ {610}.

Ь) ФОРМА выдающая ВИД после

мягкого распроцедуривания [61D}:

ФОРМА выдающая процедуру вырабатывающую ВИЛ после СМЯГЧЕНИЯ [ 6I D J.

I Примеры:

а) псч (в вещ (псч))

Ь) х или у (в х или у := ЗЛ4.см. 1.1.2)}

6.3 2 Семантика

Выдача W ФОРМЫ-выдаюшей-ЗНАЧЕНИЕ после-распроцсдуривзния или ФОРМьТвыдающсн-ЗНАЧЕНИЕ-пОСле-мягкого-распропедуривання F в окружении Е определяется следующим образом:

• пусть {процедура } R будет выдачей в Е прямого наследника из Г.

• W выдача вызова { 5.4.3.2.bУ из К в Е;

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

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

{Объединение нс изменяет вида значения, выдаваемого конструктом но Время счета, а просто создает для него большую свободу. Такое значение должно быть приемлемо нс только для одного какого-то вида, но для целого множества видов Однако после объединения это значение может исполь-зеваться примитивным действием только после динамической проверки сю сопосгавляюшим-предложением (3.4.1.g}; в самом деле, с конструктом

84

ГОСТ 27974-88 С.83

вида 'ПРЕДСТАВИТЕЛЬ' нельзя запрограммировать никакие примитивные действия (кроме, конечно, присваивания переменной-вида-ПРЕДСТАВИ ТЕЛЬ).

Пример:

об (лог, лит) t, v;

t :■ "а";4 : = истина; v:=t.J

6.4.1. Синтаксис

а) ФОРМА выдающая ГГРЕЛСТ АВИТЕЛЬ после объединения ^61В J : ФОРМА выдающая ЗНАЧЕНИЕ после РАСКРЫТИЯ /б1С}.

если ЗНАЧЕНИЕ служит ПРЕДСТАВИТЕЛЕМ {b }.

Ь) ЕСЛИ ЗНАЧЕНИЕ! служит ЗНАЧЕНИЕМ: (a. 34i.7!т) :

сели ЗНАЧЕНИЕ 1 эквивалентно ЗНАЧЕНИЮ: { 73а).

ЕСЛИ ложь;

если неверно что

ЗНАЧЕНИЕ! эквивалентно ЗНАЧЕНИЮ: {13a).

ЕСЛИ укрытые ЮБЫЧНЫЕ1 входят в укрытые ЮБЫЧНЫЕ2 {731, т.п}.

если СОБЫЧНь1Е1) есть (ЗНАЧЕНИЕ!)

или (объединение ЮБЫЧНЫХ! воедино) есть (ЗНАЧЕНИЕ!),

если (ЮБЬЙНЫЕЗ) есть (ЗНАЧЕНИЕ2)

или (объединение ЮБЫЧНЫХ2 воедино) есть (ЗНАЧЕНИЕ?).

[ 11рммсры

а) х (в ий := х) ■

и (в об (лит. цел,пуст) (и), в зоне: содержащей

об (пел. пуст) и :» пустое)}

6.5. Обобщение

{Обобщение преобразует целые числа в вещественные, вещественные числа в комплексные (в обоих случаях с тем же размером). значения вида ‘БИТОВОЕ’ в неупакованные векторы истинностных значений к значения вида'СЛОГОВОЕ' в неупакованные векторы литер.

Например, в z := I выдача 1 обобщается до вещественного числа 10, а затем до комплексною числа (1.0, 0.0); синтаксически здесь априорный вид. специфицируемый цел, заменяется видом, специфицируемым веш. а затем видом, специфицируемым комля.}

6.5.1. Син та ксис

А) БИТОВОЕ :: структура содержащая ?МЕРНУЮ букву алеф для выборки вектора из логических в себе.

В) СЛОГОВОЕ :: структура содержащая *.’МЕРНУЮ букву алеф для выборки вектора из литерных в себе.

С) ’’МЕРНОЕ :: ДОЛГОЕ ’ДОЛГОЕ; КРАТКОЕ 7КРАТКОЕ; ПУСТО

Г>) ДОЛГОЕ :; букв-а д буква л буква и буква н.

Е) КРАТКОЕ :: бук вз к буква о буквз р.

F) ’ДОЛГОЕ :: ДОЛГОЕ ’ДОЛГОЕ; ПУСТО.

G) ’КРАТКОЕ - КРАТКОЕ’КРАТКОЕ; ПУСТО.

а) ФОРМА выдающая 7РАЗМЕРНОЕ вещественное

С.84 ГОСТ 279-74 -88

поел с обобщения {b, 61л}:

ФОРМА выдающая ^РАЗМЕРНОЕ целое после РАСКРЫТИЯ [б1С.} . f ^РАЗМЕРНОЕ :: длинное ?ДЛИННОЕ;

короткое ?КОРОТКОЕ; ПУСТО.}

Ь) ФОРМ А выдающая структуру содержащую букву эр лат букву е лат для выборки 2РАЗ.МЕРНОГО вещественного букву и лаг букву эм лаг для выборки '’РАЗМЕРНОГО вещественного в себе после обобщения {б 1 а) ;

ФОРМА выдающая 7PA3MEPHOE вещественное после РАСКРЫТИЯ {б1С};

ФОРМА выдающая ’’РАЗМЕРНОЕ вещественное после обобщения {а}.

с) ФОРМ А выдающая вектор из логически х после обобщения [6IAJ;

ФОРМА выдающая БИТОВОЕ после РАСКРЫТИЯ (б IC J d) ФОРМ А выдающая вектор из литерных после обобщения [61aJ:

ФОРМА выдающая СЛОГОВОЕ после РАСКРЫТИЯ (61CJ .

{ Примеры:

а) 1 (в х := I)

b) 1.0 (в compi z := 1.0) • I (в compl z :■ 1)

с) 2г 101 (в ( J лог (2г 101))

d) г (в [ ] лит (г), см. 1.1-2)}

6.5.2. Семантика

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

• пус»ь V - выдача прямого наследника F;

Случай А: ’ВИД’ есть ^РАЗМЕТНОЕ вещественное':

• W - вещественное шслог (Обобщаемое f2.13.lej из V;

Случай В: 'ВИД' есть 'структура, содержащая букву эр лаг букву е лат для выборки 7РАЗМЕРНОГО вещественного букву и лат букву эм лат кля выборки ’’РАЗМЕРНОГО вещественного в себе' • W - (комплексное число, которое есть} структурное значение с нолями, равными V и вещественному числу 0 того же размера [2.1.3.1.b}, что и V;

Случай С: 'ВИД' есть 'вектор из логических' или 'вектор из литерных': • W- единственное поле из V.

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

{ Векторизация позволяет построить массив из одного элемента. Если ПОСЛЕДНИЙ яяллегся именем, ТО результат векторизации также может быть именем, именующим этот массив.

Пример:

86

ГОСТ 27974-88 С. 85

[1 : 1] веш Ы : = 4.13}

6.6.L. Синтексис

а) ФОРМА пылающая ’ИМЯ МАССИВА! из ВИДА после векторизации {б!А} :

если (МАССИВ!) есть (вектор), ФОРМА выдающая ’ССЫЛКУ НА ВИД поск УСИЛЕНИЯ (6!Aj,

если (?ИМЯ) выводится из (^ССЫЛКИ НА) [ 531b. с. -} ;

если (МАССИВ!) есть (вектор МАССИВОВ?).

ФОРМА выдающая ’ССЫЛКУ НА МАССИВ! из ВИЛА после УСИЛЕНИЯ [61А], если (’ИМЯ) выводится из (?ССЫЛКИНА){ 531b.с,-}.

[Примеры:

а) 4.13 (в (1: 1] вешЫ :-4.13 ‘

х! (в [I : I, 1 ; п) веш. Ь2 :■ х!)}

6.6.2. Семан гика

а) Выдача W ФОРМЫ-выдаюшей-?ИМЯ-МАССИВА1.цз ВИЛА.поа1е-век-торизации F определяется следующим образом:

• пу сть V - выдача ФЮРМь1после-УСИНЕНИЯ из F; Случай А: '?ИМЯ'есть'ПУСТО':

• W - массив-, „построенный” (b) из V для 'МАССИВА!';

Случаи В' '?ИМЯ'есть'ИМЯ':

• Если V — псевдоимя, то W — южс псевдоимя;

иначе W - имя. „построенное’’’ [с} из V для 'МАССИВА Г.

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

Случай А: 'МАССИВ!' есть 'вектор':

• W составляется из (!) паспорта ((1, 1)), (ii) ( одного- элемента} V;

Случай В: ’МАССИВ!' есть 'векторМАССИВОВ?':

• пусть паспорт значения V будет ((h , Uj),..., (ln, un));

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

(i) паспорта ((I, 1), (1,. ut).....(ln, un)).

(ii) элементов этого V;

• элемент, выбираемый в V по индексу (!|, .... in), является элементом, выбираемым в W по индексу (I, if ,..., in) .

с) Имя NI, ..построенное" из имени N для некоторого *МАССИВА1*. определяется следующим образом:

• NI —(не обязательно вновь созданное} имя. рапное ио области ней ствия имени N и именующее массив, построенный ( b] для 'МАССИВА из значения, именуемого N;

Случай А; 'МАССИВ!' есть 'вектор':

• ( единственным ) подмменем этого N1 является Nt

8"

СМ ГОСТ 27974-88

Случай В: 'МАССИВ Г есть 'вектор МАССИВОВ:';

- подыменем этого NJ, выбираемым по (l,ii,.... in), является полымя имени N, выбираемого ио ( и ..... in).

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

{Опустошение используют, чтобы отбросить- выдачу некоторой основы, первичное назначение которой — вызвать побочный эффект; ее апостериорным видом -становится тогда просто 'пустое значение’. Например, в х := I; у := 1; присваивание у := I опустошается, а в проц t = цел : цели (печ X 100); t ; нспользуюшийиденгифнкатор t опустошается после раапрюцед)-ривания,предписывающего вызов процедуры.

Присваивания и другие ПРЯМЫЕ опустошаются без всякого раелроце-дурявания, так что в проц пущ р; р : = финиш это присваивание р := финиш не предусматривает неожидаемо го здесь вызова процедуры финиш.}

6.7 1 Синтаксис

А) НЕРАСП {РОЦЕДУРИВАЕМОЕ} :: ПРОСТОЕ; СОСТАВНОЕ;

ПРЕДСТАВИТЕЛЬ: ИМЯ НЕРАСП;

процедура с ПАРАМЕТРАМИ вырабатывающая ЗНАЧЕНИЕ.

а) РАСКРЫВАЕМОЕ выдающее пустое значение

после опустошения [51aJ:

РАСКРЫВАЕМОЕ выдающее НАРАСП

после распроделуривания {бЗа} ; _

РАСКРЫВАЕМОЕ выдающее НЕРАСП после сохранения [бИ/

Ь) ПРЯМОЕ выдающее пустое значение

после опустошения {61А} : *

ПРЯМОЕ выдающее ВИД после сохранения; {бИ}.

[ Примеры:

а) печ {в пропуск; пел;)

след печ (пред печ)

(.в пропуск; следпеч {прел печ);)

Ь) проц пуст (рр)

(в- проц проц пуст рр = проц пусг:

(печ (Г); пуст : печ (2));

проц пуст (рр); )}

6.7.2. Семантика

Исполнение ФОР.МЫ-вьшаюшей-гтусгое-значенне'Поале-ояустошения состоит из исполнения ее прямого наследника и выдает пустое.

7. виды и СРЕДЫ

{Идентификация свойств в среде представляет собой статический двойник динамического определения (4.8.2.Ь) значения в некотором окружении: поиск проводится с самого нового (самого младшего) уровня по направлению к предыдущим (более старшим) уровням.

Виды составляются из примитивных видов, таких, как 'логическое', с

88

ГОСТ 2 7974-88 0.87

помощью 'ПРОЛОГОВ', таких, как 'структура содержащая', и могут быть рекурсивными. Рекурсивные виды, выписываемые различным образом, могут гем Йе менее быть эквивалентными. Синтаксис провернет экви-валентность таких видов, доказывая невозможность обнаружения какого-либо несовпадения между их соответствующими подструктурами или составляющими зилами.

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

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

(Следующий синтаксис определяет, могут ли два свойства (т.с. две 'ПАРЫ'). подобные тем. которые соответствуют веш х и цел х. быть заложены в один и тот же 'СЛОЙ'.}

7.1.1. Синтаксис

А) ПРИСТАВКА :: процедур вырабатывающая; ИМЯ.

В) КОРЕНЬ г: ПРОСТОЕ; СОСТАВНОЕ; ПРЕДСТАВИТЕЛЬ;

пустое значение; процедура с ПАРАМЕТРАМИ вырабатывающая ЗНАЧЕНИЕ.

С)’ ’ПРИСТАВКИ :: ПРИСТАВКА ’ПРИСТАВКИ; ПУСТО.

{ПАРА ;: ОПИСАНИЕ; МЕТКА; ПОЛЕ.

ПРИЗНАК:: ВИД; ЗНАЧЕНИЕ НОМЕР: БИНАРНОЕ;

метка: выборка ВИДА.

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

АФФИКС :: ИНФИКС; ПРЕФИКС.)

а) ЕСЛИ 11АРА1 не зависит от UI АР 2 Л АРЫ 2 { а. 48а. с, 72а} :

ЕСЛИ ПАРА! кс зависит от ЕПАР2 { а, с.}

и ПАРА! нс зависит от ПАРЫ? [с }.

Ь) ЕСЛИ ПАРА не зависит от ПУСТО f48а, с,7 2а }: ЕСЛИ истина.

с) ЕСЛИ ОБОЗНАЧЕНИЕ! для ПРИЗНАКА! не зависит ,

от ОБОЗНАЧЕНИЯ2 для ПРИЗНАКА’ f а, 48а. с, 72а}:

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

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

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

ЕСЛИ ПРИЗНАК! де зависит от ПРИЗНАКА2 { d /.

d) ЕСЛИ ПРИЗНАК! не зависит от ПРИЗНАКА’ {с}:

если ПРИЗНАК) связан с ПРИЗНАКОМ2 (e.f.g. h. i.j, J, ЕСЛИ ложь;

если неверно что ПРИЗНАК! связан с

признаком: {е„ f, g, lui.j,•}>ЕСЛИ HCiKtta. , .

е) ЕСЛИ ОДНОМЕСТНАЯ связана с ДВУМЕСТНОЙ {d}: ЕСЛИ ложь.

f) ЕСЛИ ДВУМЕСТНАЯ связана с ОДНОМЕСТНОЙ {d J: ЕСЛИ ложь.

89

С88 ГОСТ 2 7974-83

g) ЕСЛИ ОПЕРАЦИЯ связана с БИНАРНЫМ £ d }: ЕСЛИ ложь.

h) ЕСЛИ БИНАРНОЕ слизано с ОПЕРАЦИЕЙ f d J: ЕСЛИ лож».

i) ЕСЛИ процедура с параметром вида ВИД1 параметром

вид* ВИД2 выба ратываклцая ЗНАЧЕНИЕ! связана с процедурой с параметром вида ВИЛЗ параметром вида ВИЕМ вырабатывающей ЗНАЧЕНИЕ? f с!}

ЕСЛИ ВИД! крепко связан с ВИДОМ? {к}

и ВИД2 крепко связал с ВИДОМ4 [kJ

j) ЕСЛИ процедура с па рамстром. вида ВИД! вырабатывающая ЗНАЧЕНИЕ! связана с процедурой с параметром вида ВИД? вырабатывающей ЗНАЧЕНИЕ? £d} :

ЕСЛИ ВИД! крепко связан с ВИДОМ? { к} .

к) ЕСЛИ ЗНАЧЕНИЕ! крепко-связано со ЗНАЧЕНИЕМ? £ i.j J: ЕСЛИ ’ОБЫЧНЫЕ! скреплены со ЗНАЧЕНИЕМ? { I, па }

или ЮБЫЧНЫЕ2 скреплены со ЗНАЧЕНИЕМ! £ l.mj .

если ('ОБЫЧНЫЕ 1) есть (ЗНАЧЕНИЕ!)

или (объединение ЮБЫЧНЫХ] воедино) есть (ЗНАЧЕНИЕ!),

если ('ОБЫЧНЫЕ?) есть (ЗНАЧЕНИЕ?)

или (объединение ЮБЫЧНЫХ2 видов) есть (ЗНАЧЕНИЕ?).

i) ЕСЛИ ЮБЫЧНЫЕ ОБЫЧНОЕ «креплены со ЗНАЧЕНИЕМ ( k, 1}

ЕСЛИ 'ОБЫЧНЫЕ скреплены со ЗНАЧЕНИЕМ f I т) или ОБЫЧНОЕ скреплено со ЗНАЧЕНИЕМ f т}.

т) ЕСЛИ ЗНАЧЕНИЕ! скреплено со ЗНАЧЕНИЕМ? { k.l,n,4 7f}:

ЕСЛИ ЗНАЧЕНИЕ! эквивалентно ЗНАЧЕНИЮ? ( 73а} или ЗНАЧЕНИЕ! служит ЗНАЧЕНИЕМ? <64b} ил и ЗН АЧЕНИЕ2 есть корень ЗНАЧЕНИЯ 1 J п /. п) ЕСЛИ ЗНАЧЕНИЕ? есть корень ЗНАЧЕНИЯ I £m } :

если (ЗНАЧЕНИЕ!) есть (ПРИСТАВКА ЗНАЧЕНИЕ?), ЕСЛИ ЗНАЧЕНИЕМ скреплено со ЗНАЧЕНИЕМ? { т}, если ЗНАЧЕНИЕ? фиксируетЗНАЧЕНИЕЗ {47а. Ь,с}:

если (ЗНАЧЕНИЕ!) есть (КОРЕНЬ), ЕСЛИ ложь.

( Чтобы предотвратить двусмысленное использование индикаторов, как в веш х. цел х; х : = 0, на определяющие-идхикагоры, входящие в некоторую данную зону, налагаются определенные ограничения. Они обеспечиваются синтаксической проверкой „независимости''’ свойств, заложенных в соответствующий 'СЛОЙ' (правила а. Ь, с). Достаточное условие независимости пары свойств, каждое из. которых, является некоторым ‘ОБОЗНАЧЕНИЕМ для ПРИЗНАКА', не выполнен но-е и приведенном выше примере, ■состоит а различии этих 'ОБОЗНАЧЕНИЙ' (гранило с). Для ОБОЗНгЧЧЕ-НИЙ", нс являющихся ’АФФИКСОМ', эю условие также и необходимо, так ■что даже вещ х, дел х; пропуск не есть последовательное-предложение.

Для двух свойств 'АФФИКС для ПРИЗНАКА!' и 'АФФИКС для ПРИЗНАКА? проверка на независимость несколько сложнее, как это можно видеть из послсдовательното-предложения

оп + = (цел i) лог : истина, оп + = (исл i.j) цел : 1,

90

ГОСТ 27974-88С.89

on ♦ * (цел j(Horj) пел : 2. прио + = 6;

0 + +0# =2*.

Двусмысленности можно обнаружить- в

п рио + = 6, * = 7; 1*2ХЗЛ7 или 9?0 .

в

on z. = (цел а) цел : I, ниц z = цел;

z i р формула или описание? Я; пропуск и и

on? 3 (об(имя вещ.ли)) а) цел :1.он’= (веш а) цеп : 2;

?пок вещ 0 I или 2?0.

М таких случаях проверяется, независимы ли эти дна ПРИЗНАКА' (правила с, d). Всякое 'ЗНАЧЕНИЕ НОМЕР' всегда зависит от любого 'ПРИЗНАКА' (правило d). 'ОДНОМЕСТНАЯ* всегда не зависит от ’ДВУ-МЕСТНОЙ' (правила d, е. f) и обгони не зависят от 'БИНАРНОГО' (т.е от 'npMOpmeiu ПРИОРИТЕТ') (правила d, g, h). В случае двух'ОПЕРАЦИЙ', обеих 'ОДНОМ ЕСТНЫХ млн 'ДВУМ ЕСТНЫХ’, двусмысленность может возникнуть, если виды их соответствующих параме^юн „крепко связаны”, т.е. если вид операнда может крепко приводиться к виду параметра (виды пары операндов могу) крепко приводиться к видам параметров} какой-нибудь 'ОПЕРАЦИИ' (правила i. j) . В примере с двумя определениям» для ? указанные две ’ОПЕРАЦИИ' связаны, поскольку к рейке связаны виды, специфицируемое описателями об (имя веш. лит) и вещ; специфицируемый имя вещ вид крепко приводим к люСогму из них

Можно показать, что два вида крепко связаны, если один из них или какие-то составляющее ’ОБЫЧНОЕ' одного из них может крепко- приводиться к другому (правила k, I), что потребует некоторой последовательности из нуля или более раскрывающих приведений л затем не более одного объединения (6 4 |.а). Возможна ли такая последовательность приведений между двумя видами, определяется прелдк-агом 'скреплены1 (правила пт, п).

’ПАРАГ делает, кроме того, недоступной ’ПАРУ2' во внешнем 'СЛОЕ', если ИЗ I1APA2 зависит от ПАРЫ Г; например.

начало цел х;

нач вещ л: и здесь 'ПАРАГ есть 'буква икс лат для имени вещественного' 0

пропуск кон

конец

и аналогично

начало ов ? ■ (цел i) цел : I. цел к г= 2;

начет ? = (имя цел в) цел : 3;

? к 0 вырабатывает 3. а ? 4 не может встретиться в этом контексте, поскольку сто обозначение-операция здесь недоступной

КОН

конец.}

91

С.9О ГОСТ 27974-88

7.2 И л с и г и ф и к а и и я в средах.

{Этот раздел обеспечивает, что для каждого использующсго-индикаю-ра существует соответствующая 'НАЕЛ' в некотором подходящем 'СЛОЕ' сто среды. }

7.2.1. Синтаксис

{-’ПАРЫ ” .’ПАРЫ; ПУСТО.

.’ПАРЫ :: ПАРА; ШАРЫ ПАРА.

ПАРА :: ОПИСАНИЕ; МЕТКА; ИОЛЕ.

ПРИЗНАК :: ВИД; ЗНАЧЕНИЕ НОМЕР;

БИНАРНОЕ: метка; выборка ВИДА.

ОБОЗНАЧЕНИЕ :: СЛОВО; ИНДИКАНТ; ИНФИКС; ПРЕФИКС. ] а) ЕСЛИ ПАРА идентифицирована в СРЕДЕ

с новыми ?П АРАМИ { a. 48b, 542а] :

если ПАРА находится в ’ПАРАХ { Ь,с, -] . ЕСЛИ истина;

если ПАРА не зависят от ?ПАР [71э,Ь,с}.

ЕСЛИ ПАТА нмнгифицировад! в СРЕДЕ Р,-] ■

Ы ЕСЛИ ПАРА! находится в ’ПАРАХ2 ПАРЕ? f a,b.48d ):

ЕСЛИ ПАРА1 находится в ПАРЕ? {с.-}

кия ПАРА1 находится и !ПАРДХ2 { b. с. -J .

с) ЕСЛИ ОБОЗНАЧЕНИЕ Для ПРИЗНАКА! находится

в ОБОЗНАЧЕНИИ для ПРИЗНАКА? { a. b, 48d) :

если (ПРИЗНАК!) есть (метка) или (ПРИЗНАК!) есть (БИНАРНОЕ) или (ПРИЗНАК!) есть (выборка ВИЛА). ЕСЛИ (ПРИЗНАК!) есть (ПРИЗНАК?);

если (ПРИЗНАК!) есть (ЗНАЧЕНИЕ) ’НОМЕР) и (ПРИЗНАК?) есть (ЗНАЧЕНИЕ? ’НОМЕР), ЕСЛИ ЗНАЧЕНИЕ! эквивалентно ЗНАЧЕНИЮ? {’За}.

{ Всякая среда, исключая первичную- (которая есть просто 'новое'), есть некоторая 'СРЕДА с СЛОЕМ' (те. 'СРЕДА с новыми ’ПАРАМИ'). Идентификация 'ПАРЫ' происходит сначала путем поиска се в данном 'СЛОЕ' (правило а). Если эта 'ПАРА' есть 'ОБОЗНАЧЕНИЕ Для метки’ или 'ОБОЗНАЧЕНИЕ для БИНАРНОГО', то простое обнаружение соответствующей 'ПАРЫ' служит достаточной проверкой (правило с). Если же эта ’ПАРА' есть ’ ОБОЗНАЧЕНИЕ для ЗНАЧЕНИЯ ?НОМЕР', то необходимо обратиться к механизму эквивалентности (правило с). Если данная 'ПАРА' нс найдется в указанном 'СЛОЕ', го поиск продолжается в 'СРЕДЕ' (без этого 'СЛОЯ'), при условии что она не зависит от всех 'ПАР' этого 'СЛОЯ',а иначе поиск обрывается (правило а). Отметим, что правила b и с несут двойную нагрузку, поскольку они применяются также и для проверки законности: использующих-указатслей-поля (4.8J.d).]

7.2.2. Семантика

а) Если некоторый блок-в-СРЕДЕ R (3.0.1.Г) содержит использующий-иидикатор I (4.8.1-Ь), для которого существует наследник еслнПАРАкден-тифицировзна-в-СРЕДЕ-с-СЛОЕМ. но не существует наследника если-ПАРА-идентмфицирована-в-СРЕДЕ. то R — ..определяющий блок” данного 1. f Эта

92

ГОСТ 27974 -В8 С. 91

'СРЕДА' uver.u будет средой, действующей как раз за пределами данного блока. J

Ь) Зечкой щкильзукшгии ОБОЗНАЧЬ!1ИЬ-индикаторныдаюший-ПРИЗИЛК 1. определяющий блок-в-СРЕДЕ { а } которою есть R. „идентк-фикируес” содержащийся a R опрелсляющнйА'ЛОВО-индикатор-в-СРЕДЕ-с-СЛОЕМ-нылаюший-ПРИЗ-ПАК.

(Например, в

(я 1 й вещ i = 2,0; (И 2 ri цел i а I: (Й 3 ri веш х; неч (11

(Й 3 W К 2 ri) Я I й)

три блока. В силу синтаксиса используюший-идентификатор а в печ (i) вы-нужней. быть испо.чьзувошим-букну-м-да^идентификзтором-в-СРЕДЕ-с-но-вой-буквой-и-лат-для-нсщественнопо-иовсй-буквой-и-лат-для-целого-новой-буквом-икс-лзт-пля-именн-весисствеикого-вылающим-цслое <4.8.1 .h). Его определяющим блокам является ояредсляюшее-новую-букву-и-лат-для-це-лого-послсаовательноечхреаложение-и-СРЕДЕ-с-новой-буквой-и-лаьддя вещественного <3.2.1.а) с номером 0 2 ri ом идентифицирует ооределяюший-нлен тификагор i, содержащийся в цел i (а нс в веш с),и сто видом является 'целое'.}

(Благодаря наличию аналогичного механизма некоторую БИНАРНУЮ-формулу (5.4.2.1.а) можно назвать ..идентифицирующей" то определяю-июе-обознячение-опсршии-выдакниее-Б ИН АРНОЕ (4.8.1.а), которое определяет ее- приоритет,}

с) Окружение Е, ..необходимое для" конструкта С в окружении Et, определяется следующим образом;

Если El - первичное окружение (2.2Д.а),

го Е есть El;

иначе пусть Е| будет составлено из участка L, соответствующего каким-то ’ТИАРАМ/, и другого окружения Е2;

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

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

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

• такой, 'по предикат 'если ОБОЗНАЧЕНИЕ для ПРИЗНАКА находится ВЫПАРАХ' (7.2J.b) выполняется, то Е есть ЕI;

иначе { L нс необходимо дня Си) Е - окружение, необходимое для С в Е2 (Окружение, необходимое дня конструкта, используется в семантике текстов-лропелуры (5.4.1.2) и в „устанавливании” (3.2.2.Ь) Например, в

(I 2 4 проц пуст рр; цел n; (ft 1 |( проц р = пуст: печ (п); рр: = р),

если EL и Е2 — окружения,устанавливаемые в результате исполнения иоследователь-ных-прелложений, отмеченных примечаниями Л I ri и ri 2ri.ro Е2 - окружение, необходимое в El для -текста-процедуры пуст: печ (и), так что процедура, выдаваемая р в El, составлена из этого текста-процедуры и Е2 (5.4 1.2). Следовательно, область действия данной процедуры еегь об-

93

С.92 ГОСТ 27974-88

/КЗСГЬ действия окружения Е2 (2. J .3 5.с) .а отсюда вытекает, что присваивание (5.2.1.2.Ь). вызываемое посредством рр ; » р, корректно определено.

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

{ В этом разделе определяется эквивалентность или неэквивалентность различных 'ЗНАЧЕНИЙ'. Обсуждение эквивалентных 'ЗНАЧЕНИЙ' см. в

/один из способов увидеть рекурсивные виды - рассматривать их как бесконечные деревья. Такое .дерево вида" получается повторной подстановкой в некотором выписывании ‘ВИДА' из соответствующего ЦИ определения ВИДА' вместо каждого 'использования ЦИ'. Таким образом, выписывание 'ни I определение структуры содержащей букву и пзт для выборки целого букву эн лат для выборки имени использования ци 1 в себе' будет

создавать следующее дерево вида:

структура еодержашы'

'бу кву и лет'

'ияя 'целого'

выборки'

структура содержащая'

'букву и па У

-----—1 для целого’ выборки’

'в себе'

'букву лаг'

'для

выбор ки

'имени'

'в себе’

’букву эн лы’

дня

вы fop к и'

'имени'

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

7.3.1. Синтаксис

А) УКРЫТИЕ :: укрытое; НИ помнит ВИД УКРЫТИЕ; инь УКРЫТИЕ: ян УКРЫТИЕ: запомненные ЗНАЧЕНИЕ! ЗНАЧЕНИЕ?

УКРЫТИЕ

В) ПРОЛОГ :: ПАХ ГОЕ; ПРИСТАВКА {? 1а] ; структура содержащая;

94

ГОСТ 27974 -88 С 93

7ПОДВИЖНЫЙ МАССИВ из; процедура с; объединение-; пустое значение.

С) “’ЭПИЛОГ :: ЗНАЧЕНИЕ; Ч1О-ЛЯ в себе;

•параметрамииырабятывающаязначение; юбычных воедино; ПУСТО.

О) ’ЧАСТИ :: ЧАСТЬ; !ЧАСТИ ЧАСТЬ.

Е) ЧАСТЬ :: ПОЛЕ; ПАРАМЕТР.

а) ЕСЛИ ЗНАЧЕНИЕ! эквивалентно ЗНАЧЕНИЮ? [ 64b, 71m, 72с: ЕСЛИ укрытое ЗНАЧЕНИЕ! эквивалентно

укрытому ЗНАЧЕНИЮ? { о} .

Ь) ЕСЛИ УКРЫТИЕ! ЗНАЧЕНИЕ! эквивалентны

УКРЫТИЮ? ЗНАЧЕНИЮ? { a. b, е, i.j.n}:

сели (УКРЫТИЕ!) содержит (запомненные

ЗНАЧЕНИЕ! ЗНАЧЕНИЕ?) или (УКРЫТИЕ?) содержит (запомненные ЗНАЧЕНИЕ? ЗНАЧЕНИЕ!), ЕСЛИ истина;

если неверно что (УКРЫТИЕ!) содержит (запомненные

ЗНАЧЕНИЕ! ЗНАЧЕНИИ) или (УКРЫТИЕ2) содержит (запомненные ЗНАЧЕНИЕ? ЗНАЧЕНИЕ!),

ЕСЛИ (ПРОЛОГЗ) есть (ПРОЛОГ-4) и

запомненные ЗНАЧЕНИЕ! ЗНАЧЕНИЕ? УКРЫТИЕЗ

7ЭПИЛОГЗ эквивалентны

УКРЫТИЮ4 ?ЭЛИЛОГУ4 f b. d. е. k. q, -} ,

если УКРЫТИЕЗ ПРОЛОГЗ ’ЭПИЛОГЗ развертываются

из УКРЫТИЯ 1 ЗНАЧЕНИЯ! { с }

и УКРЫТИЕ4 ПРОЛОГ4 ?ЭПИЛОГ4 развертываются из УКРЫТИЯ? ЗНАЧЕНИЯ? {с}.

с) ЕСЛИ УКРЫТИЕ? ПРОЛОГ ЗЭПИЛОГ развертываются из УКРЫТИЯ! ЗНАЧЕНИЯ [ Ь. с} :

если (.ЗНАЧЕНИЕ) есть (ПРОЛОГ •’ЭПИЛОГ), ЕСЛИ (ПРОЛОГ) меняет УКРЫТИЕ! на УКРЫТИЕ? [ 74а, b.-с,d, -] ;

если (ЗНАЧЕНИЕ) есть (НИопределение ВИДА).

если неверно что (УКРЫТИЕ!) содержит (Ц И сю мнит) , ЕСЛИ УКРЫТИЕ? ПРОЛОГ ЗЭПИЛОГ развертываются из ПИ помнит ВИД УКРЫТИЯ ВИДА { с} ;

если (ЗНАЧЕНИЕ) есть (использование ЦИ)

и (УКРЫТИЕ!) есть (ПОНЯТИЕ НИ помнит ВИП УКРЫТИЕЗ) и (ПОНЯТИЕ) содержит (инь)

и (ПОНЯТИЕ) содержит (ян), ЕСЛИ УКРЫ ГИЕ? ПРОЛОГ ТЭПИЛОГ развертываются

из УКРЫТИЯ) ВИДА {с}.

d) ЕСЛИ УКРЫТИЕ1 ’ПОЛЯ! в себе эквивалентны

УКРЫТИЮ? 'ПОЛЯМ? в «Се (b)

ЕСЛИ УКРЫТИЕ! ’ПОЛЯ! эквиваленты УКРЫТИЮ? 'ПОЛЯМ? [ Г,«, h, i)

95

С 94 ГОСТ27974-»8

е) ЕСЛИ УКРЫТИЕ! [ПАРАМЕТРАМИ!

вырабатывающая ЗНАЧЕНИЕ!

эквивалентны УКРЫТИЮ? 'ПАРАМЕТРАМИ2 вырабатывающей ЗНАЧЕНИЕ? { bj :

ЕСЛИ УКРЫТИЕ! ’ПАРАМЕТРЫ! эквивалентны

УКРЫТИЮ? ’ПАРАМЕТРАМ 2 f Г. g, h. j) и УКРЫТИЕ!

ЗНАЧЕНИЕ» эквивалентны УКРЫТИЮ? ЗНАЧЕНИЮ? [ Ь/ О ЕСЛИ УКРЫТИЕ! !ЧАСТИL ЧАСТЫ эквивалентны

УКРЫТИЮ2 [ЧАСТЯМ2 ЧАСТИ? [d.e, f}:

ЕСЛИ УКРЫТИЕ! 'ЧАСТИ) эквивалентны УКРЫТИЮ2 [ЧАСТЯМ? ( f. g, h, i, j } и УКРЫТИЕ! ЧАСТЫ эквивалентны УКРЫТИЮ? ЧАСТИ? [i.j}. g) ЕСЛИ УКРЫТИЕ! [ЧАСТИ! ЧАСТЫ эквивалентны

УКРЫТИЮ? ЧАСТИ? { d. е. 1} : ЕСЛИ ложь, h) ЕСЛИ УКРЫТИЕ! ЧАСТЫ эквивалентны УКРЫТИЮ?

[ЧАСТЯМ? ЧАСТИ? ( d.c, f] : ЕСЛИ лоно».

i) ЕСЛИ УКРЫТИЕ! СЛОВО! для выборки ВИДА! эквивалентны УКРЫТИЮ? СЛОВУ 2 для выборки ВИЛА? (d, f}:

КС ЛИ (СЛОВО! ) есть (СЛОВО?) Я

УКРЫТИЕ! ВИД! эквивалентны УКРЫТИЮ2 ВИЛА? { b}. j) ЕСЛИ УКРЫТИЕ! параметр вида. ВИЛ! эквивалентны

УКРЫТИЮ? параметру вида ВИД? [ е. f}:

ЕСЛИ УКРЫТИЕ! ВИД! эквивалентны УКРЫТИЮ? ВИДУ? [ b}. к) ЕСЛИ УКРЫТИЕ! [ОБЫЧНЫХ! воедино эквивалентны

УКРЫТИЮ? [ОБЫЧНЫХ? воедино [ b} :

ЕСЛИ УКРЫТИЕ! [ОБЫЧНЫЕ! входят в УКРЫТИЕ! [ОБЫЧНЫЕ? fl.m п} и УКРЫТИЕ? [ОБЫЧНЫЕ? входят ъ УКРЫТИЕ! '.ОБЫЧНЫЕ! ( 1,т, п} и число [ОБЫЧНЫХ! равно числу [ОБЫЧНЫХ? [о,р) 1) ЕСЛИ УКРЫТИЕ! [ОБЫЧНЫЕ! ОБЫЧНОЕ! входят в УКРЫТИЕ? ’ОБЫЧНЫЕ? { k,l,m,46s, 64b} :

ЕСЛИ УКРЫТИЕ! [ОБЫЧНЫЕ! входят в УКРЫТИЕ? [ОБЫЧНЫЕ? fl. т.п} и УКРЫТИЕ! ОБЫЧНОЕ! входят в УКРЫТИЕ? [ОБЫЧНЫЕ? [ т.п}, т) ЕСЛИ УКРЫТИЕ! ОБЫЧНОЕ! входяг в УКРЫТИЕ?

[ОБЫЧНЫЕ? ОБЫЧНОЕ? [ к. 1. т, 46s. 64b} :

ЕСЛИ УКРЫТИЕ! ОБЫЧНОЕ! входят в УКРЫТИЕ? [ОБЫЧНЫЕ? [т.п) или УКРЫТИЕ! ОБЫЧНОЕ! входягв УКРЫТИЕ? ОБЫЧНОЕ? {п}.

п) ЕСЛИ УКРЫТИЕI ОБЫЧНОЕ! входит

в- УКРЫТИЕ? ОБЫЧНОЕ? [ к, I, т, 64b} .

ЕСЛИ УКРЫТИЕ! ОБЫЧНОЕ! эквивалентны УКРЫТИЮ? ОБЫЧНОМУ 2 { b} .

о) ЕСЛИ число ЮБЫЧНЫХ 1 ОБЫЧНОГО! равно числу [ОБЫЧНЫХ 2 ОБЫЧНОГО? к, о } :

96

ГОСТ 27-974-88 €.9 5

ЕСЛИ число ’ОБЫЧНЫХ! равно числу ЮБЫЧНЫХ2 {о. р. •}.

р) ЕСЛИ число ОБЫЧНОГО! равно числу

ОБЫЧНОГО2 { к, о ) : ЕСЛИ истина

Я) ЕСЛИ УКРЫТИЕ! ПУСТО эквивалентны

УКРЫТИЕ! ПУСТО { b ) : ЕСЛИ истина.

I Правило а вводит 'УКРЫТИЯ', используемьте в ходе определения эквивалентности как ассоциативная память. Таких 'УКРЫТИЙ' два, и» одному для каждого вида. Правило b приводит к немедленному заключению, сели рассматриваемые 'ЗНАЧЕНИЯ' уже запомнены (см. ниже) в каким-нибудь подходящем 'УКРЫТИИ' в форме 'запомненные ЗНАЧЕНИЕ! ЗНАЧЕНИЕ!’. Если это не гак, то указанные два ’ЗНАЧЕНИЯ'-сначала за-поминаются в 'УКРЫТИИ* (в том. которое слева), а затем каждое 'ЗНАЧЕНИЕ' развертывается (правило с) и разбивается на его 'ПРОЛОГ' и его 'ЗЭПИЛОГ', например 'имя вещественного' разбивается на 'имя' и 'вещественное',

Если 'ПРОЛОГИ' различны, 1© вопрос решен (правило Ь); в противном случае данные '’ЭПИЛОГИ' анализируются в соответствии с их структурами (которые должны совпадать, если соответствующие ПРО-ЛОГИ' идентичны). Во всех случаях, кроме того., когда 'ПРОЛОГИ' были 'объединение', эквивалентность проверяется исследованием соответствующих состав-

ляюших согласно схеме

правило

'♦ЭПИЛОГ

составляющие

d

'ПОЛЯ в себе'

'!Г ЮЛЯ'

с

'ПАРАМЕТРАМИ

^ПАРАМЕТРЫ'и

•вырабатывающая ЗНАЧЕНИЕ'

'ЗНАЧЕНИЕ'

f

'ИЮЛЯ ПОЛЕ’

'!ПОЛЯ' и 'ПОЛЕ'

Г

’’ПАРАМЕТРЫ ПАРАМЕТР'

'ПАРАМЕТРЫ' и ПАРАМЕТР'

i

ГЛОВО дня выборки ВИДА'

'СЛОВО' И вид'

J

'параметр вила ВИД’

ВИД'

Дня объединения -соответствующие ’’ЭПИЛОГИ' имеют форму ^ОБЫЧНЫХ! воедино' и 'ЮБЫЧНЫХ.2 воедино'. Поскольку внутри эквивалентных объединений 'ОБЫЧНЫЕ' могут переставляться, как в специфицируемых об (вещ, цел} и об (цел. вещ) видах, то для них эквивалентность определяется проверкой тоги, «по ^ОБЫЧНЫЕ! ’ входят (в теоретико-множественном смысле) в ’’ОБЫЧНЫЕ?’ и '’0БЫЧНЫЕ2' входят в 'ОБЫЧ-11ЫЕГ; при этом, конечно, проверка на вхождение рекурсивно обретается к про-верке эквивалентности (правила k, I. пт. л, о, р).

Всякое 'ЗНАЧЕНИЕ’ развертывается (правило-с) в форму 'ПРОДО! ’ЭПИЛОГ" посредством определения того, что :

(i) оно уже имеет эту форму: в таком случае в его 'УКРЫТИЕ' могут помещаться маркеры (ннв' и 'ян') для того, чтобы позднее определить правильность построения этого 'ЗНАЧЕНИЯ' (см. 7.4);

(ii) оно сеть какое-то ЦП определение ВНД.-V- в этом случае в сто 'УКРЫТИЕ' помещается 'НИ помнит ВИД' (при условии, что ото конкрст-4- 136! 97

С.96 ГОС Г 27974- 88

ное 'ЦП' уже не гам) .а затем развертывается лот 'ВИД';

(Hi) оно есть некоторое 'использование НИ': в этом случае в его ‘УК-РЫГНИ' уже ДОЛЖНА wot. какое-то 'ИИ помнит ВИД' Тогда развертывается этот 'ВИД' после проверки на прз8кчыюс1ь построения (см. 7.4). состоящей в определении гою. что в атом 'УКРЫТИИ' перед рассматриваемым 'ЦИ помнит ВИЛ' находится по крайней мерс одно инь.' и по крайней мерс одно 'ин/

{ Прежде чем пара '7ЭНИЛОГОВ' проверяется на эквивалентность, в 'УКРЫТИИ' запоминается, что исходная лара 'ЗНАЧЕНИЙ' уже проверялась. Это делается, чтобы обязательно выйти прямо на ’ЕСЛИ истина',если данные ’ЗНАЧЕНИЯ’ когда-нибудь снова нужно будет проверят» на эквивалентность на более низких уровнях дерева порождения. Поскольку число пар составляющих тех ‘ЗНАЧЕНИЙ', которые .могут выводиться из двух любых данных 'ЗНАЧЕНИЙ',конечно, рассматриваемый процесс заканчивается.

Остается показать, что этот процесс корректен Рассмотрим неограниченное (возможно, бесконечное) дерево порождения, которое могло бы получиться. если бы в данном синтаксисе не было сокращающих выходов (что получится, если опустить первую альтернативу вместе с первым звеном второй альтернативы в правиле Ь) Если два 'ЗНАЧЕНИЯ' неэквивалентны, то в их деревьях вида есть кратчайший пусть от корневой вершины к какой-то вершине, показывающей разницу. Очевидно, что изображение этого кратчайшего пути в неограниченном дерене порождения нс может содержать повторяемой проверки на эквивалентность никакой пары 'ЗНАЧЕНИЙ' и. значит, ни один из сокращающих выходов на 'ЕСЛИ истина’ в ограниченном дереве порождения не может входить в этот кратчайший путь Следо-нательно, этот путь до различия должен также присутствовать и й (от ран именном) дерене порождения, порождаемом; настоящим синтаксисом. Если указанный процесс проверки не показывает разницы в этом ограниченном дереве, го ни за какое число тагов нельзя обнаружить никакой равнины: т.е данные'ЗНАЧЕНИЯ' эквивалентны.]’

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

{ Вид правильно построен, если

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

(и) он не является силы» при водилы м из самого себя (поскольку это вело бы к двусмысленностям при приведении).}

7.4.1. Слн гакаа-

а) ЕСЛИ (ПОНЯТИЕ) меняет УКРЫТИЕ на УКРЫТИЕ { 73с]

если (ПОНЯТИЕ) есть (ПРОСТОЕ) юти

(ПОНЯТИЕ) есть (?!ЮДВИЖНЫЙ МАССИВ из) или (ПОНЯТИЕ) есть (объединение) или (ПОНЯТИЕ) ееп (пустое значение). ЕСЛИ истина.

Ь) ЕСЛИ (ПРИСТАВКА.) меняет УКРЫТИЕ

98

ГОСТ 27974-88 С. 97

на янь УКРЫТИЕ f?3c) ЕСЛИ истина.

с) ЕСЛИ (структура содержащая) меняет УКРЫТИЕ нами УКРЫТИЕ {73с} : ЕСЛИ истина.

d) ЕСЛИ (процедура с) меняет УКРЫТИЕ

на инь ян УКРЫТИЕ } ТЗс) г ЕСЛИ истина.

{ В качестве побочного продук га выявления эквивалентности видов они проверяются нз правильность построения (7.3.1.с) Вес нерекурсивные виды правильно построены. Для рекурсивных видов необходимо, чтобы каждый никл в каждом выписывании такого вида (от'ЦП определения ВИДА’ до 'использования ЦИ'> проходил по крайней мере через один 'ПРОЛОГ', который есть инь, обеспечивая условие ( i), и один (возможно, тот же самый) 'ПРОЛОГ', который есть ян, обеспечивая условие (И). Инь 'ПРОЛО-ТАМИ' являются ’ПРИСТАВКА' и ’процедура с. Ян 'ПРОЛОГАМИ' являются 'структура содержащая’ и 'процедура с' Остальные'ИММЮГИ'. включая '■’ПОДВИЖНЫЙ МАССИВ из' и объединение', нс являются ни инь. ни ял Это означает, что и се виды. специфицируемые посредством а. b и с в

ВИДа =СГ (UCi п, ИМЯ й СЯСА), b = ct (ЛроиЬО)еД), с* Проц (с) с, правильно построены. Однако

виде!* [1 : 10] d. с = об (цел.е) не есть описание вила }

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

[ Изображения, например 3.14 или „абв”. Представляют собой конструкты, выдача которых не зависит ни от каких действий II некоторых других языках они иногда называются .литералами” или ..констан га ми ".J

8.0.1. Синтаксис

а) изображаемое в СРЕДЕ выдающее ЗНАЧЕНИЕ {SO. А34 11 j : возможная последовательность пояснений ( 92а) .

изображение ЗНАЧЕНИЯ {вЮз. 811а. 812а . 8 13а. 814а. 81.5а, 83а, Ь, c,83a.J.

I Смысл изображения не зависит ни от какой среды.}

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

[ Изображения простого - это изображения арифметических значений, истинностных значений, литер и пустого значения, например I. 3.14, истина, „а” н пустое. }

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

А) РАЗМЕРНОЕ :: длинное; короткое.

В)" ЧИСЛО :: натуральное число; рациональное число;

действительное число

а) изображение РЛЗМЕР1 ЮГО ЧИСЛОВОГО [ а. 80а)

символ РАЗМЕРНОЕ { 94ii} .

изображение ЧИСЛОВОГО {а. 811а.812а}.

N* изображение простого:

4*

99

С. 98 ГОСТ 27974 -88

изображение ПРОСТОГО fa.8 11з.8)2а. 813а, 8|4а} ;

изображение пусюп» значения {815а} .

(Пример:

а) длин 0}

8.].0.2. Семантика.

Выдача W мэоб^женмя-ЧИСЛОВОГО есть „естественное значение’” / 8.М.2, 8.1.2.2.3. bj его составляющего ЧИСЛА;

• требуется, чтобы W была не большие, чем наибольшее из различаемых (2 1.3. Ld } значений вида 'ЧИСЛОВОЕ'.

(Изображен ис-ЧИС НОВОГО выдаст арифметическое значение

£2.1.3.1.а) . но выдаваемые различными нэображениями-ЧИСЛОВОГО арифметические значения нс обязательно различны (, например, 123.4 и 1.234,0 +2).)

8 11. Изображении целого

8 1.1.1. Синтаксис.

а) изображение целого {80*. 810а} : натуральное число (bj .

Ь) натуральное число (а. 812с, <1. f. i, A341h}: последовательность десятичных цифр {с}.

с) десятичная цифра (Ь } : символ ЦИФРА [94b}

[ Примеры:

а) 4096 Ь) 4096

с) 4)

8-1.1.2. Семантика.

Естественным значением нажурального-числа N является целое число, десятичное представление которого в эталонном языке есть это N {9.3.b} .

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

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

а) изображение вещественного [80а. 810а}:

рациональное число {b} ; действительное число (с).

Ь) рациональное число Ja. 1’}:

возможная целая часть [с }. дробная часть fd}-

с) целая часть { b} : натуральное число [811b} -

d) пробная часть { Ь} :

символ точка [94b} насуральное число { 811 b} .

е) действительное число [ а} : мантисса { 1}, порядок [gj .

f) мантисса Je} : натуральное число [Ы1Ь} ;

рациональное число [b}.

g) порядок [с}:

запись десятичного «снования [hj . степень десяти [ij.

h) запись десятичного основания fg}

символ на десять в степени { 94b } ;

символ буква е { 94а) либо символ буква е лат {94а J .

i) степень десяти [ g }: возможные плюс или минус [ j ].

натуральное число [ 811b}.

j) плюс или минус {i}: .

символ износ [ 94с} ; символ минус [94с) .

100

ГОСТ 2797 4 8»С.94

I Г1 ри мерь»:

а) 0.00123 • L*3e-3

с) 0

с) 1.’3е-3

g) с 3

i) -3

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

Ы 0.00123 d) .00123 О 1*3 - 1.23 •О ю • е j) ‘ • -}

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

• пусть I — естественное значение натурального- числа его составлявшей. цссюй-части. сечи она есть, а иначе 0;

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

• V — сумма, в смысле численного анализа, ] л F.

Ь) Естественное значение дсйствительного-чнсла N определяется следующим образом:

• пусть 3 — естественное значение ЧИСЛА его мантиссы;

• пусть Е - естественное значение составляющего натурального-чиста его порядка;

Случай Л: Составляющий возможный-нлюс-или-мннус этого N содержит символ-минус:

• V - произведение, в смысле численного анализа, S и числа 1/10, возведенного в степень Е;

Случай В; Прямой наследник рассматриваемого возможного-тьтюса-или-минуса содержит символ-плюс иля пуст:

V - произведение, в смысле численного анализа, S и числа 10, возведенного в степень Е.

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

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

а) изображение логического { 80а J :

символ истина (94b); символ ложь [94b} .

{ Примеры

а) истина • ложь}

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

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

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

{Изображсмия-литсрного состоят из элемента-строки, заключенного между двумя символэми-кэвычка, например "а’’ - Чтобы изобразить кан-ыт-ку. используют символ-образ-кавычкм (представляемый как "" ).напри-мер"’•" .’’Поскольку синтаксис нигде не допускает, чтобы изображения-литерного нли<трокового следовали одно за другим, это нс приводит к двусмысленности.}

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

а) изображение литерного 180а):

101

C.lOO ГОСТ 2 79 74-88

символ кав ычка [94b }, элемент строки {b), символ кавычка {94b} .

Ъ) элемент строки [a. 83b} : элсмею основного набора { с}:

символ образ кавычки {94bj ; добавочный элемент строки { d }.

с) элемент основного набора { b. 92с }: символ Б УКВА [ 94аJ , символ ЦИ4>РА [94b} ; символ точка [94b} • символ открыть {94f}; символ закрыть L94fr;

символ запятая (94b) ; символ пробел {94b}:

символ плюс [94cJ ; символ минус {94с} .

d) Для понятия 'добавочный элемент строки' [b, для которого в тексте настоящего стандарта не задано никакого гиперправ-ила J можно добавить порождающее правило, каждая из альтернатив которого является символом { I.I.J.l.f}. отличным от любого терминального порождения 'элемента основного набора’ {с} н не являющимся 'символом кавычка'.

{ Примеры:

а) ”4” Ь) в • " ” • 1

с> а •(••(•)•.•.•♦• -}

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

а) Выдача изображення-лигерного есть естественное значение символа, наследного для его элемента-строки.

Ь) Естественным значением каждого отдельного символа, наследного для элемента-строк и, является отличная от других литера.

{ Литеры не имеют специфического смысла, за исключением того, что некоторые из них интерпретируются особым образом описаниями обмена (10.3) Элеменгы-оснсвмого-набора, включающие все литеры, необходимые для обмена, образуют некоторое минимальное множество,обеспечиваемое, как ожидается, во всех реализациях (2.2,2 с).}

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

{ Изображение пустого-значения можно использовать, чтобы присвоить пустое значение переменной-видд-ПРЕДСТАВИТЕЛЬ, например об (( | веш,пуст) и: = пустое. }

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

а) изображение пустого значения {80а/ : символ пустое {94b} . {Пример:

а) пустое }

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

Выдача всякого изображения-пустого-значення есть пустое.

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

8.2.1. Синтаксис

А) ДВОИЧНОЕ :: двоичное; четверичное; восьмеричное; шестнадцатеричное.

а) изображение структуры содержащей ДОЛГУЮ

?Д0ЛГУЮ букву алеф для выборки

102

ГОСТ 27974-88 C.l 01

вектора из логических в себе {а, 80а) :

символ длинное {94d} . изображение структуры

содержащей "’ДОЛГУЮ букву алеф для выборки вектора из логических в себе [й, с} .

Ь) изображение структуры содержащей КРАТКУЮ

7КРАТКУЮ букву алеф для выборки

вектора из логических в себе {b, 80а J:

символ короткое 194<1} , изображение структуры

содержащей 7КРЛТКУЮ букву алеф для выборки иск тора из логических в себе { Ь, с}

с) изображение структуры содержащей букву алеф для выборки вектора из логических в себе £ а, Ь. 80а} г

ДВОИЧНОЕ основание {б, е, f, g J.

символ буква эр лаг { 94а} ,

последовательность ДВОИЧНЫХ цифр [h. i, j. k } ДВОИЧНОЕ основание {d,c, f, g f.

•символ буква я [ч4з}, лоследоаательность ДВОИЧНЫХ цифр {h, i, j, k}.

d) двоичное основание {c, A347b} : символ цифра два £94b}

с) четверичлоеоснование fc, A547b} :

символ шифра четыре {94b} .

f) восьмеричное основание £с. A347b} :

символ цифра восемь { 94b} .

g) шестнадцатеричное основание {с, A347b} :

символ цифра один {94b} , символ цифра шесть ( 94ъ}

h) двоичная цифра {с. i}:

символ цифра нуль- { 94b} ; символ цифра один {94b} .

1) четверичная цифра {с. j }: двоичная цифра { 11};

символ цифра два {94b}; символ цифра грн {94b} .

j) восьмеричная цифра {ctk} ; четверичная цифру {)};

символ цифра четыре { 94b}: символ цифра лить {94b} ;

символ цифре тесть { 94b} ; символ цифра семь {94b} к) шестнадцатеричная цифра {с } : восьмеричная цифра { j };

символ цифра восемь {94b}; символ цифра ценить -{94b} : символ буква а лаг {94а) ; символ буква бе лат {94а};

символ буква цэ лат {94а} ; символ буква де лат 194а}; символ буква е лат { 94а} ; символ бук ва эф лат {94а} ;

символ буква а {94а} ; символ буква б { 94з} ;

символ буква ц { 94а }; символ: буква д { 94а} .

символ буква с {94а}; символ буква ф {94а}.

I )* изображение битового : изображение БИТОВОГО {з.Ь.с}.

{ БИТОВОЕ :: структура содержащая букву алеф для выборки вектора из логических в себе.}

in)* машинная цифра: ДВОИЧНАЯ цифра { h, i.j, k}.

103

€.102 ГОСТ 27974 -8»

[ Приморья:

а) длин 2г 101 • длин 2я 101

Ь) кор 16г ffff • Кор 16я фффф

с) 8г231 • 8*231}

8.2.2. Семантик?

а) Выдача V изображення-битового D определяется следующим образом

пусть W - естественное логическое значение { b} его составляющей

до следа нательноети-ДВОИЧНЫХ-кифр:

•■ пусть m - длина этого W;

- пусть п — значение Д размер бит {10.2.1 .jj, где Д означает длин (кор), повторенное столько раз. сколько символов-длинмое (символов-короткое) содержится в D;

- требуется, чтобы гл было яс больше п:

- V — структура (вида 'БИТОВОЕ'} , единственным полем которой является массив, имеющий

(i) паспорт ((I. п)> к

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

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

с) Естественное целочисленное значение госледоватсльности-двоичныл-(-четверичных-, -восьмеричных-, -шестнадцатеричных-) цифр S есть целое число, двоичным (четверичным, восьмеричным, шестнадцатеричным) представлением которого & эталонном языке является S [ 9.3.ъ}. где пред-ставлсния а (а), b (в)3 с (u). d (д), е О) и f (ф) рассматриваются как цифры, имеющие значения 10, I 1, 12, 1 3, 14 и 15 соответственно.

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

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

Пример:

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

83.1. Сцнтохсис

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

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

b) строка fa} : элемент строки {814W.

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

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

£ 11 ри ме ры:

а) "абв” Ь) аб® J

104

ГОСТ 27974-88 С. 103

8-3.2. Семан тика

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

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

• паспорт V есть ((I. п));

• для 1 = 1, .... д элементом этого V с индексом (i) является естественное значение {8.1.4 2 b} i-ro составляют его символа строки этою D.

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

например,

об (лит. строк) cs =cipoK fa”).}

9. ЗВАКИ И СИМ воль»

9.1. Знаки

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

9.1.1. Син такагс

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

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

знак если ОФОРМЛЕННЫЙ f 94f. J ;

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

знак выбрать ОФОРМЛЕННЫЙ {^f, •}

b) вход в советвемно ВЫБИРАЮЩЕЕ ОФОРМЛЕННЫЙ f34ej

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

знак го ОФОРМЛЕННЫЙ 194f. ;

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

с) продолжатель ВЫБИРАЮЩЕГО ОФОРМЛЕННЫЙ [341 j:

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

знак иначе если ОФОРМЛЕННЫЙ £94f, -} :

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

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

d) выход собственно ВЫБИКАЮЩЕГО ОФОРМЛЕННЫЙ I 34 IJ :

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

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

IOS

С. IM ГОСТ 279-74-88

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

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

знак все ОФОРМЛЕННЫЙ (94f. }:

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

знак конец выбора ОФОРМЛЕННЫЙ f94f, -} .

f) знак ПОНЯТИЕ:

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

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

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

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

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

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

• действие, которое следует предпринять при переполнении (2-1-4.3.Ь) или при нарушении правила об областях действии (, как в 5.2.J-2.b), например прагм включить проверку переполнения прагм, прагм выключить проверку переполнения прагм, прагм включить Проверку областей действия прагм или прагм выключить проверку Областей действия прагм;

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

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

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

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

пел q : = О, г : = а;

пока г > b прагм здесь a"bXq+rAO<r прагм

цк (q ♦:« 1, г - := Ь) ки

прагм здесь а - b X q + г А О С г < b прагм.

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

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

106

ГОСТ 27974-88 С. 105

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

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

9.2.1. Синтаксис

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

а) пояснение 180а. 9 If, А34 !b, h,

А348а.Ь.с,А34 9а.Л3 4А b? ПОЯСНЕНИЕ { b) .

b) ПОЯСНЕНИЕ fa I:

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

возможная последовательность элементов

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

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

с) элемент ПОЯСНЕНИЯ ОФОРМЛЕННЫЙ fb} :

элемент основного набора {й14с} ;

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

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

Так, например, примечанием может быть прим Л прим, но нс ЙЫЛ Примеры:

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

11 исходная программа будет распечатана й

С) 1 И}

9-3. Представления

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

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

Ь) Всякий „конструкт в языке представления" поддается из терминального порождения Т {l. 1.3.2.f } соответствующего конструкта в строгом языке (1.1.3.2.еJ заменой всех символов » Тих представлениями, ко-

16?

Cl06 ГОСТ 27974-88

горые для данного эталонного языка заданы в подразделе 9.4.

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

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

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

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

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

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

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

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

{Для некоторых разных символов заданы одинаковые или почти одинаковые представления; например, представление задано для символа-признак п ро цедурь!. символа-двоеточие и символа-вплоть-ДО. 3 ,,: ” - ДЛЯ символа-мегка Вне пределов примечаний, прат магов или изображений-строки из синтаксиса однозначно вытекает, какой из этих четырех символов представлен вхождением любого знака, подобного о-дному из этих представлений В этом случае также можно без какой бы го ин было дву-

10ft

ГОСТ 2797 4 -88 С. 107

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

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

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

d) Пробел, переход на новую строчку или страницу - это „особенности типографского набора”. Эти особенности не принимаются во внимание и, когда они появляются между символами какого-нибудь конструкта в эталонном языке, они не оказывают влияния на смысл этого конструкта Однако пробелы, содержащиеся в пределах изображения-строки или изобра-жени я л и герно: о, являются одним из представлений символа-пробел /94.1.ъ}, а не особенностью типографского набора. Когда представление символа в эталонном языке состоит из нескольких знаков {, например, до. -)• ли знаки образуют один {неделимый ^символ. и, если явно не оговорено противное | 9.4.2.2а, cj . особенности типографского набора не могут разделять их.

9-4.1. Представления символов

а) Символы для букв

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

буква а буква б буква в буква г буква д буква е буква ж буква з буква и буква й буква к буква л

символ

814с. 82к, 942В, A.M6b}

814с. 82к,942В, A344b}

В 14с, 942В }

814с. 942В }

814с, 8 2к,94 2В. A342fJ

8l2h, 814с, 82k. 942В. А343е} 814с, 942В}

814с, 942В }

К 14с. 942В . А345Ь/

814с, 942В }

«14с, 942В. A34]fJ

814с. 942В. А34Iff

представление а б в г д е

ж з и Й к л

199

С. 108 ГОСТ 27974-88

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

символ буква н 814с, 942 В, A341h 7

символ буква о символ буква п символ буква р символ буква с символ буква I символ буква у символ буква ф символ буква х

символ символ символ символ символ СИМВОЛ символ символ символ символ символ символ символ символ символ символ СИМВОЛ символ символ СИМВОЛ символ символ символ символ

буква ц буква ч буква ш буква ш буква ъ буква ы

814с.942В}

814с. 942 В, А 34 If]

814с.942В. А347с/

814с,82к.942В, А348а)

814с. 942В}

814с. 942В. A34Lf}

814с. 942В)

814с.942В. А341|{

814с.942В}

814с. 942В}

814с, 942В J

814с, 942В}

f814с. 942В ]

£814с. 942 В)

букваь |814с,942В}

буква» {814с.942В/

буква ю( 8 14с.942ВJ

буквам (814с. 942В}

буква а лат { 814с, 82k, 942В, А346Ь 7 буква бе лат f 8L4c, 82k, 942В. A344b3 буква не лат { 814с, 82k, 942В. А34Ва$ буква де лат { 8i4c, 82k, 942В. A342f} буква е лзт {812h, 814с, 82k. 942В, А343е) буква оф лат [ 8 14с, 8 2k. 94 2В. Л 34 9а} буква те лат (814с, 94 2Ь. А43Аа } буква аш лаг { 8 14с, 942В }

буква к лат { 814с, 942В, A345bл

букьа кот лат { 814с, 942В }

буква калат (8 14с. 942В. А341 f J буква эль nail 814с, 942В, A341f) буква эм лат / 8 14с. 942В }

буква эн лат { 814с. 942В, А34 I h }

символ буква о лат {814с, 942ВJr символ буква пэ лат { 814с. 242В. A341f ] символ буква ку лат { 814с. 942В. А341Г } символ буква эр лат (814с, 82с, 942В. А347с } символ буква эс лат (814с, 942В. A341I } символ буква гэ лат [ 8 14с, 942В } символ буква у лат { 814с, 942В ] символ буква вс лат (814с, 942В } си мвол буква ду бл ь ве л аг {814с. 942 В } символ буква икс лат ( 814с, 942В. A34I f } символ буква игрек лат { 814с. 942В, Л341 f }

ПО

м и о

ГП р с т

У

Ф

X ц ч

■- yfc ^ « с. о е‘ и а я и г 7 в1 с g

1

j к 1

m п

о

Р q г

S t и

V W х

У

ГОСТ 27974-88 С.П 09-

СИМВОЛ буква ээглат {814с, 942В, A342d}

Ь) Символы для изображений символ

сям вол диф рз нуль ( 811 с. 814с, S2h, 942С J сям вол цифра один { 43b, 8 11с, 814с, 82g, h, 942С} символ цифра два / 43b, 8Ис, 814с, 82d, i, 942Ci символ цифра три { 43b, 81 tc, 814с, 82i, 942С j символ цифра четыре f 43b, 811с» 814с, 8Зе, j, 942С } символ цифра пять I 43b. 811с. 814с. 82j, 942С } символ цифра шесть } 43b. 811с. 814с, 82g, j, 942С } символ цифра семь { 43b. 811с, 8 14с, 82j. 942С} символ цифра восемь{ 43b. 811с. 814с. 8 2f. k. 942С1 символ цифра девять { 43b. 81 lc, 814с. 82k. 942С } символ точка { 812d. 814с. A343d} символ на десять в степени /812Н/ символ истина { 813а} символ ложа, {813а } символ кавычка { 814а. 83а} символ образ кавычки [814b} символ пробел { 814с j символ запятая ( 814с] символ пусгое {815а j

с) Символы для обозначения операций символ

символ или (942Н J

символ и {942Н}

символ эмлерсенд ] 94-2HJ символ не равно {94211} символ меньше {9421J символ не Гюлыде / 94211} символ не меньше {94211] символ больше {9421} символ разлепить { 9421 / символ от до { 94211} символ процент { 94211} символ элемент { 942Н) символ меньшее целое { 942Н J символ большее целое / 94211} символ плюс и на {942Н} символ не {942HJ

символ тильда {942Н> символ вниз ( 94211 } символ вверх 5 94211} символ плюс ^812j, 814с. 942Н, Л342е } символ минус { 812j, 814с. 942Н, А342е}

2

представление О

1

2

3

4

5

6

7

8

9

true истина

falls ложь

empty пусгое

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

V Л

& *

< <

>

X

г

I г ♦

111

С.вю ГОСТ 27974-88

символ равно {9421}

символ умножить { 9421}

X

символ звездочка ( 94211

символ присвоить нэп рано { 942 J 1

=■;

символ присвоить {44f, 521а. 942J } d) Символы для описаний

; ■

си мвюл

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

символ определяется как

{42b, 43b, 4.4с, 45с }

=

символ длинное { 8 10а, 82а }

long

длин

символ короткое f 8!0a,82bJ

short

кор

символ имя (46с)

ref

и мя имени

символ локальный { 523а. Ь}

Joe

лок

символ глобальный { 523а. Ь}

heap

глоб

символ структура { 46d }

struct

ст сгрукт

символ подвижное { 46g}

flex

ПОЛЯ

символ процедура {44b,46oj

proc

проц

символ объединение {46s j

union

об

символ операция {45а}

op

сл

символ приоритет/ 43а}

prio

прио

символ вид {42а }

с) Стандартные виды

mode

вид

символ

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

символ целое {942£}

int

цел

символ вещественное i942E]

real

вещ

символ логическое { 942Е}

bool

лог

символ литерное {942Е}

char

лит

символ формат [942Е/

format

формат

символ пустое значение (942EJ

void

пуст

символ комплексное (942Е}

comp]

КОМЛИ

символ битовое {942Е}

bits

бит

символ слоговое {942Е}

bytes

СЛОГ

символ строковое 1942Е}

string

строк

символ сема {942Е}

sems

COM3

символ файл (9426}

file

файл

символ канал / 942 Е}

channel

канал

f) Синтаксические символ

Ы

символ

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

символ начало выделенный fl 33d}

begin

символ конец выделенный {133d / символ начало краткий

end

/ 133d. A348b,A34Ab} символ конец краткий

(

{133d. A348b. A34Ab}

)

112

ГОСТ 27974 - 88 СЛИ

символ начало стил и I 1133d)

символ коней стиля I {133d} символ начало стил я 11 Г133d }

символ конец стиля If {133d} символ а также { 133с, 33b, f, 34h, 41а,

начало колец нач кОН

b,46e. i,q,t.532b,S41e. 543b, A348b.A34Ac, d }

символ продолжать { 32bJ символ завершить { 32b J символ метка (32с} ,

символ параллельно { 33с } символ отк рыть { 814с } символ закрыть {814с} символ если выделенный £91 а}

exit

par < ) if

выход

пар

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

символ иначе если выделенный f 91cjt ehf

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

символ все выделенный (91с) fi

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

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

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

символ либо выделении й { 91 d } , out

символ коней выбора выделенный [91 eJ csac символ если краткий {91а} (

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

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

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

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

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

СИмвол В краткий {91b} I

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

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

символ конец выбора краткий 191с/ )

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

символ иначе если стиля II {91с} символ иначе стиля I { 91dJ символ все стил я 1 [ 91 е} символ выбрать стиля {91з} символ в стиля I {91Ь} символ либо выбрать стили I /91с} символ либо стиля: 1 { 9 I d }

символ конец выбора стиля 1 (9leJ символ двоеточие {34j, kJ символ открыть индексы краткий { 133е} [

если то инее иначе все выб в яивыб либо быв

113

CI 12 ГОСТ 2 7974-88

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

]

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

(

символ закрыть индексы стиля I (1 33е}

)

символ вплоть до {46j. к, 1, 532f}

символ с ($32g}

®

at

c

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

is

есть

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

:*:

:/«:

isnt лесть

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

о

nil

нил

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

символ признак процедуры {54la, b}

-

of

из

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

goto

символ на к раткий (544b}

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

go

на

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

skip

пропуск

скип

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

g) С и м в о л ы для цикло»

J

Ф

СИМВОЛ

символ для выделенный t35bJ

символ нижний предел

выделенный {35d}

символ с шагом выделенный {35d} символ верхний предел выделенный

{35d. 544b}

символ пока выделенный 135g] символ цикл выделенный {35h} символ конец цикла выделенный {35h} символ для краткий (35b)

символ нижний предел краткий pSdj символ с шагом краткий {35d} символ ьермтмй предел краткий (35dJ символ пок а к раткий {35g} символ цикл краткий f 35h} символ конец цикла краткий J35h} h} Символы для пояснений

СИМВОЛ

символ примечание краткий (92b) символ и ри метание в ыдел енны й {92b ) символ примечание стиля I {92b} символ при метание стиля II { 92bj символ » ри мечание стиля III { 92b} символ п римечание стиля 5111 С92b ) символ прагма: выделенный I 92b} символ прагмат стиля I (92b} символ прагмат стиля II { 92b/

представление for

from

by

to

•while

do cd для or шзг через ДО пока цк кц

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

i comment co

#

прим ri

pragma t

РГ

прагм

ГОСТ 27974 8ВС.ЦЗ

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

9.4.2.1. Мета синтаксис.

А) СЛОВО { D. F. К. 48а. b. с, d } - БУКВА (в} ; СЛОВО БУКВА [ В} : СЛОВО ЦИФРА fc]

В) БУКВА { А} :: буква АЛФАВИТА {94а};

буква алеф {-}; буква АЛФАВИТА стиля НОМЕР { -} .

С) ЦИФРА {а} :: цифра нуль {94b? ; цифра один {94b) ;

цифра два [ 94b} ; цифра три { 94b} ;

цифра четыре { 94b} ; цифра пять {94 b} ;

цифра шесть {94b} : цифра семь {94b} ;

цифра восемь { 94hj ; цифра девять {94b} -

D) ИНДИКАНТ {48а, b } :: выделенное СЛОВО { А, ■} ;

.’РАЗМЕРНОЕСТАНДАРТНОЕ {е}.

Е) СТАНДАРТНОЕ {о}: целое {94е} ; вещественное { 94е } ; логическое {94е} ; литерное { 94е } ; формат (94е) ; пустое значение /94е{ ; комплексное f 94е{ ;

битовое }94«} ; слоговое }94е) .

строковое {94е} , сема (94е) ; файл (94* j ; канал { 94с}.

F) ИНФИКС (48а, Ь} :: выдслсшюе СЛОВО ( А. - } , ЗН АК ( G } '’ПРИС ВОЕНИЕ { J J , ЗНАК ( G j перед НЕПРЕФИКСНЫМ {1 } ’ПРИСВОЕНИЕ [i] .

G) ЗНАК (Г} - ПРЕФИКСНЫЙ (Н? ; НЕПРЕФИКСНЫЙ { 1}

Н) ПРЕФИКСНЫЙ /G. К/ :: или [94с) ; и {94с} ; амперсснд {.94с} ; не рав но (94с) ; не больше (94cj ; не меньше {94с};

от до {’’4с} , процент (94<; ; элемент {94с} ;

меньшее-целое {94с}; большее целое (94с};

плюс и на ( 94с} ; не { 94с} ;

тильда Г94сJ ; вниз / 94с I;

вверх Н4с} ; плюс [94с] ; минус (94с} ; префиксный стиля НОМЕР(■}

о НЕПРЕФИКСНЫЙ (F.G.K} :: меньше {94с} ; больше (94с) ; разделить { 94с } ; равно {94с}, умножить {94с};

звездочка { 94с] .

Л ’ПРИСВОЕНИЕ (F, К} :: перед присвоить { 94с} ; перед присвоить направо {94с} : ПУСТО.

К) ПРЕФИКС (48a,bJ :: выделенное СЛОВО /А.-} ;

ПРЕФИКСНЫЙ (Н} "ПРИСВОЕНИЕ {jj; ПРЕФИКСНЫЙ UIJ перед {9422<} НЕПРЕФИКСНЫМ {|} ’ПРИСВОЕНИЕ { .1}

L) АЛФАВИТ {В} :: а;б; в; г; д;в;ж;з;и; и; к; л; м; н;о;п; р;с; т;у; ф; х; ц; ч; ш, ш; ь; ьз; ь; э; ю; я;

а лат; бе лат; целит; де лат; е лат; эф лат; гс лат; аш дат; к лат; йот лат; ка лаг; аль лат; эм лаг; эн лат; о лат; «плат; ку лат; эр лат; эс лат; тэ лат; у лаг; ве лат; дубль вс лат; икс лаг; игрек лат; зэт лат.

М)*ЗНАКОВЫЙ ::ЗНАК {G} ; ЗНАК {g} перед

115

Cl 14 ГОСТ 27974-88

НЕПРЕФИКСНЫМ (1}

/Металомятие ..АЛФАВИТ" предусмотрено в дополнение к мегапоня-гию „ЛИТЕРА1', чтобы способствовать определению вариантов Алгола 68 (I I Sb).}

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

а) Представление каждого символа-СЛОВО. не заданное выше /9.4.J), состоит и» Жаков, соответствующих по порядку 'БУКВАМ' или ’ЦИФРАМ , содержащимся в этом 'СЛОВЕ'. Эти знаки могут разделяться особенностями типографского na6opa{9.4.dj Знаком, соответствующим каждой 'БУКВЕ' ('ЦИФРЕ') . является представление данного символа-БУКВА (символа-ЦИФРА) /Например, представлением симнояа-буква-х-инфра-одмн является х 1. что можно написать н как х I. Символы-СЛОВО используются для идентификаторов и указа теле й-пояя.]

h) Представление каждого симвояа выаеленное-СЛОВО, если оно вообще существует, состоит из знаков, соответствующих по порядку'БУКВАМ' или 'ЦИФРАМ', содержащимся в этом 'СЛОВЕ' /. но без разделяющих их особенностей 1И№Гр4фской» набора} Знак, соответствующий каждой БУКВЕ' ('ЦИФРЕ') . аналогичен знаку, представляющему соответствующий символ-БУКВА (символ-ЦИФРА), что воспроизводится к настоящем стандарте соответствую шеи буквой (цифрой). / Приемлемы также и другие спо-собы указания этой аналогии, распознаваемые без дополнительных разъяснений. например, лицо, лицо. ЛИЦО, лицо и лицо' могут все быть представлениями для символз-выделенные-буква-л -буква-и-буква-и-букваю.}

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

с) Представление каждого снмвола-РАЗМЕРНОЕ-? РАЗМЕРНОЕ -СТАНДАРТНОЕ состоит из представления соответствующего символа-РАЗМЕР-НОЕ с возможно следующими за ними особенностями типографского набора, за которыми идет пред славление- соответствующего символа- ?РАЗМЕР-НОЕ-СТАНДАРТНОЕ- Например, представление символа-длиянос-всщест-в-енное будет длин вещ или. возможно, ’длин 'вещ' (. но. согласно сказанному в it b выше, нс длинвещ и не 'длинней/, так как последние могли бы быть представлениями для символз-выдедемиые-буква-д-буква-л-буква-и-

rOCt2W4-S8 С. 115

букнзн-букг5а-н-букна-е-буква|ц)-Символы-^РАЗМЕРИОЕСТАНЛ7ХРТНОЕ используются для индикаторов.вида. /

d) Представлен и? КАЖДОГО «ИМ1ЮЛа-ЗНАК0ВЫЙпе|ХДА]Ж<В0НГЬ (сим-вола-ЗИАКОВЫЙ-неред-присвоить-напрэво) состоит из знака или знаков, представляющих еоошстствующин символ-311АКОВЫЙ, за которыми, без вмешательства особенностей типографского набора, идут знаки, представляющие символ присвоить (символ-лрисвоить-направо) . f Например, представлением символа-плюс-перед-присвоить является +:*. Символы-ЗНАКО-ВЫИ-персдТПРИСВОЕНИЕМ используются для обозначенийоперадим }

е> Представление каждою символа-311ЛК-перед-НЕПРЕФИКС11ЫМ состоит из знака, представляющего соответствующий: символ-ЗНаК, за которым без вмешательства особенностей типографскою набор, идет знак, представляю!ний соответствующий символ-ПЕПРЕФИКСНЫЙ. [Например, представлением символд-о-т-до-псред-умиожить является -? Х. Символы-ЗНАК-перед-НЕПРЕФИКСНЫМ2 могут быть только обозначен иями-бинар-ноконсрации. ]

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

[данная „стандартная языковая обстановка" охватывает составляющие ВНЕШНИЕ-вступления. системныезадачи и собственные заключения всякого тскста-п рограммы. }

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

[Программист имеет дело с собсгвснно-црограммами (IOJ-1-gh Последние всегда включены и тек-ст-программы (1 0.1.1 .а), содержащий также стандартное-вступление. библии ючное-вступление. зависящее от реализации смстемное-встуиление и системные-задачи, соответствующие операционной обстановке, возможно некоторые другие собственно-программ!.!, одно или несколько собственных вступлений (но одному для каждой из собствен но-программ) и одно или несколько собственных-заключений.}

10.1.1. Синтаксис

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

библиотечное; системное; собственное-

В) СТОН ;: буква эслат буква галат буква о лат

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

в) текст программы:

знак начало ОФОРМЛЕННЫЙ [94f],

иступления в новом {ПУСТО} с СЛОЕМ 1 {b},.

знак параллельно { 94fJ,

УПАКОВКА задач в новом [ПУСТО} с СЛОЕМ 1 |dj.

знак коней ОФОРМЛЕННЫЙ { 94f}.

b) вступления в СРЕДЫ [а[:

стандартное вступление с ОПИСАНИЯМИI вСРЕДЕ! {cj, -

II?

C. J It ГОСТ 21974-88

библиотечное вступление с ’ОПИСАНИЯМИ? в СРЕДЕ 1 [с] , системное вступление с ?ОПИСАНИЯМИЗ в СРЕДЕ! {с}, если (СРЕДА!) есть (новое ПУСТО с новыми

! ОПИСАНИЯМИ! ’ОПИСАНИЯМИ 7ОПИСАНИЯМИЗ).

с) ВНЕШНЕЕ вступление с ’ОПИСАНИЯМИ! в СРЕДЕ! { b, f] : кортеже ?ОПИСАНИЯМИ1 сильно

выдающий пустое значение в СРЕДЕ! {32Ь}, знак продолжать { 94 fj ;

если (’ОПИСАНИЯ!) есть (ПУСТО), ПУСТО.

d) задачи в С РЕДЕ 1 faj:

список системных задач в СРЕДЕ! (е} г

знак а также

список УП АКОВОК задач пользователя в СРЕДЕ! *

с) системная задача в СРЕДЕ! }dj :

основа в СРЕДЕ!

сильно выдающая пустое значение (32dJ.

Г) задача пользователя вСРЕДЕ! р}:

собственное вступление с {ОПИСАНИЯМИ в СРЕДЕ2 {с}, УПАКОВКА собственно программы в СРЕДЕ2 [g] .

знак продолжать {94fJ.

собственное заключение в СРЕДЕ2 { ij , если (СРЕДА2) есть (СРЕДА! с новыми’ОПИСАНИЯМИ (и) СТОПОМ).

g) собственно программа в СРЕДЕ? {>Ъ

групповое определение меток через ’МЕТКИ?

в СРЕДЕ2 с новыми ’МЕТКАМИ? { h } , ЗАКРЫТОЕ предложение в СРЕДЕ2 с новыми ’МЕТКАМИЗ сильно выдающее пустое значение (31а, 33а, с, 34а, 35а] .

h) группонос определение меток

через ?МЕТКМ в СРЕДЕ (g, h } :

если (’МЕТКИ) есть (ПУСТО), ПУСТО:

если (7МЕТКИ) есть (МЕТКА! ’МЕТКИ!), определение метки через МЕТКУ! в СРЕДЕ {32с} , Групповое определение меток через ’МЕТКИ в СРЕДЕ fh].

i) собственное заключение в СРЕДЕ2 f f }:

кортеж с СТОПОМ сильно выдающий пустое значение в СРЕДЕ2 (32 b} .

{Примеры:

а) (с стандартное-вступление с; с библиотечное-вступление с; с системкос-вступленме с;

пар начало $ системная-задача-1 с, с системная-задача-2 с,

(с собственное-вступление с;

118

ГОСТ 27974-88 CI 17

(старт: начать: дач пропуск кон);

с собственное-заключение с), (с друтзя-задача-по-льзовагеля с)

конец)

Ь) с стандартное-вступление (10-2, ЮЗ) с;

с библиотечное-вступление с:

с смете мное-всху пленке (104.1) с;

d) с системная-задача-1 (10.4.2.*) с,

с сис темная-задача-2 с,

(с собственное-вступление с:

(старт: начать: начпропуск кон);

с собственное-заключение с).

(с другая-задача-пользователя с)

f) с собственное-вступление ( ЮЗ .1) с;

(старт: начать: мач пропуск кон) ;

с собственное-заключсние (105.2) с

g) старт: начать: нач пропуск коп

h) старт: начать:

i) stop: стоп: снять (станд ввод);

снять (стаялвывод); снять (станаобмел)}

10.1.2. Соответствие яшковой •обстановке'

а) Программа в строгом языке должна быть подобна tl.l.3.2.к } некоторому текст у-программы, составляющие ВНЕШНИЕ-вступления и собст-венные-зэключения которого задаются ниже в настоящем разделе.

(Удобно говорить о стандартном-вступлении, бибпиотстшом-вступлении, собствен но-программе и т.п. некоторой программы, когда рассматриваются фрагменты этой программы, соответствующие составляющему стандартному-вступлению- и т.п. соответствующего текста-программы }

Ь) Составляющим сгзндартным-всгупленисм всех текстов-программы является стандартнос-зоуплсннс, представление которою получается {10.1.3} из форм, данных в подразделах 10 2 и Ю З.

с) Составляющее библнотечное-вступлеине и настоящем! стандарте не задано ни для какого текста-программы {. ио должно быть задано для •каждой реализации; синтаксисом 'текст* программы’ гарантируется, что никакое описание, содержащееся в любом библиотечном-вступлении. не может противоречить никакому описанию, содержащемуся в стандартном-вступлении. указанном выше. }

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

е) Каждым составляющим собственным-встуляелием (-coGcnwiok’-.M-заключением) всех текстов-программ является оабспменновступл,’',1те

С. 118 I OCT 27974-48

(собственмо-заключение), представление которого получается из форм, данных в подразделе 10.S, с возможным добавлением других форм, не задаваемых в настоящем стандарте (, но которые задаются в каждой реализации}.

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

Представление ВНЕШНЕГО-вступления, системной-задачи или собст-венного-заключеиия получается за счет внесения изменений в каждую из форм в соответствующем разделе этой главы посредством следующих тагов:

Шат 1: Если данная форма F начинается с (символа-операции} он и за ним идет один из знаков Р, Q, R илн Е, то F заменяете* рядом новых форм - копий формы F, в которых этот (следующий за on J знак в каждой соответствующей новой форме заменяется (все другие вхождения этого знака в F заменяются) на:

Случай А: Знак есть Р:

■ —, + ,<<,*> илн /

(-, t,x ИЛИ /);

Случай В: Знак естьО

• < minusah, минпр. — :■>.

« plusab, ллюспр,♦ :. >t

< Himesab-, умпр, X :■>• := > или

<divab,nennp./: = >

(-:■,*:=, X : = или /:■*=);

Случай С: Знак есть К :

< С, It, мш >,<<.< =, 1е, нб >,

*1 =. СЧ» рв >, < А / “. пе, пр >.

■О, > *. gc. нм > илк < >, gt, бш >

(<,<,=, А > млн >);

Случай D: Знак есть Е:

• < =, eq. рв 3» или < А/ж. пе,нр>

( ■ или А;

Шаг 2: Если в некоторой форме, возможно полученной на предыдущем шаге, встречается знак *- , за которым идет какой-нибудь ИНДИКАТОР (указатель-поля} I» то это вхождение * удаляется, а каждый ИНДИКАТОР (указатель-поля), подобный (1.1.3.2.к) этому 1 н содержащийся в любой из форм, заменяется копией одного и того же ИНДИКАТОРА (указателя-поля), не встречающегося нигде в данной программе, после чего шан 2 предпринимается снова.

Шаг 3: Если данная форма F,. возможно измененная или полученная на предыдущих шагах, начинается с (символа-операции} ор, за которым идет разделенная символами-а-также-цепочка симнолов-АФФИКС, и эга цепочка заключена между < и >, то эта F заменяется рядом разных се „версий", причем каждая из них является копией формы F н в ней данная цепочка вместе с охватывающими ее знаками < илн > заменена одним и» входящих в нее символов-

120

ГОСТ 2 7974-83 С 119

АФФИКС £ .однако никакая реализация хе обязана обеспечивай более одной из таких версий 9.4.Ь)} .

Шаг 4: Если & данной форме, возможно- измененной или полученной на предыдущий шагах, встречается заключенная между 4 и > последовательность S символов и в S встречаются L ini. Д чел, L real, Д вещ, L compl, Л компл, L bits, Д бит. L bytes или Д слог, го S заменяется разделенной символами-а-тзкже цепочкой достаточного числа последовательностей, причем n-я из них является копией последовательности S и в ней каждой вхождение Д (Л, L, L, У, С) заменено повторенным и - I раз длин (длин, long, long, удл, укр): за этой цепочкой идут символ-а-также и другая разделенная еммволами-з-также цепочка достаточного числа последовательностей, причем пья из них является копией последовательности S и в ней каждое вхождение Д (Д, L, L, У. С) заменено повторенным ш раз кор (кор, short, short, укр. удл); после этого удаляются охватывающие S знаки < и >.

Шаг 5: Если н данной форме F, возможно измененной или полученной на предыдущих шагах, встречаются L int (Д цел, L real. Д вещ. L compl, Л компл, L bits, Д биг, L bytes, Д слог), то эта F заменяется последовательностью достаточного числа новых форм, причем n-я из них является копией формы Рив ней каждое вхождение Д (Д, L, L, У, С> заменено повторенным n - I раз длин (длин, long, long, удя, укр) а каждое вхождение длин Д (длин Д, long L, long L) заменено повторенным п раз длин (длин, king, long); за згой последовательностью идет другая последовательность достаточного числа новых форм; причем m-я из них является копией формы F и в ней каждое вхождение Д ( Д, L, L, К С) заменено повторенным m раз кор (кор, short, short, укр, удл),а каждое вхождение длин Д (длин Д, long L, long L) заменено повторенным пт - 1 раз кор (кор, short, short).

Шаг 6 Каждое вхождение F (ПЕРВ) в любую форму, возможно измененную или полученную на предыдущих шагах, заменяется некоторым представлением енмвола-буква-алеф (символа-первнчный) /9.4.а}

Шаг 7: Если в любой форме, возможно измененной или полученной на предыдущих шагах, встречается последовательность представлений, начинающаяся и оканчивающаяся знаками с, то эта последовательность. называемая „псевдопримечанием’’, заменяется некоторым представлением описателя или замкнутого-предтожения. неформально задаваемого данной последовательностью.

Шаг 8: Если в любой форме, возможно измененной или полученной на предыдущих шагах, встречается тек ст-процедуры, вызов которого включает действия с вещественными числами, то этот тексг-про» иедуры. можно заменить любым другим текст ом-процедуры, вызов коюрсмо имеет приблизительно тот же эффект ;/степень такого-

121

С.1» ГОСТ 2797 4-88

приближения оставлена в настоящем стандарте нс определенной (см. также 2.1.3.1.е)}- .

Шаг 9: В случае ВНЕШНЕГОвсгушкиия в его конце добавляется форма. состоящая из символа-про пуск, за которым идет символ-продолжать (пропуск;} .

Шаг 10: Если в любой форме, возможно измененной или полученной на предыдущих шагах, встречается последовательность

АЩР1ЙЛ2йР2Я...ЛпрРпйАп + 1 .

где А| - идентификаторы, a Pj - последовательно сти-эясмснгов-11ояс-иеннн, то эта последовательность заменяется на последовательность

Л ]А2..ЛпАп*1ЙА 1Р1А2Р2...АпРпАп«-|Й

Шаг 11: Если некоторая форма F, возможно измененная млн полученная на предыдущих шагах, представляет собой описание некоторого индикатора 1. представление которого содержит буквы русского алфавита, перечисленные в и. 2.1 приложения 2, го дополнительно вводится еще одна форма, получаемая из F заменой всех таких букв в первом вхождении индикатора । в F на соответствующие буквы латинского алфавита

{Термин „достаточнее чисто”, использованный выше в шагах 4 и 5. подразумевает, что никакая собсгвенно-ЛрОГрамма не может иметь другого смысла или не порождаться синтаксисом только из-за недостаточности этого числа /

Повсюду {в описаниях обмела/, где в нэображении-литеркого или изображен ни-строки встречаются представления 10 (\. 1),они должны интерпретироваться как представления элементов-строки {8 14 lb}, применяемые для указания [символов / ..на десять в степени” (некоторой аль -тернатинной формы „на десять в степени"< . если она есть}, „плюс и на”) на внешних носителях. { Ясно, что эти представления выбраны из-за их подобия представлениям символа-на-дссягь-в-степени (9.4 1 Ь) и символа-и-плюс-и-на (9.4.1.с), но на носителях.ДЛИ которых эти литеры недоступны, надо выбирать другие элементы-строки (и си м во л-бу х на-е-л ат с символом-буква-и-ла т очевидные кандидаты).}

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

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

(Описания данного стандартното-вотупления включают „запросы к об-становке”» поставляющие информацию о конкретных особенностях данной реализации (2-2.24), „стандартные виды", „стапортные обозначения операций и функции”, „операции синхронизации” н (данные в подразделе 10 3) .описания обмена”.)

10.2.1. Запросы к обеганинке

1) цел число длин цел = С 9 ПШИк ЧИслп добавочных удлинений целых чисел {2 1.3. I d) с:

цел ini lengths = чисто длин цел:

122

ГОСТ 2Т974-ввСЛ21

b) пел число кор цел ■ с 1 плюс число добавочных укорочений целых чисел {2.1.3.1.dj с;

цел int sho г ths = число кор цел;

с) Д цел Д макс цел ■ с наибольшее Д цел значение {2.2.2.b} с;

Д цел L гп|х int ■ Д макс цел;

d) цел число длин вещ = с 1 плюс число добавочных удлинений вещественных чисел {2.1.3.1 .dj с;

цел re&l lengths = число длин вещ;

е) цел число кор вещ = с 1 плюс число добавочных укорочений вещественных чисел {2.1.3.1.d } с;

цел read short Its = число кор вещ;

f) Д веш макс вещ • с набольшее Д вещ значение { 2.2.2.b} с;

Д вещ L max real = Д макс веш;

g) Д веш Д точность вещ = с наименьшее Д вещ значение, такое, что как Д 1 + Д точность вещ >Д 1, так и Д1 - Д точность веш <Д1 (2.2.2 b} с;

Д веш L small real • Д точность вещ;

h) цел число длин бит = с I плюс число- добавочных размеров {j } битовых с;

цел bit s lengths = число длин биг;

1) цел число кор бит = с I плюс число добавочных размеров {j} коротких битовых с:

цел bi ts sh or ths • числ о кор бит;

j> цел Д размер бит = с чисто элементов в Д биг; см. Д бит {10.2.2 gj ; эго число увеличивается (уменьшается вместе с „размером", т.е. с числом 'длин', (взятым с обратным знаком числом 'кор') , из которых составлено 'Д', до достижения определенного размера, а именно „числа добавочных размеров” (взятою с обратным знаком „числа добавочных размеров коротких"’) битовых, после чего оно остается постоянным с;

цел L bits width ■ Д размер бит;

к) цел число длин слог « с 1 плюс число добавочных размеров (т) слоговых с;

цел bytes lengths = чисто длин слог;

1) цел чисто кор слог = с! плюс число- добавочных размеров коротких (т) слоговых с;

цел bytes shorths = число кор слог;

т) цел Д размер слот = с число элементов в Д слог; см. Д слог {1 0.2.2 .h} ; эго число увеличивается (уменьшается) вместе с „размером*’, т.е. с числом длин' J взятым с обратным знаком числом 'кор'), из которых составлено 'Д, вплоть до достижения определенного размера, а именно „числа добавочных размеров" (взятого с обратным знаком ..числа добавочных размеров коротких") слоговых, после чего оно остается ПОСТОЯННЫМ с;

цел L bytes width =Д размер слог;

л) о-п < абс, abc > - (лит а) цел: с целочисленный эквивалент (2.1.3.1g j литеры а с;.

123

С. 122 ГОСТ 27974-88

о) ил < пред, терт > ■ (цел а) лит: с та литера 'х', если ока существует, для для которой абс х » а с;

р) цел макс лит = С наибольший целочисленный эквивалент (Z.I.3.1.gJ литеры с:

цел max abs char = макс лит;

q) лит заполнитель = с некоторая литера с;

лит null character = заполнитель;

г) лит да = с литера, используемая для представления 'истина' во время обмена (10.3.3.1.а,10.33.2.з } с;

лит flip = да;

s) пит нет = с литера, используемая для представления 'ложь во время обмена с;

лит flop = нет;

t) лит литера ошибки = с литера, используемая во время обмена для представления нелреобразуемых арифметических значений {10.3.2.1 .b, с, d, е, f }с;

лит crroichar «литера ошибки;

и) лит пробел ■•• i”; лит blank = пробел;

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

а) вид пуст = с фактический-описатель, специфицирую! ни й вид ’пустое значение’ с;

в ид void • пуст;

Ь) вид лог ■ с фактический-описатель, специфицирующий вид 'логическое' с;

&ид; bool = лог;

с) вид Д пел = с фактмчечжий-опнеатель, специфицирующий вид ‘Д цел' с; вид L in t = Д пел -с;

d) вид Д веш = с фактический описатель, специфицирующий вид ’Д веш' с; вид L real • Д вещ;

е) вил лит ’ с фактмческнй-описатель, специфицирующий ВИД ЛИЗерНое' с; вил char = лит;

f) вид Loompl = ст (Д вещ re. im);

вид Д компл = L cornpl;

g) вид Д бит = ст ((1 : Д размер бит] лог Л F); {см. 10.2.l.j } {Этот ука-затель-поля скрыт от пользователя для того, чтобы он не мог проникнуть внутрь данной структуры; в частности, он не может индексировать данное ноле.} вид L bits «Д бит;

h) вндДслог"ст ((1 : Л размер слог] лит ЛЯ); {см. 10.2.l.mj вид L bytes = Д слог;

i) вид строк = подв (1:0] лит;

вид string = строк;

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

10.2.3.0. Стандартные приоритеты.

324

ГОСТ 27 974-88 С. 123

а) прио миипр = I, m inusa b = 1, плюспр = 1, plusab = I, умпр ■ I, timesab ■ = I, делпр = 1, divab ■ 1, цедпр - 1. overab = 1. модпр = 1, modab = I, прип = I, plus 1о- 1, -:== 1,+-:== I, Х:»в I,*:»” 1./:» = 1,^:==!, %:==1,+Х:»»!.+•:■» 1,%Х:-- !.%•:== 1,+=:= 1, V = 2, мяк = 2, or » 2, А = 3, & = 3, и = 3, and = 3, = = 4. рв = 4, eq ■ 4, * ■ 4. / ■ ■ 4, нр = 4, пс = 4, <■5. мш- 5, lt-5,<« 5,< --5,нб-5,1е» 5, > = 5, > = = 5, им = 5. gc = 5, > = 5, бм = 5,gt =S.

- = 6, + = 6.

X =7,*= 7,7 = 7,+ « 7, % «7, цед = 7, over = 7, 4Х=7,** = 7,%Х«7, % • - 7, мод ■ 7, mod - 7, □ = 7, элем = 7, elem = 7, 1 =8, •• = 8,1 =8, вверх = 8, up = 8, вниз = 8, down = 8, лев = 8, shl = 8, прав = 8, shr = 8, нигр = 8, Iwb = 8, вегр = 8, upb = 8,1— = 8, Г = 8, 1 = 9, +Х =9, ♦• = 9, нм = 9, i = 9;

1O.2.3.J. Массивы и связанные с ними операции.

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

b) оп < нигр, Iwb, L. > = (цел п, массив я) цел: с нижняя граница в л-я граничной паре паспорта значения 'а', если эта граничная лара существует с;

с) оп < вегр, upb, L > = (цел л, массив в) цел : с верхняя граница к n-й граничной паре паспорта значения ’а', если эта граничная пара существует с; -

d) on < нигр, lwb,l_ > = (массив а) цеп: 11_ а;

е^ оп < вегр, upb, Г> = (массив а) цел : 11_а;

{ Термин .достаточный набор", использованный выше в (а), а также в 10.3.2.2.Ь и d, подразумевает, что никакая имевшаяся в виду собственно -программа не может не порождаться (никакая не имевшаяся в виду собственно-про грамма может порождаться) синтаксисом только за счет недостаточности видов в этом наборе.}

10.2.3.2. Операции над логическими операндами.

a) on <V, или, or > = (лог а, b) лог: (а I истина I Ь);

Ь) оп< А Л,и, and>= (лога.Ь) лог: (а |Ь|ложь);

с) оп <-\~, не, not > = (лога) лог: (а 1ложь1 истина);

d) оп<=, рв, eq>= (лог а, b) лог: (a. Ab) V (г® А ^Ь);

е) on < X, /=, нр, ле > =(лог а), b) лог: '■* (а = b);

0 оп < абс, abc > * (лог а) цел: (a I 1 I 0);

10.2.3.3. Операции над целыми операндами.

а) оп < <, мш, It > = (Д цел а, Ь) лог: с истина, если значение ’а' меньше [2.1-3.1 л) значения ’Ь', а иначе ложь с;

125

С. 124 ГОСТ 27974-88

b) on <^,< -.нб.к > -(Д цел а,Ь) лог: -• (Ь <а);

с) оп < =, рв, eq > = (Д цел а, Ь) лог: а < b Л b < а ;

d) on < ^. / ■, нр, ле > = (Д цел а. Ь) лог. “* ^а = Ь);

с) оп О,> ■ нм. ge > = (Д цел а, Ь) лог: b < а;

О оп < >, бш, gt > ■ (Д цел а» Ь) лог: Ь < а; .

g) оп - = (Д цел а. Ь) Д цел: с значением 'а' минус { 2.1.3.1.е} значение 'Ь* с:

h) оп - = (Д цел а) Д «ел: Д 0 - а;

i) ол + » (Д цел а, Ь) Д цел: а--Ь;

j} ол * « (Д цел а) Л цел: а:

к) оп < абс, lbs > = (Д цел а) Д цел: (а < Д О I - а I а);

1) он « X. * > - (Д цел а, Ь) Д пел:

начало Диел з:в ДО. 1 := абс Ь;

пока i > Л 1

ик s :■ s + a; i :■ i - Д 1 ки:

( Ь< Д 01- $1 s) коней’

т) оп < 4. %, цел, over > ■ (Д цел а, Ь) Д цел:

если b =* Д О

то Д цел q : = Д 0.,г := абс а;

пока (г :=г - абсЬ) >Д0цк q := q + Д1 кц;

(а <ДОАЬ>ДОУа>'ДОАЬ<Д01-ql q) все;

п) оп Ч-а- X,4-•. % X, %*, мод, mod > = (Д цел а, Ь) Д цел:

(Диел г = а - а + ЬХ Ь; г<0 I г*абс Ы г);

о) оп / - (Д цел а, Ь) Д вещ: (Д вещ (а) / Д вещ (Ь);

р) он 4 1. • •» вверх, up > = (Д цел а, цел Ъ) Д цел:

(Ь> 0 1Д цел р г=Д 1; до Ьцк р :=рХ а кц; р) ;

q) on <удл, leng > = (Д цел а) длин Д цел: с длинное Д цел значение, удлиненное из (2.1.3.1.-е) значения У с:.

г) он < укр. shorten > 3 (длин Д цел а) Д цел: с Д цел значение, если оно существует, которое .можно удлинить до (2.1.3.1*} значения’а* с;

s) оп <нчт, odd> = (Д цел а) лог: абс а + X Д 2 = Д 1;

I) оп 4 знак, sign > = (Д цел а) цел:

(а > Д 01 II :з<Д0 I - И О);

u) оп < 1, + X. + *, i. им >= (Д цел а, Ь) Д КОМЛЯ: (а. Ь);

10.2.3.4. Операция над вещественными операндами.

а) оп < <, мш. It > ■ (Д веш а, Ь) лог: с истина, если значение 'а' меньше (2.1.3.1 .е } значения ’Ь'. а иначе ложь с;

Ь) оп <<» < -. вб. 1с > = (Д вещ а. Ъ) лог: -* (Ь < а) ;

с) оп < ■, рв, eq > = (Д вещ а, Ь) лог: а < b л b < а;

d) оп< А / ",ир, ле > ■ (Д веща, Ь) лог: —»(а = Ь);

е) оп О, > =, им, go > я (Д вещ а, Ь) лог: b < а;

О оп О, бш, gt > = (Д вещ а, Ь) лог: b < а;

126

ГОСТ 27974-88 С.125

g) on - = (Д вещ а. Ь) Д веш:

с значение 'а' минус { 2.1.3.1.с} значение Ъ’ с;

h) оп — « (Д веш а) Д веш: Д 0 — а;

i) on + = (Д веща, Ь) Д вещ: а--Ъ;

j) оп + = (Д веш а) Д веш: а;

к) ол < эбс, abs > = (Д вещ а) Д вещ: (а <Д0 I —al а) ;

I) оп<Х,*>“ (Д веша^Ь) Д вещ: с значение 'а', умноженное на {2.1.3.1. е} значение 'Ьг с;

ш) оп /• (Д веш а. Ь) Д веш: с значение 'а', деленное на ^2.13.1 е} значение 'Ь' с;

п) ол < удл, ’eng > = (Л вещ а) длин Д вещ: с длинное Л вещ значение, удлиненное из {2.13.1.-е}- значения 'а'с;

о) оп < укр, shorten > ■ (длин Д вещ а) Д веш: с если

абс а < удл Д макс вещ, то Д вещ значение V такое, что для любого Д вещ значения 'w‘ абс (удл v - а) < абс (удл w - а) с;

р) оп < окр, round > = (Л вещ а) Ц цел: с Д цел значение, если оно существует. обобщаемое до (2.1.3.1л} некоторого Д веш значения, отличающегося ие более чем на одну вторую от значения 'а' с;

О оп < знак, sign > = (Д вещ а) цел:

(а> Д01 1 I : а<Д01- II 0);

г) оп < целя, entier, L > = (Д веш а) Д цел:

начало Д цел j : = ДО:

пока] <а шс j :-j + Д 1 Кц;

пока j > а цк j : - j - Д1 к и;

j

конец;

s) on <1,+ Х. + *. i, им> = (Д веш. а, Ь) Д компл: (а, Ь);

10 2-3.5. Операции над арифметическими операндами

a) on Р = (Л пет а, Д цел б) Д веш: а Р Д вещ СЬ);

b) on Р = (Д цел а. Д вещ Ь) Д вещ : Д вещ (а) Р Ь;

с) on R ■ (Д вещ а, Д цел Ь) лог: a R Л вещ (Ь) ;

d) on R ■ (Д цел а, Д вещ Ь) лог: Д веш (a) R Ь;

е) оп < 1,+ Х, + *,Ь> (Д вещ а,Д цел Ь) Д компл: (а.Ь);

f) on < 1, + X, + *.Ь 3» = (Д цел а, Д веш Ь) Д компл: (а, Ь) ;

g) on < Т, • •, вверх, up > « (Д вещ а. цел Ь) Д вещ:.

(Двешр : = Д 1; доабс Ьцк р := рХ акц;

(b>0 Ipl Д1/р));

10.2.3.6. Операции над литерными операндами.

а) опК=(лнта,Ь) лог: абс a R абс Ь; { 10.2.1.п}

Ь) оп + = (лиг а, Ь) строк: (а, Ь) ;

10.2.3.7. Операции над комплексными операндами.

1) опЧ вч, тс > ■ (Д комля а) Д веш.; гс из а;

Ь) оп < мч. im > = (Д компл а) Д вещ: im. из а;

с) on < абс, abs > = (Д компл а) Д вещ:

127

С 12 6 ГОСГ 27974-SB

Д корень (вч at 2 + мч a t 2);

d) on -С эрг. arg > = (Д компл а) Д вещ:

если Д вещ вч “ вч з. мч = мч а;

вч 4 ДОVmnA ДО

то если абс вч > абсмл

то Д аркганг (мч / вч) +■ Д пи / Д 2 X

(мч < ДО! злак вч - 11 1 — знак вч)

иначе — Д аркганг (вч/ мч) + Д т^Д 2 X знак мч

все все;

е) on < сопрж, oonj > = (Д компл а) Д компл: вч л 1 — мч а;

О ОП < =, ре, eq > ■ (Д комля а, Ь) лог:

вч а = в ч b Л мч а = мч Ь;. '

g) on < А/ =, нр ne > = (Д компл а. Ь), лог: “1 (а = Ь):

h) оп — ■ (Д компл а, Ь) Д компл:

(вч а - вч b) 1 (мч а —мм Ь);

i) оп - = (Д компл а) Д компл: - ич а 1 - мч а:

j) оп + = (Д компл а, Ь) Д компл:

(вч а + вч b) 1 (мч а + мч Ь);

k) оп + = (Д компл а) Д компл : а;

1) оп< X, •>= (Д компл а, Ь) Д компл:

(вч а X вч Ь) — мч а X мч b) 1 (вч а X мч Ъ + мч а X вч Ь); т) ол / “ (Д компл а, Ь) Д компл:

(Д вещ d = вч (b X сопрж Ь); Д компл n = а X сопрж Ь;

(вч n / d) 1 (мч п/ ф);

п) он < удп, leng > = (Д компл a} long Д компл: удл вч a i удл мч а;

о) он < укр, shorten > « (long Д компл а) Д компл: укр нч а 1 укр мча;

р) on Р = (Д компл а, Д цел Ь) Д компл; а Р Д компл (Ь);

q) он Р = (Д компл а., Д вещ Ь) Д компл: а Р Д компл (Ь);

г) on Р » (Д цел л, Д компл Ь) Д компл: Д компл (а) РЬ;

s) on Р ■ (Д вещ а, Д компл Ь) Д компл: Д компл (а) РЬ;

t) on < t, ♦ * , вверх, up > ■ (Д компл а, цел Ь) Д компл:

(Д компл р: = Д1; до абс b цк р :=р X а кц;

(b>Olpl Д1/ р));

u) on Е = (Д компл а, Д цел Ь) лог: а Е Д компл (Ъ);

v) on Е ■ (Д компл а, Д вещ Ь) лог: а Е Д компл (Ь) ;

w) on Е ■ (Д дел а, Д компл Ь) лог: b Е а;

х) on Е = (Д вещ а, Д компл Ь) лог: b Е а;

у) он ивч = (имя Д компл а) имя Д вещ: ге из а;

z) оп нмч = (имя Д компл а) имя Д вещ;: im из а:

128

ГОСТ 17974-88 С. 127

10.2.3.8. Битовые и связанные с ними операции а) оп < =. рв, eg > = (Д бит а, Ь) лог: начало лог с;

для i до Д размер бит

пока с := (ДР из a) (ij «(ДЕизЬ) (i] цк пропуск кц; с коней;

Ь) оп < А. / =, нр, пе > « (Д биг а, Ь) лог: -• (а = Ь);

с) on < V. ил и,ог > = (Л бит а. Ь) Д бит: начало Д бит с: для i до Д размер бит ЦК (Д F из с) (ij := (Д F из a) [ij V (Д F из b) [i] кц: с конец;

d) ои<А.&,и, and< = (Д биг а, Ь) Д бит: начало Д бит с;

для i до Д размер бит

ЦК (ДБ из с) [i] :- (ДЕиза) [1)А<ДРюЬ) [ij кц; с конец;

е) оп < <. <=, нб, 1е > = (Д бит а. Ь) лог: (а V Ь) = Ь; о оп о, > =, HM,ge >= (Д биг а, Ь) лог: b <а;

g) on < t, вверх, up, лев, shl > = (Д бит а, цел Ь) Д бит: если абс Ь < Д размер бит то Д бит с := а;

до абс Ь

цк если b > 0 то

для i от 2 до Д размер бит

цк (Д F из с) (i - 1) :" (Д F из с) (i) кц;

(Д F нз с) [Д размер бит} := ложь иначе

д ля i от Д размер бит шаг - 1 до- 2 ик (ДР из с) (ij :» (ДЕ из с) [i- I] кц;

(Д F нзе) (1] :■ ложь все кц;

с все;

h) on < I, вниз, down, прав, shr > = (Д бит х, цел п) Д бит : ж t — п;

i) on < абс. abs > = (Дбит а) Д цел: начала Д цел с : = Д 0;

для i до Д размер бит

ИКс:“Д2Хс+У абс (Д F из a) (ij кц;

5-1861

129

С.128 ГОСТ 27974-88

конец;

j) оп < бин, bin > = (Д пел а) Д бит: если а> ДО

то Д цел b := а; Д бит с’;

для i ©I Д размер бит шаг — I до 1

цк (ДРиас) [а] :«нчтЬ; Ь:'= Ь 4-Д 2 кц; с асе;

к) оп < элем, elem, □ > • (цел а, Д бит Ь) лог:

(ДРиэЬ) (а);

1) проц Д бит лак = (( ] лог а) Д бит: если цел п «Г а [с 1];

п С Л размер бит го Д биг с;

для i до Д размер бит

цк (ДР из с) [i] :=

(i< Д размер биг - п 1ложь1 а [с 1] [i - Д размер бит + п]) кц с все;

проц ([ j лог) Д бит L bits pack = Д биг пак;

т) оп <“•, —, не, not > = (Д б«т а) Д бит:

начало Д бит с;

для i до Д размер биг цк (Д F из с) [i] :=

-’ (ДР из а) (I] кц; с конец;

п) он < у лл, leng > = (Д бит а) длин Д бит: длин Д бит пак (а);

о) on < укр, shorten > = (длин Д бит а) Д бит; Д бит пак (( ] лог (а) [длим Д размер бит - Д размер бит + 1 :]);

10.2.3.9. Слоговые и связанные с ними операции.

a) on R ■ (Д слог а, Ь) лог: строк (a) R строк (Ь);

Ь) оп < элем, elem, □ > = (цел а, Д слог Ъ) лит: (Д F из b) fa];

с) проц Д слог пак = (строк а) Д слог:

если цел п =Га (с 1]:

п < Д размер слог

то Д слог с;

для i до Д размер слог

цк (ДР из с) (ij :=(i<n la [cl] Ji] (заполнитель) кц;

с все;

проц (строк) Д слог L bytes pack = Д слог пак;

d) оп < удя, leng > ■ (Д слот а) длин Л слог: длим Д слог пак (а);

130

ГОСТ 2797 4-88 С.129

• е) оп < укр, shorten > ■ (длин Д слог а) Д слог;

Д слог пак (строк (а) [: Д размер слог));

1 0-2.3-10 Строковые и связанные с ними операции.

. а) оп < <, мт. it > = (строк а, Ь) лог:

начало цел m "Г а [с 1), п =Г- b [с Ih мел с := 0;

ana i до (m < n I ml п)

пока (с : ■ абс а [с 1 ] [i] - абс b [с 1] [i])’O

дк пропуск кц;

(c = 0lm<nAn>0l с<О) конец;

b) ore < <, < =, иб, 1е > = (строк а, Ь) лог: -• (Ь < а);

с) on< =, рв, eq > = (строк а, Ь) лог: а < ЬД b < а;

d) ore < *, / =, нр, ne > = (строк а, Ь) лог: — (а = Ь) ;

е) оп О, > =, мм, ge > = (строк а, Ь) лог: b < а;

f) оп О, 6iu, gt>" (строк а.Ь) лог: b<а;

g) ore R = (строк а,лит Ь) лог: a R строк (Ь);

h) ore R = (лит а, строк Ь) лог: строк (a) R Ь;

i) оп + = ( строк а, Ь> строк:

(цел m = (ant 1 а =Г а [с 1 ]; U <0 I Olla),

П=(цсл lh=l b (с 1]; ibCOlOUb);

• [I : m + nJ лит с;

(m>0 lc [1 :m) :=а ( с 1));

(n > 0 I c (m + 1 : m ♦ n] : ■ b (c 1 ] ; c);

. j) on ♦ ■ (строк а, лит b) строк : a 4 строк (b);

k) on ♦ = (лит а, строк b) строк : строк (a) ♦ b;

I) on < X. • > = (строк а, цел b) строк:

(строк с; до b цк с := с • а кц; с);

m) on < X, * > = (цел а, строк Ь) строк : b х а;

. n) on < X, ♦ > ■ (лит а. цел Ь) строк : строк (а) X Ь;

о) оп< X. *>• (цел а, лит Ь)сцюк: ЬХ а;

{ Из операций, определенных в a, g и h, следует, что если абс "а” <абс _ "Ь”,то ”<””а”; ,*а”‘<"Ь”; ”аз” < "ab”; ”аа" <”ba”; ”ab” <“Ь” и "ab" < <”ba”. j

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

а) оп < ммнлр, minusab, — := > = (имя Д цел а, Д цел Ь)

имя Д цел: а := а — Ь;

Ь) оге< минпр, minusab, -:= >= (ими Д вещ а, ДвещЬ)

имя Д вещ: а :=а- Ь;

с) оп < минпр, minusab, -:» > = (имя Д компл а. Д компл Ь)

имя Д компл: а ,:■ а — Ь;

. d) оп < пл юспр, plusab, +:■ > = (имя Д цел а, Д цел Ь)

имя Д цел: а := а ♦ Ь:

♦) огкплюспр, plusab, t:=> = (имя Д вещ а, Д вещ Ь)

им«Д веш: а :«а. + Ь;

f) оп < ллюслр, plusab, +:= > « (имя Д компл а, Д компл Ь)

5*

131

с.130 ГОСТ 27974-М

.имя Д комол: л :■ л > Ь;

g) ол < умор, timesab. X :■.•:■> ■ (имя Д дед 1, Д цел Ь) имя Д цел : а :=а X Ь;

h) оп < умпр, timesab, X :=,*;=> = (имя Д вещ а, Д вещ Ь) имя Д вещ; з := а X Ь;

j) оп < умпр, l imesab. X :=.*:=> = (имя Д ко мил а, Д ко-мгел Ь) имя Д компл : а := а X Ь;

j) оп < цсдпр, overab, *:■, %■:= > = (имя Д цел в, Д цел Ь) имя Д цел :а:= а *Ь;

k) on С модпр, modab.-s- X :=, з-*:=, %Х :■, %• :■ >

3 (имя Д цел а, Д цел Ь) имя Д цел : а:3 а -5-Х Ь;

1) оп < делпр. divab, /:■ > ■ (имя Д вещ а, Д ветл Ь)

имя Д вещ :а:■ а / Ь;

т) ол < делпр. /:= > = (имя Д компл а, Д компл Ь)

имя Д компл,- а:3 а / Ь;

п) on Q = (имя Д веш а, Д цел Ь) имя Д вещ: a Q Д вещ (Ь);

о) on Q = (имя Д компл а, Д цел Ь) имя Д компл: a Q Д компл (Ь);

р) on Q = (имя Д компл а, Д веш Ь) имя Д компл: a Q Д компл (Ь);

q> оп < плюспр. plusabh +;а>«

(имя строк а, строк Ь) имя строк: а:=а + Ь;

г) оп < прип, plus to. + =: > 3

(строк а, имя строк b) имя строк: b:= а + b;

s) on < плюспр, plusab, ♦:= > =

(имя строк а, лит Ь) имя строк: а ♦:= строк (Ь);

t) оп С прип, pluslo, +=: > =

(лит 8. имя строк Ь) имя строк: строк (а) *■• Ь;

и) оп < умяр. t imesab, X:*, * := > 3

(имя строк а, цел Ь) имя строк: а:= а X Ь;

10-2.3.12. Стандартные математические константы н функции.

а) Д веш Д пи = с Д веш значение близкое к числу П;

Л вещ L pi =Д пн;

Ь) проц Д корень 3 (Д вещ х) Д вещ: с если х > Д 0, Д вещ значение, близкое к квадратному корню из 'х' с; про-ц (Д вещ) Д вещ L sqrt = Д корень,

с) проц Д эксл 3 (Д веш х) Д вещ: с Д веш. значение, если оно существует, близкое к экспоненте от 'х' с;

проц (Д веш) Д вещ L ехр ■ Д эксл;

d) проц Д лг = (Д вещ х) Д вещ: с Д вещ значение, если оно существует, близкое к натуральному логарифму от ’х' с;

проц (Д веш) Д вещ L In = Д лг;

е) проц Д кос = (Д вещ х) Д вещ: с Д веш значение, близкое к косинусу от 'х' с; а

про-ц (Д веш) Д веш L cos - Д кос;

f) проц Длрккос (Д вещх) Д веш: с если абс х< Д 1.

132

ГОСТ 27974-ад С. 1 Ji

Д веш значение, близкое к арккосинусу от 'х'.

Д 0< Дарккос (х) < Д пи с;

проц (Д вещ) Д вещ L arccos = Д арккос;

g) проц Д син = (Д вещ х) Д веш: с Л вещ значение, близкое к синусу от 'х' с;

проц (Д вещ) Д вещ L sin = Д син;

h) процДарксин = (Д вещ х) Д вещ; с если абс х<Д L

Д веш значение, близкое к арксинусу от 'х',

абс Д арксин (х) < Д пи f Д 2 с;

проц (Д вещ) Д вещ L arcsin ■ Д арксин;

1) проц Д танг = (Д вещ х) Д веш: с Д вещ значение, близкое к тангенсу от 'к' с;

проц (Д вещ) Д веш L tan ■ Д танг;

j) проц Д аркганг = (Д веш х) Д вещ: с Д веш значение, близкое к арктангенсу от V,

абс Д аркганг (х) < Д пи / Д 2 с;

проц (Д вещ) Д вещ L arctan =Д арктанг;

к) проц Д след псч = (имя Д цел а) Д вещ:

(з:= с следующее после 'а' псевдослучайное Д цел значение из некоторой однородно распределенной последовательности на отрезке [Д 0. Д микс цел] с:

с вещественное значение, соответствующее 'а' гео некоторому отображению целых значений [Д 0, Д макс цел] в вещественные ] Д 0, Д 1) {т.е. так, что 0 < х < 1} . такое, что порожденная при этом последовательность вещественных значений сохраняет свойства псевдослучай-носки и однородности распределения данной последовательности целых чисел с);

проц (имя Д цел) Д веш L next random ■ Д след псч;

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

Исполнение параллелвнопнпредложения Р {З.ЗД.с} в некотором окру* женин Е называется ..параллельным действием”. Исполнение составляющей основы этого Р в Е называется „процессом” этого параллельного действия.

Всякое исполнение А [в некотором окружении] одного из ЗАКРЫ-ТЫХ-лредкожсник, выделенных прагматами { 9.2.1b) прагм начало несовместимой части прагм и прагм -конец несовместимой части прагм в формах J0.2.4.d и 10.2.4.е, несовместимо / 2.14.2л} ни с каким исполнением В другого из этих ЗАКРЫТЫХ-предложений, если А и В - наследные действия /2.1.4.2.Ь} разных процессов одною и того же параллельного действия. а) вид сема = ст (имя цел F); вид sema = сема;

b) оп < уст. level> = (цел а) сема:

(сема s; F из s :■ глоб шел := a; s); с) оп < уст, level > = (сема а) цел : F из а; d) оп <вниз, down > * (сема эдсгер) пуст;

начало имя цел дейкстра " F из эдсгер;

133

С. 132 ГОСТ 27974-88

пока

прагм начало несовместимой части прагм

если дейкстра ? 1 го дейкстра -:= I; ложь

иначе

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

{2.i.4.3.f}

■с;

истина

все

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

конец;

е) ол < up, вверх > - (сема эдсгер) пуст: прагм начало несовместимой части прагм если имя цел дейкстра ■ F из эдсгер;

(дейкстра +:= 1) >1

с возобновляются [2.1.4.3 g } все процессы, приостановленные потому, что целое число, именуемое выдаваемым деикстра' именем, было меньше единицы с

все

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

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

{Стандартным-вступлекисм предусмотрено три способа „обмена” (т.с. ввода и вывода), а именно бесформатный обмен (10.3.3), форматный обмен (10-3.5) и двоичный обмен (10.3.6}.}

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

{„Книги, „каналы” и „файлы” моделируют устройства обмена физической машины, используемой в реализации.}

10.3.1.1. Книги и связки.

(аа) Вся информация в системе содержится в ряде ..книг". Книга (а) является структурой, содержащей поле, текст вида, специфицированного описателем гсодвтекст (Ь), именующее информацию в форме литер. Этот текст имеет переменное число страниц, каждая нз которых может содержать переменное число строчек с переменным числом литер в каждой строчке. Номер страницы, номер строчки и номер литеры определяют позицию в тексте. Книга включает также поле запоям, указывающее „логический конец" этой книги, т.е. позицию, до которой книга заполнена информацией,, строку обозначение, идентифицирующую данную книгу м, возможно, содержащею некоторую другую (служебную) информацию, например о ее владельце, а также поля запись и пользователи, позволяющие открывать

134

ГОСТ 27974-88 СЗ»

(10.3.1.4.d) данную книгу одной ременно для более чем одного файда толь-ко в том случае, ест запись в нес невозможна ни для одного из них.

ЪЬ) Доступ к книгам в системе осуществляется через цепочку связок. Эта цепочка доступных для открытия (10.3.l.4.d.d) книг именуется доступ* ные книги. Данная книга может именоваться более чем одной связкой в этой цепочке, таким образом создается возможность одновременного доступа к отдельной книге из более чем одного процесса (10.2.4). Однако каждым такой доступ возможен только дли чтения книги, так как только один процесс может иметь доступ к книге, чтобы писать в нее (аа) . Цепочка книг, которые были сняты (10.3.1.4.о), именуется снятые книги.

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

■dd) Книги могут создаваться (например, при вводе) или уничтожаться (например, после вывода) посредством задач (например, операционной-системой) из списка-смсгемных-задач (10.4.2); эти книги тогда добавляются к цепочке свамк или удаляются из нее}.

а) вид 4- книга ■

ст (подвтекст текст,

позиция заполз» 6логический конец книги А , строк обозначение ft для идентификации я . лог запись it истина, если эта книга открыта для записи # цел пользователи h сколько раз эта книга была открыта й ;

Ь) вид*- текст = имя 1 ] [ ) ( ) лит.

вид* подвтекст «ммяподз [ ) подв { J по-дв [ ) лит;

с) вид * позиция ■ ст (цел р, 1, с) ;

d) прио ^ вне ■ 5.

оп вне = (позиция а, Ь) лог:

если р из а < р из b го ложь

ннсс р из а > р из b то истина

инее 1 из а < 1 нз b го ложь

инее I из а > 1 кз b то ист ина

иначе снэа > сиз b все;

е) вид «- связка = ст (имя книга книга,

имя связка след 4 уютая й);

f) имя связка *• доступные книги = ним;

g) имя связка ^ снятые кииги :» нил;

h) сс ма * защита связен = (сема s; F из s := ПЕРВ цел := 1; s);

10.3.1.2. Каналы.

(аа) „Камал” соответствует одному или нескольким реальным устройствам (например, перфоратору или устройству построчной печати, или даже некоторой установке для ядерной физики, результаты работы которой со-

135

C.I34 ГОСТ 2 7974-88

бираются вычислительной машиной) или же системному архиву данных, поддерживаемому операционной системой. Канал ость структура, ноля которой являются процедурами, вырабатывающими истинностные значения, определяющие допустимые методы доступа к книгам, связанным (сфайлами) через данный канал. Поскольку эти методы доступа к книге могут зависеть как от книги, так и от канала (например, некоторая книга может быть устроена так, что се можно читать, но в нее нельзя записывать), большинство свойств этих методов доступа зависят и от канала, и от книги. Соответствующие свойства можно проверить с помощью запросов к о-Остановке, предусмотренных для файлов (10.3-l.3-ff). Для каналов предусмотрены два запроса к обстановке- Это:

• можно завести, вырабатывающий истина, если на данном канале можно „завести" (10.3.1.4.сс) другой файл;

стаял код, применяемый для получения .„кодирующей таблицы” (ЬЬ), которая используется по умолчанию для данного канала.

ЬЬ) „Кодирующая таблица” есть значение вида, специфицируемого описателем код, используемое для перекодирования литер из значений, хранимых во , .внутренней” форме в памяти машины, в значения, хранимые во „внешней” форме в некоторой книге, и обратно. Эта таблица является структурой, состоящей из вектора структур, каждая из которых содержит значение во внутренней форме и соответствующее ему внешнее значение. Дополнительные кодирующие таблицы могут предусматриваться реализациями в их библиотечных-вступлениях;.

сс) Предусмотрены три стандартных канала, свойства которых определены ниже (е. f, g). Дополнительные каналы могут предусматриваться реализацией в се библиотечном-вступленни. Поле номер канала предусмотрено для того, чтобы различать каналы, свойства которых в остальном совпадают. }

а) вид канал ■ ст (проц (имя книга) лог*- уст нач,

*- установка, * ввод,^ вывод,

*- двоичный, * сжатие, -^ переобозначение,

проц лог *- заведение, проц позиция *- макс позиция, проц (имя книга) код ^ сганд код, цел * номер канала);

вид channel = какал;

Ь) вид * код = ст ([ 1 : цел (пропуск) ] ст (лит внутр, вкешм) F) ;

с) проц можно завести = (канал кан) лог: заведение из кая; проц (канат) лог estab possible = можно завести;

d) проц станд код = (канат кан) проц (имя книга) код: сганд код из кан;

проц (канат) проц (имя книга) код stand conv= станд код;

е) канал станд канал ввода = с значение вида канал, поле которого, выбираемое по 'ввод', есть процедура, всегда вырабатывающая истина, а другие поля имеют какие-то подходящие значения с;

канал stand in channel = станд канал ввода;

1)6

ГОСТ 27974-88 Cl 35

0 канал стенд канал вывода = с значение вида канал, поле которого, выбираемое по 'вывод'.есть процедура» всегда вырабатывающая истина, а другие поля имеют какие-то подходящие значения с,

канал stand out channel = стана канал вывода;

g) канал стами канал обмена 3 с значение вида канал, поля которого, выбираемые по 'установка', 'уст нач', 'ввод', 'вывод'я 'двоичный', являются процедурами, всегда вырабатывающими истина, а другие поля имеют какие-то подходящие значения с;

какал stand, back channel = станд канал обмена;

103.U. Файлы.

/ аз) „Файлы” служат средством сообщения между ообегвенно-про-граммов к книгой, с которой этот файл был открыт на некотором канале. Файл есть структура, содержащая имя книги, с которой он был связан (103.1.4.Ы>) и отдельно имя текста этой книги. Файл содержа! также информацию, необходимую для работы процедур обмена с этой книгой, вклю-чающую его текущую позицию птоз- в данном тексте, его текущее „состояние'’ (bb), его текущий „формат” (10.3.4) и канал, на котором он был открыт.

ЬЬ) „Состояние" файла определяется пятью полями:

• для чтения, которое есть истина, если данный файл предназначен для ввода;

♦ для записи, которое есть истина, если данный файл предназначен для вывода;

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

* для двоили, которое есть истина, если данный файл предназначен для двоичного обмена;

♦ открыт, которое есть истина, если данный файл связан с какой-нибудь книгой.

сс) Файл включает некоторые „процедуры обработки события”, вызываемые» когда во время обмена возникают определенные условия. По умолчанию предусматривается, что после открытия файла эти процедуры обработки события вырабатывают ложь, когда они вызываются, но программист может предусмотреть и другие процедуры обработки события. Поскольку соответствующие поля файла не доступны прямо для пользователя, процедуры обработки события можно изменять с помощью ..процедур реакции” (1, т, п. о, р, q. г). Процедуры обработки события всегда задают в качестве параметра имя своего файла. Если исполнение процедуры обработки события прекращается, то вызвавшая ее процедура обмена не может действовать дальше; в противном случае, если она вырабатывает истина, предполагается, что данное условие было некоторым: образом исправлено, и, если возможно,обмен продолжается, ио» если она вырабатывает ложь, система продолжает работу, предпринимая действия по умолчанию. Процедуры реакции таковы:

• при конце лог файла. Соответствующая процедур обработки события

137

С136 ГОСТ 27974-86

вызывается, когда в ходе ввода ним в результате вызова установить достигается логический конец соответствующей книги (см. 10.3.1,6.dd).

Пример:

Программист хочет знать количество целых чисел на входной ленте. Файл лента ввода был открыт во внешнем блоке. Если он напишет

начало цел п := 0;

при конце ЛОГ файла (лента ввода,

(имя файл файд) лог: на f);

цк ввод (лента ввода, лок цел); п + :« I кц;

f : печ (п) конец,

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

начало цел п :=0: -файл вспомог := лета ввода;

при конце riot файла (вспомог.

• (имя файл файл) лог: на f);

цк ввод (вспомог, лог цел); n*.= I кц;

f: печ (п) конец.

• при конце физ файла. Соответствующая процедура обработки события вызывается, когда текущий номер страницы данного файла превышает число страниц в соответствующей книге, а обмен пытаются продолжить (см. 1(1.3 1.6 dd)

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

10.3.1.б.М).

• при конце строчки. Соответствующая процедура обработки события вызывается, когда текущий номер литеры данного файла превышает числю литер в текущей строчке, а обмен пытаются продолжить (см. 10-3-1-6.dd).

Пример:

Программист хочет, чтобы на начале каждой страницы его файла f автоматически печатался зат оловок:

при конце страницы (f, (имя файл файл) лог:

(вывод (файл, (нов страница, ”стр.", целое (i ♦:= 1,0 j.

нов строчка)) , истина)

^ предполагается, тго t было где-то описано fi).

при ошибке литеры. Соответствующая процедура обработки события вызывается, когда перекодирование некоторой литеры нс было успешным или когда в ходе ввода читается не ..ожидаемая” (103.4.1.11) литера. Эта процедура обработки события вызывается с именем литеры, предлагаемой в качестве замены. Процедура обработки события, задаваемая программн

ое

ГОСТ 27974 -88 С. 137

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

Пример:

Программист хочет читать суммы денег,, «^перфорированные в форме „5 123.45”,» rg 23.45",,, —. S 3.45"и т.д.: при ошибке литеры /станд ввод,

(имя файл f, имя лит пред) лог:

если пред = ”0”

то лит с; назад (f); ввод ( f, с);

(c“”S” I ввод (Г. пред) ; истина I ложь)

иначе ложь

все);

цел центы; ф чит ((ф 3z”. "ddф. цензы)),

• при ошибке значения. Соответствующая процедура обработки события вызывается» когда:

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

. выводятся значение при помощи процедуры вывод;

(И) в ходе ввода оказывается невозможным преобразовать строку в значение некоторого данного вида (это может случиться, например. при попытке прочитать целое число, большее, чем макс цел (10.2.1.С)).

- при конце формата. Соответствующая процедура обработки события вызывается, когда в ходе форматного обмена формат исчерпывается, в то время как еще остается некоторое значение, подлежащее обмену ЕСЛИ данная процедура вырабатывает истина, то в случае когда она не обеспечила нового формата для этого файла, вызывается не определено, а иначе повторяется текущий формат.

dd) Поле коа файла — это его текущая кодирующая таблица (10.3.1.2.ЬЬ). После открытия файла кодирующая таблица обеспечивается по умолчанию. Другие кодирующие таблицы могут применяться програм-мястом при помощи вызова процедуры задать код (j). Такие таблицы должны предусматриваться в бнблногечномветуштенин.

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

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

139

С. 1>8 ГОСТ 17974-88

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

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

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

• сжимаем, которая вырабатывает истина, если строчки и страницы будут сжимаемы (103.1.6.за) в ходе вывода; в этом случае соответствующая к ни га тоже называется „сжимаемой”;

• возм уст нач, которая вырабатывает истина, если для данного файла возможна установка на начало, т е его текущую позицию можно установить в (1,1.1);

• возм установка, которая вырабатывает истина, если данный файл можно установить, т.е. его текущей позиции можно придать заданное значение; соответствующая книга называется тогда книгой с произвольным доступом:”, а иначе — книгой с „последовательным доступом”;

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

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

gg) Если при книге с последовательным доступом двоичный и литерный обмен чередуются, то вызывается не определено (103.1.4.а), т.е. после открытия или установки на начало (10.3.1-б-j) возможен любой из этих обменов, но, если один из них имел место, другой может происходить только после очередной установки на начало.

hh) При книге с последовательным доступом вывод немедленно заставляет логический конец книги переместиться на текущую позицию (если они оба не находятся в одной и той же строчке); таким образом, за вводом не может следовать вывод без предшествующей установки на начало (10.3.1 6.j}.

Пример:,

начало файл fl, f2; [1 : 10 000] цел х; цел п :=0;

открыть (fl, ””, канал 2);

f2 :=fl;

ft теперь fl и f2 можно использовать, один вместо другого И

задать код (fl. код связи);

задать код (12, код телекса) ;

И теперь fl и f2 используют разные коды; код связи л код телекса определены библиотечным-вступлением данной реализации |1

уст нач (fl) ; И в результате на f2 тоже произойдет установка на качало й

140

ГОСТ 27974-88 С. 139

при конце лог файла (fl, (имя файл/) лог: на сделано); для i цк ввод (fl. X [i] ); п := i кц;

It плохо, если при вводе окажется больше 10 000 целых чисел ^

сделано:

уст нал (fl); для i до п цк вывод (f2. х (if) кц; закрыть (f2) ri fl гоже закроется й конец }

а) вид файл = ст (имя книга *• книга, об (подвтекст, текст) 5-текст, канал 5-кан, имя форма! 5-формат, имя цел ук йаэатсль йфор я мага ji.

имя лог 5-аля чтения.’’-дня записи, 5-для литер.*- для двоичн, ^открыт,

имя позиция * т й вкушая # поз # июня Н.

строк 5- стопе Строка (А,

код * код # и руинная таблица для литер П,

проц (имя файл) лог *испр й азлен й лаг файл, ^мспр физ файл, *испр й явлена й страница, *испр строчка, *испр формат, *испр и авлена р ошибка значения, проц (имя файл, имя лит) лог *мспр в зелена pi ошибка литеры);

вид file а файл;

Ь) процвозм йожен йввод = (имя файл f) лог:

(открыт из f I (ввод из кан из f) (книга из f) I не определено; пропуск);

проц (имя файл) лог get possible = аозм ввод;

с) проц возм вывод = (имя файл f) лог:

(открыть из f I (вывод нз кан из £) (книга из Г) I не определено; пропуск);

проц (имя файл) пог put possible ° возм вывод;

d) проц возм двоичн рый обмен#» (имя файл f) лог: (открыт из f I (двоичный из кан из f) (книга из f) I не определено; пропуск) ;

проц (имя файл) лог bin possible = возм двоичн;

е) проц сжимаем = (имя файл f) лог:

(открыт из f I (сжатие из кан из 0 (книга из f) I не определено^ пропуск);

проц (имя файл) лог compressible: - сжимаем;

0 проц возм уст нач = (имя файл f) лог:

(открыт из f I (уст нач из кан из 0 (книга нз 0 I не определено; пропуск);

проц (имя файл) лог reset possible “ возм уст нач;

g) проц возм установка = (имя файл 0 лог:

(■открыт из f I (установка нз кан из 0 (книга нз 0 I не определено; пропуск);

141

С. 140 ГОСТ 27974-88

проц (имя файл) лог set possible = во эм установка:

h) прок возм переобозначение = (имя файл f) лог:

(открьп из f I (переобозначение иэ кан из 0

(книга из f) I не определено; пропуск);

проц (имя файл) лог reidf possible ■ возм переобозначение;

а) проц канал • (имя файл Г) канал:

(открыт из f I кан иэ f I не определено; пропуск);

проц (имя файл) канал chan = канал;

j) проц задать кол = (имя файл f, проц (имя книга) коде)

пуст: (открыт иэ f I код из f :=с (книга из 0 I не определено);

проц (имя файл, проц (имя книга) код) пуст

make conv ■ задать код;

к) проц задать стоп ст рок у = (имя файл f, строк t) пуст:

стопе из f :« t;

проц (имя файд,строк) пуст

make term ■ задать стопсгроку;

/ ) проц при конце лог файла = (имя файл f,

проц ( имя файл ) лог р) пуст: недр лог файл из f := р;

проц (имя файл, проц (имя файл) лог) пуст

on Logical file end = при конце лог файла;

:п) проц при конце физ файла ■ (имя файл Г,

проц (имя файл) лог р) пуст: испр фкз файл из f := р;

проц (имя файл, проц (имя файл) лог) пуст

on physical file end = при конце физ файла;

п) ирон при конце страницы = (имя файл f,

проц (имя файл ) лог р) пуст: ислр страница иэ f := р;

проц (имя файл, проц (имя файл) лог) пуст

on page end = при конце страницы;

о) проц при конце строчки = (имя файл Г,

проц (имя файл)’ лог р) пуст: испр строчка из f := р;

проц (имя файл, проц (имя файл) лог) пуст

on line end ■ при конце строчки;

р) проц при конце формата ■ (имя файл f,

проц (имя файл) лог р) пуст: ислр формат иэ f := р;

про-ц (имя файл, проц (имя файл) лог) пуст on format end = при конце формата;

q) проц при ошибке значения • (имя файл f,

проц (имя файл) лог р) пуст:

испр ошибка значения из f :■ р;

проц (имя файл, проц (имя файл лог) пуст on value error = при ошибке значения;

г) проц при ошибке литеры = (имя файл f,

проц (имя файл, имя лит) лог р) пуст: ислр ошибка литеры из f :• р;

142

ГОСТ 279M-B8C.U1

проц (имя файл, проц (имя файл. имя лит} лог) пуст

on char error ■ при ошибке литеры;

s) проц переобозначение =‘(имя файл f. строк обозн) пуст:

если открыт из f а возм переобозначение (f) Л приемлемо обозн (обозн)

то обозначение из книга из 1 := обозн все;

Проц (имя файл, строк) пуст reidf ■ переобозначение;

10.3.1.4. Открытие и закрытие файлов.

(за) Когда в ходе обмена происходит что-то. оставленное неопределенным, например, явно вызывается не определено (а), это вовсе не значит, что исполнение катастрофически и немедленно прерывается (21.4.3.hl. а лишь что предпринимаются какие-то осмысленные действия, которые не описы ваются или их нельзя описать одним данным стандартом, то есть они зависят от реализации.

ЬЬ) Книга ..связывается” с файлом при помощи процедур завести (Ь). создать (с) и открыть -(d). Эта связь может прекратиться с помощью процедур закрыть (п).снять (о) истереть <р).

ос) Когда файл ..заводится” на каком-то канале, создается <5.2.3) книга с текстом запанного размера, с заданной идентифицирующей строкой, с полем запись, установленным в истина, к с логическим концом книги в (1,1,1). Некоторые реализации могут требовать (g), чтобы образующие идентифицирующую строку литеры были взяты из ограниченного множества н чтобы 31 а строка была ограниченной длины. Может также потребоваться, чтобы никакие две книги нс имели одинаковые идентифицирующие строки. Если заведение завершается успешно, то вырабатывается значение 0, а иначе вырабатывается ненулевое целое число (его- значение может указывать, почему файл не был успешно заведен).

Когда файл „создается” на канале, заводится какой-то файл с книгой, размер текста которой принят по умолчанию для этого канала, а идентифицирующая строка не -определена.

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

ее) Процедуру соединить можно использовать, чтобы соединить с файлом значение вила, специфицируемого одним из описателей имя [ | .тит.

143

С. 1*2 ПОСТ 279 74 -88

имя [ J [ ) лит или нмн { ]( ][ ] лиг, таким образом, подобные переменные можно использовать в качестве книги некоторого файла.

ff) Когда файд .закрывается”, его книга присоединяется к цепочке связок, именуемой доступные книги. Затем активизируется некоторая си-огемная-задача при помощи вверх гномы. (Она може-т реорганизовать эту цепочку связок, удалить данную книгу или добавить ее другие копии. Она может также вызвать выдачу этой книги на внешнее устройство) -

gg) Когда файл „снимается", его книга присоединяется к цепочке связок. именуемой снятые книги- Затем активизируется некоторая системная-задача при помощи вверх гномы. Снятую книгу нельзя снова открыта, до тех пор, пока какая-нибудь последующая системная-задача не переместит эту книгу в цепочку связок, доступных для открытия.

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

а) проц *не определено = цел: с какое-либо осмысленное

действие системы, выдающее целое число, чтобы указать, ЧТО было сделано; предполагается, что это действие системы может зависеть от знания любого значения, к которому есть доступ f2.1.2.c} через участок любого окружения, старшего, чем то окружение, в котором исполняется данное п-севдолримечакие {, несмотря на то» что . нельзя написать никакого конструкта Алгола 68, который может иметь доступ к этим значениям/ с;

Ь) проц завести =

(имя файл файл, строк обозн. канал кан, цел р. I, с) цел: начало

вниз защита связей;

ПЕРВ книга книга 1*

(ПЕРВлодв (1 : р) поди (] : 1J тю-дв (1 : с) лит,

(1,1,1) .Обоэм, истина, 1);

если файд доступен (кан) Л

(вывод из кан) (книга) А

заведение из кан Л -•

(позиция (р, I, с) вне макс позиция из кан>

Л~»(поэицмя (1,1,1) вне позиция (р. 1,с)> Л

обозн приемлемо (обозн)

то

(открыт из файл I

вверх гномы I вверх защита связе й) ;

файл :=

(книга, текст из книга, кан, пропуск, пропуск, й состояние: йглоблог :"ложь, глеб лонг :• истина, глоб лог :“ ложь, глоблог :“ ложь, глоблог :■ истина, гпоб позиция :« (1,1,1),” ”, (станд код из кан) (книга),

144

ГОСТ 2797 4-88 С.14Э

А процедуры обработки события: й ложь, ложь, ложь, ;южь. ложь. ложь.

(имя файл f, имя лит а) лог: ложь);

(-. возм двои-чн (файл) I настроить на литерное (файл )) ;

О

иначе вверх защита связей; не определено все

конец:

проц (имя файл, строк, канал, цеп, цел, цел) цел establish ■ завести;

с) проц создатК = (имя файл,файл, канал кан) цел:

начало позиция макс позиция ■ макс позиция из кан: завести (файл, пропуск, кан. р из макс позиция,

1 из макс позиция, с из макс позиция) конец;

проц (имя файл, канал) цел create = создать;

d) проц огк рыть ■ (имя файл файл.

строк обозн. канал кан) цел:

начало

вниз защита связей:

если файл доступен (кан)

то икот имени связка св := доступные книги:

лог есть :«ложь;

пока (имя связка (св) :*: нил) Л -.есть цк

если соответствует (обозн,. кан, книга из св)

то есть := истина

иначе св := след из св

все

кц:

если -.есть

то вверх зашита связей: не определено

иначе имя книга книга :• книга из св:

если запись иэ книга V(вывод из кан) (книга) Л пользователи иэ книга > О

то

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

иначе

пользователи из книга г:» 1;

(( вывод мз кан) (книга) I

145

с. 144 ГОСТ 27974—38

запись из книга : = истина);

имя имени связка (св) := след из св;

ri удалить связку из цепочки доступных И

(открыт из файл I

вверх гномы I вверх зашита связей};

файл :=

(книга, текст из книга, кан, пропуск, пропуск, И состояние: й глоб лог : ■ ложь, гл об лог := ложь, гл об лог :■ ложь, гл об лог : = ложь, гл об лог: ■ истина. •

глеб позиция :« (1,1,1), ” ", (стаял код из кан) (книга), И процедуры обработки события: й ЛОЖЬ, ложь, ложь, ложь, ЛО жь. ложь, (имя файл f, имя лит а) лог: ложь);

(-. возм двоичн (файл) I

настроить m ЛИМрНОе (файл) );

(-•возм ввод (файл) Г настроить на запись (файл));

(-•возм вывод (файл) I настроить на чтение (файл) );

О

все

все

иначе вверх защита связей; не определено все

конец;

проц, (имя файл, строк, кан) цел open = открыть;

е) проц соединить »

( (имя файл файл,имя [ И ] ( 1 лиг том) пуст: если цел р • ингр том; цел 1 - нигр том [р]; цел с " лигр том [р] [)J;p*lAl = tAc=l то

проц и = (имя книга а) лог: истина;

проц л = (имя книга а) лог: ложь;

канал кан я (и. и, и, м.л. л.л.лог: ложь, позиция: (макс цел, макс дел, макс цел), пропуск, пропуск);

(открыт из файл I

вниз защита связей; вверх гномы);

файл ;=

(гпоб книга := (пропуск, (всгртом+ 1,1,1 ), пропуск, истина, 1). том. кан, пропуск, пропуск» Й состояние: й глоб лог :м ложь, глоб лог :» ложь, глоблог := истина, глоб лог := ложь, гло б лог :■ истина,

6

ГОСТ 27974-88 С. 145

гл об позиция := (I,!,!)-, *”', пропуск, ;i процедуры обработки события: й ложь, ложь, ложь, ложь-,ложь, ложь, (имя файл f, ИМЯ ЛИТ й) лог: ложь)

иначе не определено все;

про-ц (имя файл,

имя (](]() лит) пуст associate = соединить;

f) проц ^факл доступен = (канал кан) лог: с истина, если в данный момент

ла 'канале можно открыть

некоторый другой файл, а иначе ложь с;

g) проц ^обозн приемлемо = (строк обозн) лог: с истина, если 'обозначение премлемо для данной реализации в качестве обозначения, идентифицирующего новую книгу, а иначе ложь с;

h) проц ^соответствует •

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

ь) проц •••ложь ■ (имя файл файл) лог: ложь

с включена для сокращения текста процедур завести', 'открыть1 и 'соединить'с;

j) проц «-настроить на запись = (имя файл f) пуст: если ч возм вывод, (f) V

--.возмустановка (0 Л для двончн из f Л для чтения из f

то не определено

иначе имя лог (для. чтения из 0 := ложь; имя лог (для записи из £) := истина

• все;

к) проц •-настроить на чтение = (имя файл 0 пуст:

если -, возм ввод (0 V

-л роэм установка (Г) Л

для дооичм из f Л для записи из f

то не определено

иначе имя лог (для чтения из 0 := истина;

имя лог (для задней из 0 :“ ложь все;

1) проц «-настроить на литерное • (имя файл 0 пуст:

■если -»возм установка (0 Л для двончн нз f

то не определено

иначе имя лог (для литер из 0 := истина;

147

С. 146 ГОСТ 27974-88

имя лог (дня двоичм из 0 :■ ложь все;

ш) проц ^настроить на двоичное = (имя файл 0 пуст;

селя -»возм даоичи (0 V-»

возм установка (0 Л дня литер из f

то не определено

иначе имя лог (для литер из f) : = ложь;

имя лаг (для дваичн нз 0 := истина асе;

п) проц закрыть = (имя файл файл) пуст: если открыт из файл

то

вниз зашита связей;

имя лог (открыт из файл) :=ложь;

имя книга книга = книга из файл;

запись из книга ;= ложь;

пользователи из книга —:= 1;

(текст из файл I (подвтекст): доступные книги: ПЕРВсвязка •= (книга, доступные книги));

в верх гномы

все;

проц (имя файл) пуст close ■ закрыть;

о) проц снять 3 (имя файл файл) пуст:

если открыт из файл то

вниз защита связей;

имя лог (открыт из файл) :=ложь;

имя книга книга = книга из файл;

запись из книга := ложь;

пользователи- из книга —:■ 1;

(текст из файл I (подвтекст): снятые книги := ПЕРВ связка := (книга.снятые книги));

вверх гномы

все;

проц (имя файл) пуст lock = снять;

р) проц стереть = (имя файл файл) пуст:

если открыт из файл то

вниз защита связен;

имя лог (отк рыт из файл) := ложь;

запись из книга из файл :■ ложь;

пользователи из книга из файл -;= 1;

вверх гномы все;

проц (имя файл) пуст scratch * стереть;

143

ГОСТ 27974-88 С.147

10.3.1.5. Запросы позиции.

(аа) „Текущей позицией” книги, открытой с данным файлом:является значение, именуете полем тпоз этого файла. Она продвигается каждой операцией обмена в соответствии с числом записанных или прочитанных литер.

Если с - номер текущей литеры и 1b - длина текущей строчки, то всегда 1 < с С lb + 1. Из с « 1 вытекает, что следующая операция обмена будет применена к первой литере згой строчки, а из с = lb * 1 вытекает, что данная строчка переполнена и следующая операция обмена будет вызывать какую-то процедуру обработки события. Если 1Ь = 0, то данная строчка пуста н. значит, всегда переполнена. Соответствующие оговорки относятся и к номерам текущих строчки и страницы. Если данная страница переполнена, то текущая строчка пуста, а если переполнена данная книга, то пусты н текущая станина, и текущая строчка (е).

bb) Пользователь может определить текущую позицию при помощи процедур номер литеры, номер строчки и номер страницы (а. Ь, с).

ос) Если в текущей ПозиЦИм |МрспЬлНЗДа строчка. Страница или книга, то говорят, что она находится за пределами „физического файла” (f. .g, h).

dd) Если при чтении текущая позиция находится на логическом конце (книги), то говорят, что она находится за пределами .логическогофайла” (i)-)

1 Каждая процедура в этом разделе вызывает не определено, если при входе в нее не открыт соответствующий: файл .) а) проц номер литеры ■= (имя файл Г) цел:

(открыт нз f I с из тпоз из f I не определено);

проц (имя файл) цел char number = номер литеры:

Ь) проц номер строчки = (имя файл f) цел:

(открыт иэ f I 1 из тпоз из f I не определено-);

проц (имя файл) цел line number = номер строчки;

С) проц номер страницы = (имя файл Г) цел:

(открыт из f I риз тпоз из f I не определено);

проц (имя файл) цел page number = номер страницы;

d) проц ^текущая позиция = (имя файл Г) позиция:

(открыт из f I тпоз из f I не определено; пропуск);

е) прои ^-границы книги = (имя файл f) позиция:

начато позиции тпоз = текущая позиция (f);

цел р в р нз тпоз, 1 = 1 из тпоз;

выб текст из f в

(текст tl):

(цел pb = вегр tl;

цел lb = (p<0V p>pb I 01 вегр tl (pj):

цел cb« (1<OVI> lb 101 вегрН [pl [1]);

(pb, lb, cb)),.

(подвтексг t2):

(цел pb • вегр t2;

149

С.1-48 ГОСТ 27974-88

цел lb = (р < О V р > pb 101 serp t2 (р J );

целсЬ= (i<0VI>Ib 101 uerpt2 (р] (lj);

(pb, lb, cb))

быв конец;

0 проц 9-строчка окончена = (имя файл 0 лог: (цел с = с из текущая позиция (0 ;

с > с из границы книги (О);

g) прол 9-страница окончена = (имя файл f) лог:

(цел I ■ I из текущая позиция (0 ;

1 > 1 из границы книги (f) );

h) проц 9-физ файл окончен ■ (имя файл 0 лог:

(цел р ■ р из текущая позиция (0;

• р > р из границы книги (0 );

i) проц 9-лог файл окончен = (имя файл 0 лог:

—» (запали из книга из f вне текущая позиция (0);

16.3.1.6. Процедуры расположения.

{ аа) В книге, введенной с внешнегонаонтелянекоторой системной -задачей, строчки и страницы могут быть разной длины. С другой стороны, все строчки и страницы заведенной (10.3.1.4.сс) книги первоначально имеют размер, указанный пользователем. Однако если в ходе вывода в сжимаемую книгу (10.3-1.3.Г0 вызывается нов строчка (нов страница) с текущей позицией в гой же строчке (странице), что и логический конец этой книги, то данная строчка (страница, содержащая эту строчку.) сокращается до номера литеры (номера строчки) этого логического конца. Таким образом, печ (("абиг”, нов строчка)) может вызвать уменьшение текущей строчки до длины в 5 литер. Отметим, что- то же вполне осмысленно и для строчки, не содержащей литер, и для страницы, не содержащей строчек.

Хотя действия канала, на кото-ром книги как сжимаемы, так и позволяют произвольный доступ (lO3.13.f0 корректно Определены, предполагают. что в фактических реализациях такая комбинация вряд ли встретится.

ЬЬ) Процедуры вперед (а), нов строчка (с) и нов страница (d) служат продвижению текущей позиции к следующей литере, строчке и странице соответственно. Однако они не изменяют (за исключением того, -что предусмотрено в сс ниже) содержания пропускаемых позиций. Поэтому печ (("а”, назад, вперед)) и печ ((”а”, назад, пробел}) дают разные результаты.

Текущую позицию можно также изменить вызовами назад (Ь), уст номер литеры (к) и на соответствующих, каналах вызовами установить (i) и уст кач (j).

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

ГОСТ 27974 -S3 С. 149

(аналогичное происходит в случае вызова нов строчка и нов страница, если данная книга несжимаема).

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

dd) Операция чтения или записи или вызов вперед, нов строчка, нов. страница, установить' или уст номер литеры могут вывести текущую позицию за пределы физического или логического файла (10.3.1-5.ee, dd), но это не вызывает вемедленных последствий. Однако перед любой дальнейшей попыткой обмена или следующим вызовом вперед, нов стречка ила нов страница (но не установить или уст номер литеры) текущая позиция должна сделаться „хорошей”. Файд будет „хорошим”, если его текущая позиция не находится при записи (чтении) вне физического (логического) файла (10.5.1.1.се, dd). Страница (строчка) будет „хорошей”, если не переполнен номер строчки (номер литеры). Следовательно, в нужных случаях вызывается процедура обработки события (10.3.1.3.сс), соответствующая при конце лог файла, при конце физ файла, при конце страницы или при копие строчки. Действе по у молчанию, за исключением форматного обмена (использующего проверить позицию, 103.3.2.с). состоит в том. чтобы вызвать, если процедура обработки ситуации вырабатывает ложь, соответ евенно нс определено, не определено, нов страница или нов строчка. После этого (или соли вырабатывается истина) .если позиция остается не хорошей, снова вызывается процедура обработки события (нс обязательно га же самая).

се) Состояние факта (Ю.ЗЛЗ.ЬЬ) управляет некоторыми действиями процедур расположения. Если настройка на запись,-чтение дает чтение, то действие вперед, поз строчка и нов страница при попытке пересечь логический конец состоит в вызове процедуры обработки отбытия, соответствующей при конце лот файла, вместе с вызовом ио умолчанию не определено: если же она дает запись, го результатом будет вывод пробелов (при настройке на двоичное запись неопределенной литеры) либо сжатие текущей строчки иди ctришты (см. се). Если при входе в процедуру расположения настройка на запись/чтение не определена, го вызывается не определено. Ио выходе восстанавливается та настройка на запись,1'чтение, которая была при входе.}

а) герои вперед = (имя файл Г) пуст:

если -1 открыт из f то нс определено иначе

лог чтение =

(для чтения из f I истина I : для записи из f I ложь

131

С. 150 ГОСТ 2 7974 -88

I не определено; пропуск);

(-.строчка хороша (f, чтение) I не определено); имя позиция тпоз = тпоз из f; если чтение то с из тпоз +■:= 1 иначе если лог файл окончен (f) то если для двоичн из f то

(текст из f 1 (подвтекст 12) :

12 |р из тпоз] [1 из тпоз] [с из тпоз] :“ пропуск);

с нз тпоз +:= 1; заполн из книга из f :■ тпоз иначе вывести литеру (f, ’•—”) BsCC

иначе с из тпоз +:= 1

» все

все

все;

проц (имя файл) пуст space ■ вперед;

Ь) проц назад = (имя файл £) пуст;

если -. отк рыт КЗ f то не определено иначе имя цел с = с из тпоз кз f;

(с> 1 I с - := 1 I не определено)

все;

проц (имя файл) пуст back space ■ назад;

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

лог чтение =

(для чтения из f I истина! : для записи из f I ложь I не определено; пропуск);

(-,страница хороша (f, чтение) I нс определено);

имя позиция тпоз ■ тпоз кз f, запоя н = заполн из книга из f;

если р из тпоз = р из заполн л 1 из тпоз =1 из заполн то с из тпоз :■ с из заполн;

если чтение то нов строчка (f) иначе

если сжимаем (f)

то имя цел р! = р из заполн, И = 1 нз заполн; подвтекст текст = (текст из f I (поди текст 12) : 12) ;

текст [pl] (U] := текст [pl] [U] [: с нз заполн -1]

МНйЧе Пока -г. строчка окончена (f) цк вперед (0 кц все;

152

ГОСТ 27974-48 С. 151

' тпоз :■ запоям :■ (риз тпоз, 1 из тпоз + 1,1) все

яна* тпоз 1“ (риз тпоз, 1 из тпоз *1.1) все

вес;

проц (имя файл) пуст new 1ше = ков строчка;

d) проц нов страница » (имя файл f) пуст:

если -, открыт из f то не определено ►

иначе

лог чтение =

(для чтения из f I истина I :для записи из f I ложь

I не определено; пропуск);

(-^страница хороша (f,чтение) I не определено);

имя позиция тпоз = тпозиз f,

ппоз = заполк из книга из f;

если р из тпоз = р из ппоз

то тпоз :=ппоз;

если чтение то ков страница (f)

иначе

если сжимаем (0 Л

1 из ппоз < 1 из границы книги (f)

то имя цел pl = р из ппоз, II = I из ппоз;

подвтексг текст = (текст нз f I

(подвтексг 12) : t2) ;

текст (plj (11] :» текст [pl] (П)

(: с из ппоз — 1 ];

текст (pi] := текст (pl]

(: (с из ппоз > I I 11 I 11 - 1>]

иначе пока-п страница окончена (0

цк нов строчка (f) кц

все;

тпоз :=ппоЗ :“ (риз тпоз ♦ 1,1,1) все

иначе тпоз ■* (р из тпоз + 1,1,1)

все

все;

проц имя файл пуст newpage ■ нов страница;

£ Каждая нз трех следующих процедур либо вырабатывает истина и тогда соответствующая строчка, страница илн файл хороши (dd), либо вырабатывает ложь и тогда текущая позиция может оказаться за пределами логического файла кин можвт переполниться номер страницы, либо же она циклится до- тех лор, пока не устранится соответствующая причина, либо такая процедура прекращается в результате какого-то перехода. При выходе из такой процедуры настройка на запись/чтение определяется ее параметром чтение.]

153

C.I52 ГОСТ 27974-88

е) проц 5-строчка хороша * (имя файл f, лог чтение) лог: начало лог ле оконч;

пока неокоич :■ страница хороша (f, чтение);

строчка окончена (ОЛнеокоич

цк (и (испр строчка из 0 (0 I настроить (0 чтение); нов строчка (f)) кц;

не оконч *

конец;

О проб ^страница хороша ■ (имя файл f, лог чтение) лог: начала лог не оконч;

пока не оконч := файл хорош (f, чтение); страница окончена (f) Л не оконч

цк (~j (испр страница из 0 (1) I настроить (f. чтение); нов страница (Г)) кц;

не оконч конец;

g) проц “-файл хорош ■ (имя файл f,лог ’пение) лог: начало лог не оконч := истина;

пока настроить (f, чтение);

не оконч Л

(чтение I лот файл окончен! физ файл окончен) (0 ЦК не оконч := (чтение I натр лог файл из f I нспр физ файл из f) (f) кц;

нс оконч конец;

h> проц ^настроить = (имя файл f. лог чтение) пусг: (чтение I настроить на чтение (0 1 настроить на запись (0);

i) проц установить = (имя файл f, цел р. I, с) пуст: если “| открыт из f V

И .возм установка (0 то не определено иначе лот чтение = (для чтения из f I истина

I : для записи из f I ложь! ле определено: пропуск) ; имя позиция тпоз = тпоз из f, плоэ = запоя н из книга из f;

позиция раб тпоз ■ тпоз;

если (тпоз :■ (р. 1, с)) вне лгсоз если тпоз :■ плоз;

(И (испрлог файл: из 0 (0 I не определено); настроить (f. чтение)

инее позиция границы = границы книги (0;

р < 1V р > р из границы * 1 V

1 < 1VI > 1 из границы + 1 V

с < I Vc> с из границы + 1

то тпоз := раб тпоз: нс определено

154

ГОСТ 27974-88 С.153

все

все;

проц (имя файл, цел, цел, цел) пуст set = установить;

j) проц усг пат » (имя файл f) пуст;

ес.Л —• открыт из f V “1воэм уст нам (f) то не определено иначе

имя лог (для чтения из 0 :■ ~1 возм вывод. (0;

имя лог (для записи из 0 :« И возм в вод (0;

имя лог (для литер из 0 := ।возм двоичн (0;

имя лог (для двоими из f) := ложь;

имя позиция (тпоз из 0 ;= (1,1.1) все;

проц (имя файл) пуст reset 3 уст нач;

к) проц уст номер литеры = (имя файл 0 цел с) пуст:

если -. открыт из f то не определено

иначе имя имени позиция тпоз = тпоз из f;

пока с из тпоз & с

цк

если с < 1V О с из границы книги (0 * 1

то не определено

инее с > с из тпоз

то вперед (0

иначе назад (0 все

кц

все;

проц (ммм файл, цел) пуст set char number 3

уст номер литеры;

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

10.3.2.1. Процедуры преобразования.

(Процедуры целое, фикс и плав предназначены для использования с процедурами бесформатного обмена вывод, печ и зап в тех случаях, когда требуется небольшое добавочное управление над порождаемым расположением. Каждая из этих процедур имеет параметр разрядность, абсолютная величина которого задает длину строки, порождаемой преобразованием предъявляемого арифметического значения V. И фикс, и плав имеют параметр после, задающий число цифр, требуемых после десятичной точки, а параметр порядок в плав задает разрядность, отводимую для порядка. Если V нельзя выразить строкой в пределах заданного разрядность, - даже за счет уменьшения значения после, если оно есть, — то вместо этого вырабатывается строка, заполненная лите рами литера ошибки (10.2.l.t).

3-нак включается обычным образом, и начальные нули заменяются пробелами. Однако пользователь может указать, задавая отрицательную разрядность, чтобы знак включался только для отрицательных значений. Если задана разрядность нуль, то вырабатывается кратчайшая возможная строк а,

155

С.154 ГОСТ 27-974-88

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

печ (целое (i, -4)),

которое может печатать”--- О'", ~-iJ-99V--9$“, „9999" или, если i было больше, чем 9999, „•***”, где „*” — выдача литера ошибки;

печ (целое (L4))..

которое будет печатать ”— + 99", а не;’--. .--99'”;

печ (целое (i, 0)), которое может печатать „О”, ,99”, „-99”, „9999” или „99999”;

печ (фикс (х, -б, 3)),

которое может печатать „2.718”, ,,27.183",

или „271.83" (в последнем случае пожертвовано одним местом после десятичной точки, чтобы приспособиться!

к данному числу);

печ (фикс (х, 0,3)),

которое может печатать ..2.718", „27.183” или ,.271.828”;

печ (плав (х, 9. 3, 2)),

которое может печатать „-2.718,0 ♦0”, „+2.716 —1”

или „*2.72ю ♦! 1” (в последнем случае пожертвовано одним! местом после десятичной точки, чтобы освободить пространство для неожиданно большого порядка).}

а) вид *число = об (< Д веш >, 4 Д цел >);

Ь) проц целое = (число v, цел разрядность) строк: выб v в

4 (Д цел х) :

(цел длина := абс разрядность — (х < Д 0V разрядность >0 111 0), Д цел п := абс х;

если разрядность ■ 0 го

Д цел m := п; длина := 0;

пока ш4-:= Д 10; длина ♦:= 1; ш* ДО

«к пропуск кц все;

строк s :■ пре дет .целого (п, длина);

есл и длина = 0 V

литера в строке (литераошибки, локцел.$) го абс разрядностью литера, ошибки

иначе

(х < Д 0 I ”—” I : разрядность >0 I" + ” I * ’ ") л рил з;

(разрядность ¥= 01

(абс разрядность — вегр s) X ’’. ” ярил s) ; S

все) >.

< (Д вещ х) : фикс (х, разрядность, 0) >

156

ГОСТ 27974-88 С. 155

быв;

проц (число,цел) строк whole “целое;

с) проц фикс * (число v, цел разрядность, после) строк: выб v в

< (Д вещ х) :

если цел длина :=абс разрядность -

(х < Д О V разрядность > 0 111 0); после > 0 А

(длина > после V разрядность ■ 0)

то Д веш у = абс х;

если разрядность = О

то длина :■ (после «01 НО);

пока у 4 Д.5 X Д .1 1 после > Д 10 ? длина

цк длина *:■ 1кц;

длина + := (после = 0 IОI после + I)

все;

строк s “ предо рационального (у, длина, после);

если -% литера в- строке (литера ошибки,дюк цел, $) то (длина > вегр зЛу < Д 1-0 I "О" прип $);

(х <Д0 („-”1 : разрядность > 0 1">,’1 ” ”) прио s;

(разрядность ^ О I

(абс разрядность — вегр s) Х'’-’" прип я);

s

инее после > 0

то фикс (v, разрядность, после — 1) иначе абс разрядность X литера ошибки все

иначе не определено; абс разрядность X литера ошибки все >,

< (Д цел х): фикс (Д веш. (х), разрядность, после) > быв;

проц (число, цел, цел) строк fixed = фикс;

d) проц плав я (чисто v, цел разрядность,

после, порядок) строк:

выб V в

< (Д вещ х):

если цел прежде ■ абс разрядность - абс порядок -(после ^ 0 I после ♦ 1 I 0) - 2;

знак прежде + знак после > 0

то строк з, Д вещ у := абс х, цел р := 0;

Д нормализовать (у, прежде, после, р);

s :■

фикс (знак х X у, знак разрядность X

(абс разрядность. - абс порядок - 1), после) + ,.w” ♦ целое (р. порядок);

если порядок =0 v литера в строке (литера ошибки,

15?

С.15« ГОСТ 27974 -88

лок цел, s) то

плав (х„ разрядность, (последО I после — 1 I 0}, (порядок >0 I порядок + 1 I порядок - 1))

иначеs

вес

иначе не определено; абс разрядность X литера ошибки все >,

< (Л цел х): плав (Д веш (х), разрядность, после, порядок) >

быв;

проц, (число, цел, цел, цел) строк float = плав;

е) проц •’■поедет р явление 0целого = (число V, цел раз р) строк:

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

< (Д цел х):

начало строк s, Д цел п :я х;

пока цифру в литеру (С (п модД 10)) при» $;

п v := Д 10; пЛДО цк пропуск кц;

(вегр s > разр I разр X литера ошибк и I s) конец >

•быв;

Г) проц ^предст й явление й рационального = (число V, цел разр, после) строк:

Й вырабатывает строку с максимальной длиной 'разрядность., содержащую ок ру тленное десятичное представление положительного вещественного числа 'v'; если 'после'"больше нуля, эта строка содержи г десятичную точку, за которой следует 'после' цифр И выб v в

< (Д вещ х):

начало строк s, цел прежде :»О;

Д вещ у := х + Д-S X Д.1 t после;

проц полб 0 ор й циф й ры й = (имя Д вещ у) лит: цифру в литеру ((цел с := С целч (у Х:= Д 10.0);

(с > 9 I с := 9); у -:=У с; с));

пока у > Д 10.0 t прежде цк прежде +:= 1 кц; •

у/:=Д 10.0 t прежде;

до прежде цк s плюспр подб циф (у) кц; (после > О I s пл вое л р ” . ”);

1S8

ГОСТ 27974-88 С. 157

до после ик s плюса? подб цнф (у) кд;

(веере>раэр I раз?X литера ошибки I s)

конец >

быв;

g) ирон ’Л нормал изовать = (имя Д вещ у, цел прежде, лосле, имя цел р)

пуст: if приспосабливает значение 'у'к тому, чтобы

оно могло подвергаться обмену согласно формату ф п (прежде) d . п (после) dф;

’р’ устанавливается таким, чтобы у X 10 t р равнялось первоначальному значению 'у' 0

начало

Д вещ g = Д 10.0 t прежде; Д веш h = g X Д.1;

пока у >g цк у Х:=Д.1; р+:=1кц;

(у > Д 0.0 I пока у<ЬикуХ:=Л 30.0; р — :• 1 кц);

(у ♦ ДЛ X Д.1 1 после > g I у :=h; р+:= I)

КОИСЦ;

h) пран ’-цифру в литеру = (цел х) лит: ,.O123456789abcdef” [х+1];

i) проц ’-строку в Л цел = (строк э. цел основание.

имя Д uen i) лог:

if вырабатывает истина, если абсолютное значение результата не больше Д макс цел д

начало

Д цел 1т = У основание; лог безопасно :■ истина;

Д цел п : = Д О, Д цел m = Д макс цел -5- 1г;

Д цел ml = Д макс цел - m X 1т;

для i от 2 цо вегр s

пока Д цел циф ■ Y литеру в цифру (s (i]);

безопасно :Е n < m у n " m Л циф < ml

UK n := n X 1г 4 циф кц;

если безопасно то i := (s [I ] =”+” Ini - n) ; истина

иначе ложь все

конец;

j) проц’•строку в Д веш = (строк s, имя Д вещ г) лог:

if вырабатывает истина, если абсолютное значение результата не больше, чем Л макс вещ И

начало

цел с :■ вегр s + L;

литера в строке (”ю", е, s);

цел р := е; литера в строке (”. ” р, s);

цел j := 1, длина : = 0, Д вещ х := Д 0.0;

^пропуск начальных нулей: it

для i от 2 до с — 1

пока s (1] =”0" Vs [ij = ” . ”Vs [ij = ,*r”

159

СЛ5 8 I OCT 17974-88

цк j := i кц;

для i от j + 1 до e - I пока длина <

JI нарядность веш

цк

если s (i] * ”. "

то х := х X Д 10,0 ♦ У литеру в цифру (s [j := i]);

длина + := 1

вое в все значащие цифры преобразованы 8

кц;

А предварительно установить порядок: А.

цел пор Надо к И :■ (p>J । р — j - 1 I р - j) . показ := 0;

4 преобразовать порядок : fl

лог безопасно :=

если е < вегр s

то строку в Д цел (s [е ♦ 1 :J, 10, показ)

иначе истина

все;-

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

Д вещ макс мант А кссз А :• Д макс веш, цел макс по р А адок А := 0;

Д нормализовать (макс мант, длина. 0, макс пор); пор -+:= показ;

если “1 безопасно V (пор > макс пор Vпор - макс пор А х > макс манг)

то лова.

иначе г •= (s (1) = ”*” I xl - х) X Д 10.0 t пор; истина вес

конец;

к) проц 5-литеру в цифру = (лит х) цел : (х = ”-” 101 цел i;

литера в строке (х, i,”0123456789 abedef ” ) ; i — 1);

1) проц литера в строке * (лит с, имя цел i, строк я) лог: (лог есть := ложь;

для к от нмгр s до вегр s пока “1 есть

цк (с = s [k] I i :■ к; есть : = истина) кЦ;

есть);

проц (лит, имя цел, строк) лог char in string «литера в icT роке;

ш) цел Д разрядность мел «

И наименьшее целое значение, такое, что 'Д макс цел' можно преобразовать без ошибки, используя трафарет п (Д разрядность цел) d И

(цел с := |;

160

I OCT 2 797 4-ввС. 15 9

пока Д 10 1 (с - 1) < Д.1 X Д макс цел цк с +•:= 1 кц;

с):

цел L int width = Д разрядность цел;

п) дед Д разрядность веш =

It наименьшее целое значение, такое, что при преобразовании ' 1.0' и ' 1 0 + Д точность вещ', с помощью трафарета d.n (Д разрядность вещ - 1) d порождаются разные строки И

1 - С целч (Л лг (Д точность вещ) ,' Л лг (Д 10));

цел L real width = Л разрядность вещ;

о) цел Л разрядность порядка =

я наименьшее целое значение, такое, что 'Д макс вещ' можно преобразовать без ошибки, используя трафарет d.n (Д разрядность вещ — 1) den (Д разрядность порядка) d (4

1 + С целч (Д лг (Длг (Д микс вещ) / Д лг (Д 10)) /

Длт (ДЮ));

цел L exp width * Д разрядность порядка;

10.3.2.2. Виды для обмена.

а) вил-^провывод й простые для вывода 0 = об (<Дцел >, < Д цещ >,< Д компл >, лог. < Д бит >, лиг. [ J лит);

Ь) вид ^-выводимое ■ с фактичес кий-описатель, специфицирующий вид. объединенный из ^2.1.3.6л] достаточно множества видов, ни один иэ которых не является 'пустым значением', и не содержит 'подвижное', имя , ’процедура', 'объединение' с;

с) инд л про в в од ^простые для ввода р ■ об (< имя Д цел >,

< имя Д вещ >, < имя Д комли >, имя лог,

< имя Д бнт >, имя лит, имя [ ) лит, имя строк);

d) вид ^вводимое = с фактический -описатель, специфицирующий вид, объединенный из ] 2.1,3.6 а J 'имени подвижного вектора из литерных' вместе -с достаточным множеством видов, каждый из которых есть имя’, за которым следует вид, не содержащий 'подвижное', 'имя', процедура', 'объединение' с;

£ См. замечания после 10.2.3.1, касающиеся термина .достаточное множество “,Э

10.3.2.3. Выстраивание.

а) оп ^стройвывод = (выводимое х) ( ) провывод: с результат „выстраивания" 'х' с;

Ь) оп *• стройввюд = (вводимое х) [ ) проявил: с результат выстраивания 'х' с;

с) Результатом .выстраивания " данного значения V является { одномерный] массив W, получаемый следующим образом:

• требуется, чтобы V , ,f если оно есть имя,] не было псевдоимеием;

• некоторый счепоос i устанавливается а 0;

• V, .проходится" { d J с помощью 1;

6-1361

161

С.160 ГОСТ 27974-88

♦ W составляется из паспорта ((1. i)) и получаемых прохождением V элементов;

• если V не есть (есть) имя, то вид результата является видом, специфицируемым описателем ( ] геровывод ([ ] проввод).

d) Значение V „проходится с помощью счетчика следующим образом: Если V — значение (именует значение), из которого объединен вяд, специфицируемый описателем провывод,

то

• i увеличивается на единицу;

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

иначе

Случай А: V - {одномерный} массив (именует одномерный массив) с паспортом ((1, и));

• для) = 1,.... и элемент, выбираемый (полымя, выбираемое) по (j) в V, проходится с помощью 1;

Случай В: V - {п-мерный, п > 2} массив (именует массив) с паспортом ((h.UiMla.u,).....(1пп)),где п>2:

• для j =li.....U| массив» выбираемый { 2.13.4.1} (имя, генерируемое (Злз.д.)] по отрезку (j, (1а, и, ,0) .... (1пп,0)) , проходится с пометы» i;

Случай€: V — структура (именует структуру) V Г.

• поля (подымсна V, именующие поля) этой VI, взятые в их порядке, проходятся с помощью i.

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

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

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

Щ.ЗЗЛ. Бесформатный вывод.

{ Для бесформатного вывода можно использовать вывод (а) и печ (или зап) (10.5.1 .d). Каждое выстроенное значение V из списка данных выводится следующим образом:

162

ГОСТ 27974-88 С. 161

за) Если вид этого V специфицируется посредством Д цел, то сначала, если в остатке текущей строчки нет достаточно места для Д разрядность цел + 2 литер, отыскивается коротая позиция на некоторой последующей строчке (см. 1033), а затем, если это нс начало строчки, дается один пробел и V выводится как бы под управлением шаблона

п (Д разрядность цел — 1) z ♦ d.

bb) Если вид этого V специфицируется посредством Д веш. то сначала, если в текущей строчке нет достаточного места для Д разрядность веш + Д разрядность порядка + 5 литер, отыскивается хорошая позиция на некоторой последующей строчке, а затем, если это не начало строчки, дается один пробел к V выводится как бы под управлением шаблона

+ d.n (Д разрядность вещ - 1) den (Д разрядность порядка — 1) г ♦ d.

сс) Если вид этого V специфицируется посредством Д компл, то сначала, если в текущей строчке нет достаточно места для 2 X (Д разрядность вещ + Д разрядность порядка} + 11 лнтер, отыскивается хорошая позиция на некоторой последующей строчке, а затем, если это не начало строчки, дается один пробел и V выродится как бы под управлением шаблона

+ d п (Д разрядность веш — 1) den (Д разрядность порядка — 1) z

-+ d"X” j + d.n (Д разрядность вещ — 1) den (Д разрядность порядка -— 1) г ♦ d.

dd) Если вид этого V специфицируется посредством лог, то сначала, если текущая строчка полна, отыскивается хорошая позиция в некоторой последующей строчке, а затем, если V есть истина (ложь), выводится литера, выдаваемая да (нет) (без прерывающего пробела).

ее) Если вид этого V специфицируется посредством Д бит, то элементы единственною поля этого V выводятся (как в dd) один за другим, (без прерывающих пробелов, но с переходом на новую строчку, когда эго требуется) .

ff) Если вид этого V специфицируется посредством лит, то сначала, если текущая строчка полна, отыскивается хорошая Позиция в некоторой: последующей строчке, а затем выводится V (без прерывающего пробела).

gg) Если вид этого V специфицируется посредством ( ] лиг, то элементы этого V выводятся (как в ff) одни за другим (без прерывающих пробелов, на с переходом на новую строчку, когда эго требуется).J а} проц вывод • (имя файл f,

[ ] об (выводимое, проц (имя файл) пуст) х) пуст:

если отк рыт из f то

для i до вегр х

цк выб настроить на запись (f);

настроить нз литерное (f);

* В) в (проц (имя файл) пуст пиф) : пиф (f), (выводимое выв): начало

[ ) провывод у = стройвывод выв;

< пронДпреоб й раэовакне И веш ■

б*

163

С.161 ГОСТ 27974-88

(Д веш г) строк :

плав (г, Д разрядность веш + Д разрядность порядка + 4, Д разрядность кщ - 1, Д разрядность порядка + 1) >;

для j до вегр у

ЦК выбу в

(об (число. < Д компл >) чиском) : начало строк s :=

выб янском в

< (Диел к>: целое (к,Д разрядность дел ♦ 1) >, < (Д веш г): Д п рсоб веш (г) >,

« (Д компл w): Дпреоб вещ (вч w) *•'£>.”

+ Дпреоб веш (мч w) > быв;

имя имени позиция тпоз = тпоз из f, цел п = вегр в;

пока

след позиция (f);

(п > с из границы книги (f) I не определено) ;

с из тпоз + (с из тпоз = 1 I n I п ♦ 1) >

с из границы книги (О + 1

цк ^ (испр строчка из £) (0 I вывод (Снов строчка)); настроить на запись (f)

кц;

(с из тпоз * 1 I ”^” прип s);

ДЛя к до вегр s цк вывести литеру (f, s (к))кц конец И вывода чисел )

(лог Ь): (след позиция (0;

вывести литеру (f, (b I дл1 нет))),

< (Д бит дбнт):

для к до Л размер бит

цк вывод (С(Д F из дбиг) [к]) КЦ>,

(лит к): (след позиция (0 ; вывести литеру (f, к) ), ([ ) лит стр):

для к от нигр стр до вегр стр

цк след позиция (О;вывести литеру (f, стр (к]) кц быв кц

конец быв кц

иначе не оп редслено все;

проц (имя файл, [ ] об (выводимое, проц (имяфайд) пуст)) пуст put = вывод;

Ь) проц ^-вывести литеру = (имя файл f, лит лит) пуст:

164

ГОСТ 2*974-8# с. 163

если открыт мз f А-»строчка окончена <0 то имя позиция гпоз с г поз из f.

ппоз 3 зайолн из книга из f;

настроить на цигерное (0 ; настроить на запись (0;

имя цел р = р из тпоз, I = 1 из тпоз, с = с из тпоз;

лит к; лог есть :*ложь;

выб текст из f в

(текст): (к :®лит; есть :в истина).

(по двтекст):

для j до вегр F из код из f пока -, есть

цк ст (лит внутр, внешн) табл ■ (F иэ код из 0 (ij;

(внутр из та бп = лит I к = внешн из табл: есть :» истина)

кц

быв;

если есть то

выб текст из f в

(текст tl): tl [р] [1] (с] := к

(подитекст t2): 12 [р] (1) [с] := к

быв;

с +:- 1;

если тпоз вне ппоз то ппоз :■ тпоз

инее -, возм установка (0 Л

позиция (р из ппоз, i из ппоз, I) вне тпоз то ппоз :■ тпоз;

(сжимаем (О I

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

все

иначе к :*”-";

если -»(испр ошибка литеры из 0 (f, к)

го нс определено; к :="-”

все;

проверить позицию (f); вывести литеру (f, к) все

иначе не определен©

все й настройка на запись сохраняется #;

:) проц ’’-след позиция = (имя файл 0 пуст:

(-* строчка хороша (f, для чтения из 0 1 нс определено)

Йстрочка теперь хороша £ Ю.ЗЛ.б.ддУ ,а настройка на

запнсьМекие такал же, как и при входе #1

10.3.3.2. Бесформатный ввод.

{Для бесформатного ввода можно использовать ввод (а) и чит

165

С.164 ГОСТ 2 7974-88

(10.5.1 e). Значения из данной книги присваиваются каждому выстроенному имени N из списка данных следующим образом:

аа) Если вид этого N специфицируется посредством имя Д цел, го сначала в данной книге ищется первая литера, нс являющаяся пробелом (при необходимости отыскиваются хорошие позиции в последующих строчках); затем из данной книги читается наибольшая строка, которую можно „составить” (10.3 4.1.1 kk) под управлением некоторого шаблона, имеющего форму

+ п (к.1) ”4 ” л (к2) dd или п (к?) dd

(где kl и к2 выдают произвольные неотрицательные целые числа); эта строка преобразуется в целое число и присваивается N; если такое преобразование не было успешным, то вызывается процедура обработки события, соответствующая при ошибке значения.

ЬЬ) Если вид этого N специфицируется посредством имя Д вещ, то сначала в данной книге ищется первая литера, не являющаяся пробелом (при необходимости отыскиваются хорошее ЛОЗИНКИ В ПОСЛЕДУЮЩИХ строчках); затем из данной книги читается наибольшая строка, которую можно составить под управлением некоторого шаблона, имеющего форму

+ n (kl) ”4" n (k2) d или n (k2) d,

с идущими затем

. n (kJ)d.d илн ds.

и, возможно, далее

еп(к4)”^и + п (k5)”^n (k6)dd«uiH

е n(k5)”—n (k6)dd.

эта строка преобразуется а вещественное число и присваивается N; если такое преобразование не было успешным, то вызывается процедура обработки события, соответствующая при ошибке значения.

сс) Если вид этого N специфицируется посредством имя Д компл. то сначала вводится (как в ЬЬ) вещественное число и присваивается первому подымеми этого N; затем в данной книге ищется первая литера, не являющаяся пробелом, а потом вводится некоторая литера и. если она не является ни ”1”, ни "i”, ни "и”, вызывается процедура обработки события. соответствующая при ошибке литеры (10.3.1 .Злх), с предлагаемой литерой ”1”; наконец, вводится вещественное число и присваивается второму поды-мени данного N.

dd.) Если вид этого N специфицируется посредством имя лог, то сначала в данной книге ищется первая литера, не являющаяся пробелом (при необходимости отыскиваются хорошие позиции в последующих строчках); затем читается некоторая литера; если эта литера та же, что и выдаваемая да (нет), то N присваивается истина (ложь),а в противном случае вызывается

166

ГОСТ 27974-W С. 165 процедура обработки события, соответствующая при ошибке литеры» с предлагаемой литерой нет.

ее) Если вид этого N специфицируется посредством имя Д бит. то производится ввод (каю в dd) для подымем этого N, одного за другим (с переходом на новую строчку, когда это требуется).

ff) Если вид этого N специфицируется посредством имя лиг, то сначала. если текущая строчка исчерпана, отыскивается хорошая позиция на некоторой последующей строчке, а затем читается и присваивается N некоторая литера.

gg) Если вид этого N специфицируется посредством имя [ j лит, то производится ввод (как в ff) для поды мен этого N, одного за другим (с переходом на новую строчку, когда это требуется).

hh) Если вид этого N специфицируется посредством имя: строк, то литеры читаются до тех пор,

(i) пока не встретится литера,содержащаяся в строке, присоединенной к данному файлу вызовом процедуры задать сто-пстроку,

(ii) либо пока не исчерпается текущая строчка, вследствие чего вызывается процедура обработки: события, соответствующая при конце строчки (или, где эта целесообразно, при конце страницы, при конце физ файла или при конце лог файла) ; если данная процедура обработки события продвигает текущую позицию к хорошей позиции (см. 10.3.3), го ввод литер возобновляется.

Строка, состоящая из введенных литер, присваивается N (отметим, что если текущая строчка была исчерпана либо текущая позиция была на начале пустой строчки или вне логического файла, то этому N присваивается пустая строка).)

а) проц ввод = (имя файл I,

( ] об (вводимое, проц (имя файл) пуст) х) пуст:

если открыт из f то

для а до вегрх

цк выб настроить на чтение (f);

настроить на литерное (О;

х Ш в

(проД (имя файл) пустпнф): шеф (f),

(вводимое вв):

начало

( ] провводу =стройввод вв; лит к; лог к пусто;

оп ? = (строк s) лог:

^вырабатывает истина, если следующая литера, когда он» есть, 8 текущей строчке содержится в 's' (эта литера присваивается 'к'), а иначе ложь |i

если к пусто А (строчка окончена (f) V лог файл

окончен (f))

ТО ложь

иначе (к пусто I ввести литеру (f. к));

167

С-166 ГОСТ 27974-88

к пусто := литера в строке (к. лок цел, s) все:

оп ? = (лиг с) лог: ?строк (с):

прио 2 = 8:

оп ! = (строк s, лиге) лит:

И запрашивает литеру, содержащуюся в .У: если читается литера, нс входящая в V, вызывается процедура обработки события, соответствующая 'при ошибке литеры\ с предлагаемой литерой 'с' й если (к пусто I проверить позицию (0;

ввести литеру (f, к)): к пусто := истина;

литера в строке (к, лок цел, s) го к

иначе лит предо ^с:

если (испр ошибка литеры из f) (f, предо) то (литера в строке (предо, лок цел, s) I предл I не определено; с)

иначе не -определено; с

все:

настроить на чтение (0 все;

оп ! = (лит $, с) лит: строк (s) ! с;

проц п рол й пуск И нач й альны х й пробелов = пуст:

пока (к пусто I след позиция (0):

?’’-”■ цк пропуск кц;

проц проп * уск й пробелов ■ пуст: пока ?’’-'’ цк пропуск кц;

проц чит рать 0 пиф # ры И ■ строк:

(строк f :=”0123456789" ’ "0":

пока ? ".0123456789” цк t плюспр к кц; t);

проц чит знак = лит:

(лит t = (проп пробелов; ? "+-” I kl ”♦”); проп пробелов; t);

проц чит чне йло 8 = строк:

(лит t = чит знак; t + чит циф);

проц чит вещ й естественное И = строк:

(строк t := чит знак;

(-,? ” . ” I t плюспр чит циф1 к пусто := ложь);

( ? ” . ” t плюспр " , ” + чит циф);

( ?мюХе”1 t плюспр %>” + чит чме); ,t);

для j до вегр у

цк лог не конч йсно й := ложь;

168

ГОСТ 27974-88 CJ67

к пусто := истина;

выбу Й] в

4 (имя Д ИСЛ идц):

(проп нач пробелов:

нс конч :• -• строку в Д цел (чиг чме» 10.

■иди)) >.

< (имя Д веш идв):

(прол нач пробелов: нс конч:»

-. строку в Д веш (чят вещ, илв)) >.

< (имя Д комли идк):

(проп нач пробелов:

не- конч:=

-, строку в Д веш (чит вещ, ивч идк) : проп пробелов; „i и 1 „’” 1"^

не конч := не ко-нч V

-«строку в Д веш (чит веш,ими идк)) >, (имя лог ил):

(проп нач пробелов:

ил := (да + нет) ! нет = да),

4 (имя Д бит идб):

дня i до Д размер би т

ик ввод (f, (ДРиз кдб) [i]) кц>,

(имя лит ил): (след позиция (0: ввести литеру (f, ил)).

(имя ( ) лит ими) ;

для i о-т нигр имя до вегр ими

цк след позиция (0 ;

ввести литеру (Г» имя (ij) кц;

(имя строк ис) :

начало строк t:

пока проверить позицию (f);

если строчка окончена (Г)

V лог файл окончен (0 то ложь

иначе ввести ."итсру (f, к);

к пусто :■ -’литера в строке (к, док цел, стопе из f)

все

цк Г плюелр к кц;

ис :“ t

конец

быв;

С к пусто I назад (f));

если не конч

то (—'(испрошибка значения из О (0 I

1ьч

С.168 ГОСТ 27974-88

не определено):

настроить на чтение (0 все

КЦ

коней быв кц иначе не определено все:

проц (имя файл, [ ] об (вводимое, проц (имя файл пуст)) иуст get = ввод:

Ь) проц ^ввести литеру = (имя файл f, имя лит лит) пуст: если открыт из f Л тстрочка окончена (О Л

-алог файл окончен (Г)

то имя позиция тпоз = тпоз из f:

настроить на литерное (0:

настроить на. чтение (f):

цел р = р из тпоз. 1 = 1 из тпоз. с * с из тпоз;

с из тпоз *:= 1;

лит :■ выб текст из f в

(текст tl): tl [р) (1) (с],

(подвтекст t2) :

(лиг k :=t2 [pl []] [с]: лог есть := ложь;

для i до вегр F из код из £ пока —, есть

цк ст (лит внутр, вне ши) табл =

(F из код из 0 [1];

(внеши из табл = k I к :» внутрь из табл:

есть :■ истина) цк;

если есть то к

иначе к :“ "х”:

если (испр ошибка литеры из f) (f, к) то к

иначе не определено: " . ” все;

настроить на чтение (0

все)

быв

иначе не о-пределено

все ? настройка на чтение сохраняется р;

с) проц ^проверить позицию ■ (имя файл 0 пуст: начало лог чтение = для чтения из f;

лог не окончено := истина;

пока не окончено := не окончено Л страница хороша (f, чтение) ;

17-0

ГОСТ 27974-88 С. 169

строчка окончена (f) Л нс окончено цк не окончено := (лепр строчка из f) (f) кц конец;

(Процедура проверит* позиции используется в форматном обмене перед каждым вызовом процедур вывести литеру и ввести литеру Если позиция не хороша (10 3.1 6.dd), вызывается соответствующая процедура обработки события и, если вырабатывается истина, могут дальше вызываться процедуры обработки события. Если вырабатывается ложь, то в случае процедуры обработки события, соответствующей при конце стрэ-мицы, вызывается нов страница, а для любой другой процедуры обработки события действия по умолчанию не предпринимаются и никакой процедуры обработки события больше не вызывается. По выходе сохраняется настройка на чтение «'запись, которая была при входе, ко текущая позиция может не быть хорошей. В этом случае не определено будет вызвано в следующей процедуре вывеши литеру или ввести литеру. Однако проверить позицию вызывается также при вводе строк (hh). и в этом случае, если позиция не хороша, строка обрывается. J

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

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

-d.3d”-’3d’’s.” е z* d

значение 1234.567 можно было бы обменивать, как строку

«х 1.234д-567-м i*3”.

„Формат" - ио структура (гл. внутренний объект) вида ФОРМАТ', отражающая иерархическое строение текста-формата (являющегося внешним объектом). В данном разделе даны синтаксис текстов-формата и сс-кангика дня получения соответствующих им форматов. Фактический форматный обмен осуществляется посредством процедур, задаваемых в п. 10.3.5. Для удобства описание их операций дается здесь в связи с соответствующим синтаксисом.}

10.3.4. J Наборы и шаблоны.

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

{ Следующие описания-вида (взятые из 10.3.5 .а) отражены, в приводимых ниже метаправилах от А до К.

А) вид формат =ст (поив [1:0] кадр F):

В) вид кадр =ст (цел утн, счет,оук, поде (1 : 0] наборн):

С) вид набор * об (шаблон, пакет):

D) вид пакет ■ ст (вставка в1, проц цел ловт, цел удк, вставка в2):

171

€.170 ГОСТ 27974-8»

Е) вид вставка = ноля (1 : О) ст (проц цел повт,об (строк, лиг) стр): F) вид шаблон а ст (об (трафарет, травыб, графер, трабссф. пуст) траф, вставка в):

G) вид трафарет =ст (цел тип.подв [] : О] рамкз рамки):

Н) вид рамка = ст (вставка в, проц цел повг, лог подав, лит марк):

1) виагр»выбаС1 (вставка в.пел тип, подэ (1 : 0| вставка етр):

J) вид храфор ■ ст (вставка в. проц формат прф);

К) вид требесф • ст (вставка в. поди [1:0] проц цел спец): J

А) ФОРМАТ :: структура содержащая букву алеф для выборки вектора из КАДРОВ в себе.

В) КАДР : структура содержащая букву у букву т букву н для выборки целого букву с букву ч букву е букву т для выборки целого букву о букву у букву к для выборки целого букву и для выборки вектора из НАБОРОВ в себе.

С) НАБОР :: объединение ШАБЛОНА ПАКЕТА воедино.

D) ПАКЕТ :: структура содержащая букву в цифру одни для выборки ВСТАВКИ букву и букву о букву в букву г для выборки процедуры вырабатывающей целое букву у букву д букву к для выборки целого букву в цифру два для выборки ВСТАВКИ в себе.

Е) ВСТАВКА :: вектор из структур содержащих букву п букву о букву в букву т для выборки процедуры вырабатывающей целое букву с букву т букву р для выборки объединения вектора из литерных литерного воедино в себе.

F) ШАБЛОН :: структура содержащая букву т букву р букву а букву ф для выборки объединения ТРАФАРЕТА ТРАВЫ БА ТРАФОР А ТРАБЕС-ФОРА пустого значения воедино букву в для выборки ВСТАВКИ в себе.

С) ТРАФАРЕТ :: структура содержащая букву г букву и букву п дня выборки целого букву р букву а букву м букву к букву и для выборки вектора из РА.МОК в себе.

Н) РАМКА :: структура содержащая букву в для выборки ВСТАВКИ букву п букву о букву в букву т для выборки процедуры вырабатывающей целое букву п букву о букву д букву а букву в для выборки логического букву м букву а букву р букву к для выборки литерного в себе.

I) ТРАВЫБ :: структура содержащая букву в для выборки ВСТАВКИ букву г букву к букву п дтя выборки целого букву с букву г букву р для выборки век тора ВСТАВОК в себе.

J} ТРАФОР :: структура содержащая букву в для выборки ВСТАВКИ букву п букву р букву ф для выборки процедуры вырабатывающей ФОРМАТ в себе.

К) ТРАБЕСФ :: структура содержащая букву в для выборки ВСТАВКИ букву с букву л букву е букву ц для выборки вектора из процедур вырабатывающих целое в себе.

L) ФОРМАТ :: цн I определение структуры содержащей букву алеф

172

ГОСТ 27974-88 С. 171

для выборки вектора из структур содержащих букву у

букву г букву н для выборки целого букву с букву ч букву е букву т для выборки целого букву о букву у букву к для выборки целого букву и для выборки век гора из объединения

структуры содержащей букву г букву р букву а букву ф для выборки объединения ТРАФАРЕТА ТРАВЫБА структуры содержащей букву в для выборки ВС ТАВКИ букву п букву р букву ф для выборки процедуры вырабатывающей использование ци I в себе ТРАБЕСФОРА пустого значения воедино букву в для выборки ВСТАВКИ в себе ПАКЕТА

воедино

в себе в себе.

{Вид 'ФОРПАТ' эквивалентен ( 2.1.1.2 л ) виду 'ФОРМАТ'. J

М) ТОЧКА ;: знак, точка; порядок; комплексное: логическое.

N) ПУНКТ ::нуль; цифра; литера.

О) ?НЕПОДАВЛЯЕМОЕ::неподавляемое: ПУСТО.

Р) ТИП :: целое; веще стенное: логическое: комплексное:

строковое: битовое: целого выбора; логическою выбора; форматное; бесформатное.

а) текст формата в СРЕДЕ выдающий ФОРМАТ < 5D ):

знак форматор ОФОРМЛЕННЫЙ (<>4f)

список наборов в СРЕДЕ (b),

знак форматор ОФОРМЛЕННЫЙ ^4f} .

b) набор в СРЕДЕ £а, Ь} :

возможная последовательность пояснений |92а/ , шаблон в СРЕДЕ с ?;

возможная последовательность пояснений /92^ , вставка в СРЕДЕ (j }, повторитель в СРЕДЕ/ g }, упакованный кратким список наборов в СРЕДЕ { Ъ]. возможная последовательность пояснений {92а} , ₽<тавкз& СРЕДЕ {d],

с) шаблон в СРЕДЕ ( Ь}: возможный трафарет Т i*; IA в СРЕДЬ f А34 2а, А343а, А344а, Л345а, А346а. А347а. А348а, Ь.

А 349а, Л34Ла}.

вставка в СРЕДЕ d .

d) вставка в СРЕДЕ { b, с, j, k. A347b. А348а, Ь, А349д, A34AaJ.' возможный литерам в С РЕДЕ fi} , возможная последовательность размещений в СРЕДЕ (с] .

е) размещение в СРЕДЕ ^d} :

повторитель в СРЕДЕ f g }. код размещекия { f }.

возможный лытерзл в СРЕДЕ / i]

f) код размещения {ej:

173

СД72 ГОСТ 2 7974-88

символ буква калат {94а } либо символ буква к {94а }:

символ буква икс лат [ 94а} либо символ буква х { 94а} : символ буква игрек лат ( 94а) либо символ буква у £ 94»}-.

символ буква аль лат {94а} либо символ буква л {94а} :

символ буква палат {94а } либо символ буква п {94а }: символ буква ку лат {94а} либо символ буква ю { 94а} :

g) повторитель в СРЕДЕ [b. е. i, к } .

возможный неподавляемый повторитель в СРЕДЕ {h J-

h) меподавляемый повторитель в СРЕДЕ {g, i}:

натуральное число {811b}:

символ буква эн лат {94а} либо символ буква и {94а/.

ЗАКРЫТОЕ предложение в СРЕДЕ раскрыто выдающее целое {j 1а, 34а,-}, возможная последовательность пояснений {92а/.

i) ?НЕВОДАВЛЯЕМЫЙ литерал в СРЕДЕ {d. е, i, А34 8с j ’НЕПОДАВЛЯЕМЫЙ повторитель в СРЕДЕ {g.h}. приведенное изображаемое в СРЕДЕ {80а }силмо выдающее век top кз литерных { 61 а }, возможный нсподавляемьай литерал в СРЕДЕ { i

j) ’НЕПОДАВЛЯЕМАЯ рамка

ТОЧКИ в СРЕДЕ /л342с, A343b.с, А344а, А345а J

вставка в СРЕДЕ /4},

ЗНЕПОДАВЛЯЕМОЕ подавление {1}.

маркер ТОЧКИ { А342е. АЗ-4 3d. е. A344b. A345b] .

к) ?НЕЛОДАВЛЯЕМАЯ рамка ПУНКТА в СРЕДЕ {А342Ь, с. А346а} : . вставка в СРЕДЕ {<!}, повторитель в СРЕДЕ {g}, ?НЕПОДАВЛЯЕМОЕ подавление {1}, маркер ПУНКТА { A342d. f. A346bt.

о 7НЕПОДАВЛЯЕМОЕ подавление {j, k, A347b } :

если (7НЕПОДАВЛЯЕМОЕ) есть (неподавляемое), ПУСТО:

если (7НЕПОДАВЛЯЕМ0Е) есть (ПУСТО),

возможный символ буква эс лат {94а } либо возможный символ букваш /94а Jr.

т)" рамка. ’НЕПОДАВЛЯЕМАЯ рамка ТОЧКИ в СРЕДЕ fj}. 7НЕПОДАВЛЯЕМАЯ рамка ПУНКТА в СРЕДЕ {к }: рамка ДВОИЧНОГО в СРЕДЕ { A347b}.

п)* маркер: маркер ТОЧКИ f А342е. A343d. е, А344Ь, А345Ь/:

маркер пункта/ A342d, f, А346Ь}; маркер основания { А347с} . о)* трафарет: трафарет ТИПА в СРЕДЕ । 4342а, А343а, А344а, А345а, А346а, А347а, А348а, Ь, А349а, А34Аа }.

{Примеры:

а) Ф п „таблица" х 10а, л и (пред - 1) (”х = ” 12ж ♦ д2х.

* .12дс ♦ 2дЗц" ♦ j Х”3” -” si + .Юле + 2дл) п ф

Ь> п „таблица" хЮа • л и (прел - 1) (”Х = " 12ж * d2x, ♦ .12де +2a3q'' + j Х”3” -"sa+ ЛОде + 2дя) п

174

ГОСТ 27974-8в с. 173

с) 120кд (’'север”, "восгоч","юж",’‘запад") "ный" d) п "таблица” х

е) п "таблица”

h) 10-е (пред - 1)

i) ”+j X "3””^’

j) ши

к) ”х • ”12*

1) ш }

[ Пояснения (9.2.1.а) могут встречаться в текстах-формата только в определенных позициях. В общем случае пояснения (как. и всюду в языке) не могут встретиться между двумя символа ми-БУ КВА или ШИФРА? J-

за) Для форматного вывода можно использовать процедуры ф вывод (lQ-3.5.|.a) ц ф печ (или ф зап) (10.5.l.f), а для форматного ввода про-цедуры ф ввод (10.3.5.2.а) и ф чит (10.5.l.g). Каждый элемент в списке данных (ср. 10.3.3) является либо форматом, который, должен присоединяться к данному файлу, либо значением, подлежащим обмену (таким образом, формат можно включить в список данных непосредственно перед значением,обмен которого использует этот формат).

ЬЬ) При вызове процедур ф вывод и ф ввод обмел происходит следующим образом:

Для каждого рассматриваемого поочередно элемента списка данных,

если это формат,

он становится текущим форматом файла посредством процедуры присоединить формат (10.3.5.к.),

а иначе этот элемент выстраивается (10.3.2.3 .с) и каждый элемент полученного массива выводятся (hh) или вводится (ii) с помощью очередного „шаблона" (сс, gg) из текущего формата, сс) „Шаблон” есть выдача некоторого шаблона. Он состоит из „трафарета" какого-то конкретного 'ТИПА' (в соответствии с синтаксисом грофаре-ra-ТИПА этого шаблона), за которым идет „вставка” (ее). За исключением трафаретов 'выбора', 'форматного' и 'бесформатного', трафареты состоят из „рамок", возможно ,подавляемых”, каждая из которых имеет вставку, „повторитель" (dd) и маркер, указывающий, что 3io”d” (”ди),”г”("ж'’): ”i” С‘м”) к т.п. рамка. Рамки каждого трафарета могут группироваться в „образцы знака”, „образцы целого” и т.п. в соответствии с синтз кексом соответствующего трафарета.

dd) „Повторитель" есть процедура, вырабатывающая целое число и конструируемая из повторителя (10.3.4.1.2х). Например, повторитель 10 создает процедуру, состоящую нз цел: 10: более того, п (предел - 1) является .динамическим” повторителем и создает процедуру цел: (предел 1). Обметим, что область действия повторителя ограничивает область действия любого содержащего ето формата, и потому может оказаться необходимым взять локальную копию файла, прежде чем присоединять к нему формат. Повторитель, вырабатывающий отрицательное значение, рассматривается (за исключением "к” ("к”) размещения) как вырабатывающий значение нуль.

175

C.I74 ГОСТ 2 7974 88

Когда шаблон „подготавливается”, все его повторители и прочие процедуры (включая и те, что содержатся в его вставках) вызываются сов-в.местно. Можно сказать, что лодгото-вленный трафарет „управляет” строкой. поскольку существует соответствие между рамками этого трафарета и литерами этой строки. Каждая рамка управляет га последовательными литерами данной строки, где п для "г” (”я”) рамки равно О, а иначе п — целое число-, вырабатываемое повторителем рамки (которое всегда равно 1 для "+-", ”—”, ". ”, ”е", "С ("и”) или ” Ь" (”б") рамки). Каждая из управляемых литер должна принадлежать определ яемо-му соответствующей рамкой ограниченному множеству.

ее) „Вставка”, являющаяся выдачей вставки (103-4.1.2.d), есть последовательность повторяемых „размещений” и строк; вставка:, не содержащая размещении, называется литералом”. Вставка ..осуществляется’'посредством осуществления ее размещений (ff) и при выводе (вводе) записью („ожиданием") (И)) каждой литеры из ее повторяемых строк (строка повторяется посредством воспроизведения ее столько раз, каково вырабатываемое ее повторителем:число).

ff) „Размещение” есть литера, выдаваемая кодом-размещення (10.3.4.1.2.4). Повторяемое п раз размещение осуществляется следующим образом:

• ’'к” С”к”) заставляет вызваться уст номер литеры с л в качестве

сс второго параметра;

• ”х” (”хм) заставляет га раз вызваться вперед;

. >«у- ("у”) заставляет п раз вызваться назад;

• ”1” С*л") заставляет п раз вызваться нов строчка;

• "р” С’л“) заставляет п раз вызваться нов страница;

• ”q” (”к>") при выводе (вводе) заставляет раз записать (ожидать)

литеру пробел.

gg) «Формат может состоять из последовательности шаблонов, каждый из которых выбирается по очереди посредство-м взять след шаблон (10.3.5.Ь). В дополнение к этому некоторое множество шаблонов можно сгруппировать вместе и -образовать повторяемый „набор” (который сам может содержать подобные наборы). Когда выбирается последний шаблон набора, снова выбирается его первый шаблон и тл„ пока весь этот набор не повторится п раз, где п — целое число, вырабатываемое его повторителем. Набор можно снабдить двумя вставками, первая мз кото рых осуществляется перед набором,а вторая после него.

Формат может также вызывать другие форматы с помощью трафаретов 'форматного ' (10.3.4.9.1).

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

hh) Значение V выводится с помощью шаблона Р следующим образом: Если трафарет Q этого Р есть трафарет 'выбора' или 'бесформатного',

176

ГОСТ 27974-88- С.375

то V выводится с помошыо Р (см. 10.3.4.8.l.aa. dd, 10.3.4.1 аа), а иначе V выводится так:

• Р подготавливается.

Если вид этого V ..совместим ио выводу” С Q, то

• V преобразуется в строку, управляемую (dd) этим Q.

Если данный вид нс совместим по выводу или если это преобразование нс было успешным, то

вызывается процедура обработки события, соответствующая при ошибке значения:

• если она вырабатывает ложь, V выводится с помощью процедуры вывод и вызывается не определено;

а иначе данная строка „редактируется” (jj) с помощью трафарета Q;

• осуществляется вставка из Р.

ii) Значение вводится в имя N с помощью шаблона Р следующим образом:

Если трафарет Q это-го Р есть трафарет 'выбора' или ’бесформатного', то значение вводится в N с помощью Р (см. 10.3.4.8.l.bb, ее,

10,3.4-10.1.ЪЬ);

а иначе

• Р подготавливается:

• „соединяется” строка, управляемая Q (kk).

Если вид этого N „совместим по вводу” с Q, го

• данная строка преобразуется с помощью Q в подходящее для Nзначение;

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

Если данный вид не совместим по вводу или если это преобразование не было успешным.

то

• вызывается процедура обработки события, соответствующая при ошибке значения;

• если она вырабатывает ложь, вызывается не определено:

• осуществляется вставка из Р.

jj} Строка „редактируется” с помощью трафарета Р следующим образом:

В каждой част строки, управляемой образцом знака,

• если (указывающая знак} первая литера этой строки есть ”+”, а данный образец знака содержит рамку ”-”, то зга литер заменяется на ”*”

• первая литера (т.е. знак) сдвигается вправо через все начальные нули в данной части згой строки я эти нули заменяются пробе-л»МН (например, с помошыо образна знака 4г + (4ж +) строка

177

С. 176 ГОСТ 27974-88

” +0003” становится строкой”л — - +3”).

В каждой части этой строки, управляемой образцом целого,

• управляемые ”z" ("ж”) рамками нули заменяются пробелами, если они расположены

• между началом данной строки н первой ненулевой цифрой;

• между каждой "d" (”д") "е" (V) ним "Г ("и”) рамкой и следующей ненулевой цифрой;

(например, с помощью трафарета zdzd2d (жджд2д) строка *'180168" становится ”18x168”).

Для каждой рамки Г из Р

осуществляется вставка из F;

* если рамка F не подавляема, записываются управляемые ею литеры;

(например, редактирование с помощью трафарета 4ж ♦ ш. ” . " д строки ”+0003.5” дает *'х х х ^3,5", а редактирование строки ’'180168”с помощью трафарета жд”- "жд” 19”2д дает ”18-i 1-1968”).

kk) Строк» „составляется" с помощью трафарета Р следующим образом:

Для каждой рамки F из Р

• осуществляется вставка нз F.

Для каждого элемента згой строки, управляемого F, следующим образом получается некоторая литере:

Если F содержится в образце знака,

ТО

• если знак уже был, ожидается цифра с предлагаемым "О”;

• а иначе ожидается ”+” или ”-” с предлагаемым ’’♦" и„ кроме того, если- данный образец знака содержит "—" рамку, в качестве знака будет приемлем пробел; предшествующий первой цифре (заменяемый на ”+”);

а иначе если рамка F содержится в образце целого, то если она подавляема, то подается "О”;

а иначе:

Случай A: F - ”d” ("д”) рамка:

• ожидается некоторая цифра с предлагаемым”О”;

Случай В: F - "z” ("ж") рамка:

• ожидается цифра или пробел с предлагаемым ”0", причем пробел приемлем только в следующих случаях:

• между началом данной строки и первой ненулевой цифрой;

• между каждой ”d” (”л”),”е” (**«’*) или”!" С’и") рамкой и следующей ненулевой цифрой:

• такие пробелы заменяются нулями;

а иначе если F- "а” ("а”) рамка,

го, если она кеподавлясма, читается и подается некоторая литера, а иначе подается

•—аче, если F неподавляе ма.

ГОСТ 27974-88 С. 177

то, если F - " . ” (”е ("е"),”Г Ги”)-^" С’б”)) рамка,ожидается ” . ” ("ю” или ”\” ним "е”„ ”1” или ”1"» да или нет) с предлагаемым ” . ” ( ’’к»”, "1”» мет):

а иначе, если F — подавляема ”, ” (”е” С’е”).”Г Гн”)) рамка, подается литера ”.” Сю”, ” 1”).

11) Элемент множества литер S „ожидается" с предлагаемой литерой С следующим образом:

• чигаегея некою рая литера:

если эго одна ил ожидаемых литер (т.е. принадлежит множеству s), го она подле<ся.

а иначе вызывается процедура обработки события, соответствующая при ошибке литеры, с предлагаемой литерой С: если эта процедура вырабатывает истина, а (возможно, измененная) литера С есть одна из ожидаемых литер, то подается <, а иначе вызывается не определено. J 10.3.4.1.2. Семантика.

{ форматы вводятся в действие посредством текстов-фор лита. Формат лучше всего рассматривать как дерево с некоторым набором в каждом узле и шаблоном на каждом из его концов. Чтобы не нарушались ограничения на области действия, каждый узел в этом дереве запакован - в настоящем стандарте - в значение вила 'КАПР'. Формат составлен вектором таких кадров, и они содержат указатели друг на яруга в форме индексов, выби-рающнх (ИХ) И? ЭТОГО вектора. £ез(»мнення, в реализациях ИО Дерево будет храниться более аффективным способом. Это возможно, так как ука. затсль-поля любого формата скрыт от пользователя, чтобы тот не мог проникнуть в эго поле.

Хотя текстформата может содержат* 3 АКРЫТЫЕ-предложемия (в повторителях и трафарета х-форматного) или основы (в трафаретах-бесформат-него), эти ЗАКРи1Т1>1Е-преаложения к основы не исполняются при исполнении текста-формата, но превращаются в процедуры, вызываемые впоследствии. когда до них дойдет дело в холе форматного обмена. В действительности исполнение текста-формата не приводит ни к каким действиям, имеющим какой-нибудь смысл для пользователя. J

а) Выдача текста-формата F в окружении Е есть структура, единственным полем которой является массив W вида 'вектор из КАДРОВ'. Этот массив составлен из паспорта ((1, п>) и п элементов и определяется следующим образам:

• счетчик i устанавливается в 1;

• W получается ..трансформацией" ^b? Fa окружении Е с помощью г.

Ь) Массив W, вид которого есть 'вектор из КАДРОВ*, получается ..трансформацией” текста-формата юти упакованного-списка-наборов С в окружении Е с помощью счетчика i следующим образом:

• элемент этого W. выбираемый по (г), является структурой, вил которой есть 'КАДР' и поля которой, взятые в их порядке, таковы

* { У™ } ж определено;

179

С. 178 ГОСТ 27974-88

• [счет } не определено;

• Соук) не определено:

‘ £Н1 массив V, вид которого есть вектор из НАБОРОВ' с паспортом ((1, ш)), где m - число составляющих наборов из С. и элементами, определяемыми гак:

Для j ■ 1ы ...»«п пусть Cj будет j -м составляющим набором из С:

Случай А: Прямой наследник этого С) включает шаблон Р:

• составляющий трафарет Т. если он есть, и вставка 1 этого Р исполняются совместно;

• j-м элементом V является структура, вид которой есть 'ШАБЛОН' и поля которой, взятые в их порядке,таковы: ,

• {граф] выдача этото Т, если она есть, {е, 10.3.4.8 2.

10 3.4.9.2,10.3.4.10.21, я иначе пусто;

в выдача этой I {d};

Случай В: Прямой наследник этого С, включает первую вставку 11, повторитель REP, упакованнын-список-наборов Р и вторую вставку 12:

i увеличивается на I;

• 11, REP и 12 исполняются совместно;

■ j-м элементом V является структура, вид которой есть ’ПАКЕТ' и поля которой, взятые в их порядке, таковы

• {в1) выдача 11 {dj ;

• {повт$ выдача REP {с};

• ^удк> i;

• { в2)выдача 12;

W получается трансформацией Р в окружении Е с помощью i.

с) Выдача в_некотором окружении Е ?НЕПОД.АВЛЯЕМОГО-повторитс-ля-в-СРЕДЕ R { 10.3.4.1 .l.g, hl - это процедура вида 'процедура вырабатывающая целое', составленная из текста-процедуры-»-СРЕДЕ-выдающего-процедуру-вырабатывающую-целос, основа которого- есть U вместе с окружением, необходимым {7 2.2 с} для U в Е. причем U определяется следующим образом:

Случай A: R содержит ЗАКРЫТОЕчгришожсннс^мскрыто-выдаюшее^^ лоеС:

• U — новая основа, подобная til .3.2.к 1 С;

Случай В R содержит натуральное-число D. а не ЗАКРЫТОЕ-преаложе-нне:

• V - новая основа, подобная D;

Случай С: R невидимо:

• U - новая основа, подобная натурал ьному-чмелу, имеющему естественное £8.1.1.2} значение 1.

d) Выдача вставки J { 10.3.4.1.I d} - это массив W вида 'ВСТАВКА', определяемым следующим образом:

- пусть Ui, —» U» - составляющие ?НЕПОДЛВЛЯЕ.Мь1Е повтррИтсЛи вставки 1 и Aj для j = 1..... п есть привсденное-иэображасмос или код-раз-

180

ГОСТ 27974-88 С.179

мешения, непосредственно следующий за Ъ\;

• пусть Rj, ..., Rn и D), .... Dn — совместные выдачи Uj, ..., Un и А, , ..., Ап. причем выдача кода-размещения символбукна-ка-ла т или символ-вукза-к-(символ-букра«кс-ллт или символ-бук ва-х. символ-буква hi рек-ляг или сим вол-буква-у. символ-буква-эль-лат или символ-буква-л, символ-бук ва-пэ-лат или символ-буква-п, символ-буква-ку-лат или символ-буква-ю) есть {литера., которая есть} естественное значение {8.1.4.2b} символа-буква-ка-лат (символа-буква-икс-лат, символа-буква-нгрск-лат, символа-буква-эль-лат. символа-букиа-пэ-лат, символа-буква-ку-лат);

• паслор том этого W является ((1, п)):

• элемент этого W, выбираемый по (j), > = I,..., п, является структурой, вид которой специфицируется посредством ст (проц цел повт. об (строк, лит) стр) и поля которой, взятые в их порядке, таковы;

• {повт} Rg;

* {стр} Ц-

е) Выдача трафарета-целого, -вещественного, -логического, комплексного, -строкового или -битового Р £10 3.4.2.1-3,} 10.3.4.3.1л, ..., 10.3.4.?. 1л] - это структура W вида 'ТРАФАРЕТ', определяемая следующим образом:

$ пусть Vt, .... Vn - совместные выдачи составляющих рамок нз Р • поля структуры W, взятые в их порядке таковы:

• {тип} i (2, 3, 4, 5), если Р - трафарет-иелого (-вещественного, -логического. комплексного, -строкового), и 6 (8, 12. 20). если Р - гра-фарет битового. составляющее ДВОИЧНОЕ.-основание которого есть двоичтнэе-(четверичное-, восьмеричное-, шестнадцатеричное-) основание;

• {рамки)массив, вид которого есть 'вектор из РАМОК’, имеющий паспорт ((I, п) и п элементов, причем выбираемым по (>) элементом будет V,

0 Выдача всякой рамки F {103.4 1.1.mJ - это структура W вида 'РАМКА' определяемая следу кипим образом:

• вставка и повторитель, если они есть, нз F исполняются совместно;

• поля структуры W, взятые в их порядке, таковы:

• {в] выдача ее вставки;

• {повт } выдача ее повторителя {с}. если он есть, а иначе, выдача невидимого повторителя;

• {подав} истина, если ее ?НЕПОДАВЛЯЕМОЕ-подавлеиис содержит снмвол-букву-эс-лат (символ-букву-ш), и ложь в противном случае;

• {марк]{литера, которая есть} естественное значение {8.1 4.3.п} символа S,определяемого следующим образом:

Случай A: F — составляющая неподдвляемая-рамка-нуля некоторого образца-знака {, такого, как Зж+} , составляющий маркер-знакэ которого содержит символ-плюс:

181

С. 180 ГОСТ 27*74-88

• S есть символ-буква у-лаг;

Случай В: F — составляющая неподааляемая-рамка-нуля некоторого образ-цз-энакэ , такого, как Зж—J , составляющий маркер-знак а которого содержит символ-минус:

• S есть символ-буква-вс-лат;

Прочие случаи: составляющий символ маркера нз Г есть символ-бук ва-а-лат или символ-буква-а (символ-буква бе-лат или символ-буква-б. символ буква де лаг или сямвол-буква-д, символ-буква-е-лаг или енмвол-буква-е. символ-буква-и-ла г илн еммвол-буква-н. символ-буква-эр-лаг илн символ-буква-н. символ -буква-зэт-лат или символ- буква-ж):

• S есть симзол-буква-а лаг (символ-буква-бе-лаг. символ-бук-ва-де-лат, символ-буква-е-лаг. символ-буква-и-лат, символ-буква-эр-лат. символ-буква -тэт-лат).

{Таким образом» маркер-пуля ж можно передать как литеру ”u”, ”v" яти ”z" в зависимости от того, образует он часть образца-знака (с наследным символом-плюс или симзолом-микус) или же часть образца-целого. Кроме того, русские символы маркера заменяются их. латинскими эквивалентами.

10.3.4.2. Трафареты целого.

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

а) трафарет целого в СРЕДЕ (Л341с, А343с} возможный образец знака в СРЕДЕ {с J , образец целого в СРЕДЕ {b) .

Ь) образен целого в СРЕДЕ (а. А343Ь,с» Л 347а} ;

последовательность рамок цифры в СРЕДЕ {А341к} .

с) обра-зен знака в СРЕДЕ {а,А343а} :

возможная последовательность неподавляемых

рамок нуля в СРЕДЕ {А341 к } ,

неподавлясмая рамка знака в СРЕДЕ {Л34 lj} .

d) маркер нуля {f, A341kI; символ буква ээт лаг 94а либо символ буква ж { 94а ] .

е) маркер знака {А341П :

символ плюс {94с Г; символ минус {94с}.

0 маркер цифры ^341к}:

символ буква де лат {94а} либо символ буква л { 94а} ; маркер нуля fd}.

{Примеры:

а)’*х = ”12ж+д b) д

с) ”х =”12ж + }

{О семантике трафарстов-целого см. 1О.34.Е.2.е.З

£аа) Совместные по выводу (вводу) с трафаретами целого виды специфицируются посредством Д цел (имя Д цел).

ЬЬ) Значение V преобразуется в строку S с помощью трафарета 'целого' Р следующим образом;

182

ГОСТ 27974-W С. 181

- если Р содержит образец знака, го первой литерой S будет знак этого V, а иначе, если V < 0, преобразование не будет успешным;

оставшаяся часть S заполняется десятичным представлением этого 7, получаемым следующим образом:

элементам» строки S, управляемыми ”d” О") н ”z" (’’ж*”) рамками, будут соответствующие цифры (таким образом, шаблон определяет число используемых цифр);

• если V нельзя представить таком строкой, то данное преобразование ме будет успешным..

(Например, используя трафарет ztd (жжл), значение 99 можно преобразовать в строку, а значения 9999 и — 99 нельзя).

ос) Строка S преобразуется в целое число, подходящее для имени N, с помошью трафарета 'целого' следующим образец:

• рассматривается целое число 1, десятичное представление (8.1.1.2) которого содержится в S;

• если I превышает наибольшее значение, которое может именовать N, то преобразование не будет успешным; иначе I - требуемое целое число (например, если вид этого N специфицируется посредством имя кор пел, а значением кор макс цел служит 65535, то никакую строку, содержащую десятичное представление значения, превышающего 6553 5. преобразовать нельзя).}

10.3.4.3. Трафареты вещественного.

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

а) трафарет вещественного в СРЕДЕ {Д341с, А345а J : возможк ый образец знака в СРЕДЕ {А342с } , образец рационального в СРЕДЕ (bl либо образец действительного в СРЕДЕ get .

Ь) образец рационального в СРЕДЕ fa. с) :

образец целого в СРЕДЕ {А342Ь },

рамка точки в СРЕДЕ {A341j },

возможный образец целого в СРЕДЕ {А342Ь} ;

рамка точки в СРЕДЕ [A341jJ , образец целого в СРЕДЕ {A342b} .

с) образец действительного а СРЕДЕ {а}:

образец рационального в СРЕДЕ (Ь j либо

образец целого в СРЕДЕ (А342Ь) , рамка порядка в СРЕДЕ (A341j j, образец целого в СРЕДЕ {А342а} .

d) маркер точки (A341jJ : символ точка (94bJ .

е) маркер порядка {A341JJ :

символ бук ва с л ат [ 94а } либо символ буква е (94а j.

{Примеры:

а) ♦ жд.1 1д • *.12ле + 2д Ь) жд. 11д • ,12д

с) .12дс+ 2д/

(6 семантике трафаретов-вешественного см. 10 3.4 1,2.е.}

ПО

С-182 ГОСТ 27974 -88

{аа) Виды, совместимые по выводу (вводу) с Трафаретами 'вещественного , специфицируются посредством Д веш и Д цел (имя Д веш).

ЬЬ) Значение V преобразуется в строку S с помощью трафарета 'вещественного' Р следующим образом:

• если Р содержит образец знака, го первой литерой строки S будет знак этого V, а иначе , если V < 0, преобразование нс будет успешным:;

• оставшаяся часть S заполняется десятичным представлением этого V. определенным следующим образом:

• сети необходимо. V обобщается до вещественного числа;

• элементом строки S. управляемым " . ” ("е” или "е") рамкой из Р, если он есть, будет ” . ” ("ю");

Если Р содержит "с” (”е”) рамку, ю

- пусть W — последовательность рамок» предшествующих этой ”е” ( "с”) рамке, а 1Р — следующий за ней трафарет 'целого';

♦ порядок Е вычисляется посредством нормализации этого V до наибольшего значения, преобразуемого с помюшью W (см. ниже) ;

• управляемая IP часть строки S получается преобразованием порядка Ес помощью 1Р (см. 10.3.4.2.1 .ЬЬ) ;

а иначе

Р целиком становится последовательностью W;

• элементами строки S, управляемыми "d" ("л”) и’’г” ("ж”) рамками из W, являются соответствующие цифры (таким образом, данный шаблон определяет числю используемых цифр,а также число цифр, помещаемых после десятичной точки, если она. есть);

• если V нельзя представить такой строкой, то данное преобразование не будет успешным.

сс) Строка S преобразуется в вещественное число, подходящее для имени N, с помощью трафарета 'вещественного' следующим образом : • рассматривается вещественное число R, десятичное представление кото рого содержится в S;

• если R превышает наибольшее значение, которое может именовать N, то преобразование нс будет успешным» иначе R — требуемое вещественное ЧИСЛО. J

10.3.4.4. Трафареты логического.

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

а) трафарет логического в СРЕДЕ £а343с} :

неподавлясмая рамка логического в СРЕДЕ {A34’j }.

b) маркер логического (А341 j, А348в} :

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

{Пример:

а) 14хб

{0 семантике графаретов-логического см. 10.3.4.1.2.е.)

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

184

ГОСТ 27974-88 С. 183

bb) Значение V преобразуется в строку с помощью трафарет 'логического' следующим образом:

- если V - истина (ложь), то это строка, выдаваемая литерой да (нет).

сс) Строка S преобразуется в логическое значение с помощью трафарета 'логического' следующим образом:

• если S совпадает со строкой, выдавав мой да (нет). то требуемым значением будет истина (ложь). } 103-4.5. Трафареты комплексного.

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

а) трафарет комплексного в СРЕДЕ {д341с}: трафарет вещественного в СРЕДЬ Г А343а} , рамка комплексного в СРЕДЕ [A34lj }, трафарет вещественного в СРЕДЕ ( ЛЗДЗа}.

Ь) маркер комплексного fA34Ljj :

символ буква и лат |94а) либо символ буква и (94а J.

(Пример:

а) +.12де + 2n3JO** j X” 3"Z” ши + .Юде + 2д}

[О семантике трафаретов ■комплексного см. 10.3 .4 1,2 ej

Гм) Виды, совместимые по выводу (вводу) с трафаретами'комплексного', специфицируются посредством Д компл. Д веш и Д дел (ими Д комол).

bb) Значение V преобразуется в строку S с помощью трафарета 'комплексного' Р следующим образом:

- если необходимо, V обобщается до комплексного числа,

- элементом строки S, управляемым ” i” (*и”), рамкой из Р. является

- управляемая первым (вторым) трафаретом 'вещественного' этого Р часть строки S -получается преобразованием первого (второго) поля из V в строку с помощью первого (второго) трафарета 'вещественного' злою Р (10.3.4.1.bb);

• если какое-то из этих преобразований не было успешным, то н преобразование этого V не будет успешным.

сс) Строка преобразуется в комплексное значение С, подходящее для имени N, с помощью трафарета 'комплексного' F следующим образом:

• часть строки, управляемая первым (вторым) трафаретом'вещественного' этого Р, преобразуется ж подходящее вещественное число (10.3.4.1.сс>, давал первое (второе) поле этого С;

• если какое-то нз этих преобразований не было успешным, то и преобразование этого С не будет успешным.}

10.3.4.6. Трафареты строкового.

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

а) трафарет строкового л СРЕДЕ iA341c}:

последовательность рамок литеры в СРЕДЕ {А341к} .

Ь) маркер литеры (А341к): символ буква а лат {94а} либо символ буква а { 94а J .

J 85

С.184 ГОСТ 27974-88

{ Пример:

а) п "таблица" х 10а}

{О семантике трафарстов-строковото см. 10.3.4.1.2 с.}

{аа) Виды, совместимые по выводу {вводу) с трафаретами строкового', специфицируются посредством лит и ( J лит (имя лит, имя ( ] лиг и имя строк).

bb) Значение V преобразуется в строку с помошыо трафарета ’строкового' Р следующим образом:

• если необходимо, V векторизуется в строку;

• если длина этой строки V равна длине строки, управляемой Р, то додается V, а иначе преобразование не будет успешным.

сс) Строка S преобразуется в литеру или строку, подходящую для имени N, с ломошьи трафарета 'строкового' следующим образом:

Случай А: Вид этого N специфицируется посредством имя лит:

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

Случай В: Вил этого N специфицируется посредством имя [ ] лит: • если длина строки S не равна числу литер, именуемых именем N, то преобразование нс будет успешным; а иначе подастся S;

Случай С Вид этого N специфицируется посредством имя строк: • подается SJ

10.3.4.7. Трафареты битового.

10.3 4.71. Синтаксис,

а) трафарет битового в СРЕДЕ (А 34 1с } : рамка ДВОИЧНОГО основания в. СРЕДЕ {b/ , образец целого в СРЕДЕ {а34 2Ь}.

Ь) рамка ДВОИЧНОГО основания в СРЕДЕ (а) : вставка в СРЕДЕ {а 34 Id}, ДВОИЧНОЕ основание { 82d. е, f. g ). не подавляемое подавление {A34H}, маркер основания (с } :

с) маркер основания {b ) символ буква эр лат [94а j либо символ буква я (94а/ . [Примеры:

a) 2r6d26sd • 2я6д26сд Ь) 2г • 8я }

(О семантике трафаретов битового см. 10 3 4.1,2.е }

{аа) Виды, совместимые по выводу (вводу) с трафаретами'битового', специфицируются посредством Д биг (имя Д бит).

bb) Значение V преобразуется в строку с помощью трафарета 'битового' Р следующим образом:

• с помощью- обозначения-операции абс (10.2.3.8.0 определяется целое число 1, соответствующее V;

Если "г" (’’я“) рамка из Р выдана рзмкой-двоичнаго- (-четверичного-, -восьмеричного-, -шестнадцатеричного-) -основания, то I преобразуется

186

ГОСТ 27974-88 С. 185

в управляемую образном целого из Р строку, содержащую двоичное (четверичное, восьмеричное, шестнадцатеричное) представление этого I (ср. 10.3.4.2.1 ЬЬ), • если I нельзя представить такой строкой, то преобразование не будет успешным.

сс) Строка S преобразуется в битовое значение, подходящее для имени N, с помощью трафарета 'битового' Р следующим образом:

• если ”г” (’’я”) рамка из Р выдана рамкой-двоичного-(-четверичного-, восьмеричного-, -шестнадцатеричного-) -основания. то определяется целое число |, для которого S содержит двоичное (четверичное, восьмеричное, шестнадцатеричное) представление;

< с помощью обозначения-операции бин (10.2.3.8 j) определяется би-товое значение В, союгвектрующее лому I;

• если размер этого В больше размера значения, именуемого И, то данное преобразование не будет успешным/}

10.3.4.8. Трафареты выбора.

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

а) трафарет целого выбора в СРЕДЕ {a343cJ: вставка в СРЕДЕ {A341d} , символ буква цзлаг {94а} либо символ буква u f 94а } .

упакованный кратким список поясняемых литералов в СРЕДЕ {с}, возможная последовательность пояснений {92а) .

Ь) трафарет логического выбора в СРЕДЕ {/4341с J: вставка в СРЕДЕ [A341dj . маркер логического {А344ь} , знак начало краткий {94fj, поясняемый литерал в СРЕДЕ (cj , знак а также { 94f j , поясняемый литерал в СРЕДЕ (с знак конец краткий {94f}, возможная последовательность пояснений $92a J .

с) поясняемый литерал в СРЕДЕ {a, b} : возможная последовательность пояснений {92а} , литерал в СРЕДЕ {Л34ц}.

■{Примеры:

а) л 20k ц (""север”, ”"в-осгоч”, ""юж". ””запзд”)

Ь) б Г". ” ошибка”) с) ’'"север" } {аз) Значение V выводится с помощь» шаблона Р. трафарет которого Q был выдан трафарегом-цслого-выбора С, следующим образом:

• подготавливается (10-3.4.1.1 .dd.) и осуществляется (10.3.4.1.1 ее) вставка из Q;

Если вид значения V специфицируется посредством пел, а V > О, и если число составляющих литералов в упакованном-списке-пояс-ияемых-лигершюв этого С не меньше V,

187

С. 186 ГОСТ 279 74 8Я

то

подготавливается и -осуществляется литерал, выдаваемый V-м из этих литералов:

э иначе

• вызывается процедура обработки события, соответствующая при ошибке значения:

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

• подготавливается и осуществляется вставка из- Р.

ЬЬ) Значение вводится в имя N с помощью шаблона Р. трафарет которого Q был выдан трафаре том-целого-выбора С. следующим образом:

• подготавливавтся и осуществляется вставил из Q:

• по очереди долгота вливается и „отыскивается” (сс) каждый из литералов. выдаваемых составляющими литералами у паковали ого-спмска-гюяс-няемых-лигералов этого С;

Если вид лого N специфицируется посредством имя цел и i-й литерал окажется первым из искомых.

то i присваивается N;

а иначе

вызывается процедура обработки события, соответствующая при ошибке значения .

• если она вырабатывает ложь, вызывается не определено;

• подготавливается и осуществляется вставка из Р.

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

dd) Значение V выводится с помощью шаблона Р. трафарет Q которого был выдан трафарстом-лагическою-выбора С, следующим образом:

• подготавливается и осуществляется вставка из Q;

Если вид. этого Vспецифицируется посредством лог, то

• если V т- истина (ложь). подготавливается и осуществляется литерал, выдаваемый первым (вторым) составляющим литералом из С;

а иначе

- вызывается процедура обработки события, соответствующая при ошибке значения;

• если она вырабатывает ложь, V выводится с помощью вывод и вызывается не определено;

• подготавливается и осуществляется вставка из Р.

ее) Значение вводится в имя № с помощью шаблона Р, трафарет Q которого был выдан трафаретом-логического-Выбора С, следующим образом:

подготавливается и осуществляется вставка из Q;

• по очереди подготавливав гея и отыскивается каждый из литералов, в ы-

188

ГОСТ 27974 -88 С. 187

даваемых сосгавля нашими литералами из С:

Если вил этого N специфицируется посредством имя лог и первый (второй) литерал окажется искомым.

то этому N присваивается истина (ложь) ;

а иначе

вызывается процедура обработки события, соответствующая при ошибке значения;

• если она вырабатывает ложь, вызывается нс определено;

- подготавливается и осуществляется вставка из Р. {

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

Выдача трафарета-выбора Р является структурой W вида 'ТРАВЫБ', определяемой следующим образом:

• пусть п - число составляющих литералов-в-СРЕДЕ упакованного-епме-ка‘Поясняемых-литералов из Р;

• пусть Si, i = 1, .... п, есть вставка-в-СРЕДЕ, подобная $1.1.3.2.к) i-му из этих составляющих лигералов в-СРЕДЕ;

• вставка I из Р и все Sj, Sj,..., Sn исполняются совместно;

• поля структуры W, взятые в их порядке, таковы:

{ в f выдача вставки 1;

- (тип) 1 (2), если Р — графарет-логическото-(-целого-) выбора;

• {стр} массив вида ’вектор нз ВСТАВОК', имеющий паспорт ((I, п)> и а элементов, причем выбираемый по (i). i ■ 1, ..., п, элемент -это- выдача вставки Sj.

10.3.4.9. Трафареты форматного.

10.3,4.9.1. Синтаксис.

а) трафарет форматного в СРЕДЕ {А341с} :

вставка в СРЕДЕ {A341d} ,

символ буква эф лат {94а} либо символ буква ф (94а),

ЗАКРЫТОЕ предложение в СРЕДЕ

раскрыто выдающее ФОРМ АТ {31а, 34а] ,

возможная последовательность пояснений {92з} .

| Пример:

а) ф (uir I (цел) : ф 5дф, (вещ): фд.Здф)}

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

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

Выдача в окружении Е некоторого трзфарета-фюрматного Р - это структура, вид которой есть 'ГРАФОЙ, и поля которой, взятые в их лоряд-кс, таковы:

- { в У выдача его вставки;

- { прф} процедура вида 'процедура вырабатывающая ФОРМАТ', со-

1»9

C.I88 I OCT 279-74-88

сгавленна я иэ тскста-процедуры-в-СРЕДЕ-выдаюшего-процсдуру-выра-батываюшую-РОРМАТ. основа U которого является новой основой, подобной {I 1.3 2 k} ЗАКРЫТОМУ-предложеиню-раскрыто-выдающему-ФОРМАТ лого Р. вместе с окружением, необходимым для U в t.

10.3.4.10. Трафареты бесформатного.

Ю.3.4.ЮЛ. Синтаксис.

а) трафарет бесформатного в СРЕД Е {А34 1с} :

вставка в СРЕДЕ {A341d},

символ буква гс лат {94а} либо символ буква г {94а} , возможное задание разрядности в СРЕДЕ {Ь} .

Ь) задание разрядности в СРЕДЕ {а] : знак начало краткий {94f} , основа в СРЕДЕ раскрыто выдающая целое {32d} , возможное задание после {с} , знак конец краткий {94f}, возможная последовательность пояснений {92а}

с) задание после в СРЕДЕ {b} : знак а также ^^ ’ г Л

основа в СРЕДЕ раскрыто выдающая целое {3 2d} , возможное задание порядка в СРЕДЕ {d} .

d) задание порядка в СРЕДЕ (с} : знак а также <W} • < ,

основа в СРЕДЕ раскрыто выдающая целое {?2dj . {Примеры:

а) г • г (-18, 12,-3) Ь) -18,12,-3

с)» 12,-3 d),-3}

{аа) Значение V выводится с помощью шаблона Р. трафарет Q которого был выдан трафаретом-бесформагного G, следующим образом:

• Р подготавливается-.

• осуществляется вставка из Q;

Если Q нс параметризован (те. не содержит задания-разрядности), го V выводится с помощью вывод;

а иначе, если вид этого V специфицируется посредством Д цел или Д вещ, то

► если Q содержит один (два, три) параметр (a, ob),V преобразуется в строку с ПОМОЩЬЮ целое (фикс, плав);

► эта строка записывается с помощью вывод; а иначе

- вызывается процедура обработки события, соответствующая при ошибке значения;

если она вырабатывает ложь. V выводится с помощью вывод и вызывается не определено;

• осуществляется вставка из Р.

bb) Значение вводился в имя N с помощью шаблона Р, трафарет кото-

190

ГОСТ 27974-88 С. 189

рого есть трафарет бесформатного', следующим образом:

• Р подготавливается;

• осуществляется вставка из Q;

• (игнорируются любые параметры н) данное значение вводится в N с помощью ввод;

• осуществляется вставка из P.J

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

Выдача в окружении Е некоторого трафарсга-бссформатного-в-СРЕДЕ Р - эта структура вида 'ТРАБЕСФ', поля которой, взятые в их порядке, таковы

• {в} выдача вси вки из Р;

• £спец} массив W вида 'вектор из процедур вырабатывающих целое', имеющий паспорт ((i. о)), где п - число составляющих основ-раскрыто-выдаюших-цслое возможного-задания-разрядяости из Р, и в элементов, определяемых следующим образом:

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

- i-м элементом массива W служит процедура, вид которой есть 'процедура вырабатывающая целое*, составленная из текста-процедуры-в-СРЕДЕ-вылающсго-процедуру-вырябатывающую-целое. основа U которой является новой основой, подобной £1.1.3.2.к} i-й из этих основ-раскрыто-выцаюшнх-целое, вместе с окружением, необходимым для UbE.

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

а) вид формат = ст (подв [1:0] кадр F);

вид formal = формат;

вид*-кадр =

ст (цел у й казатсль й » Й скущего й н й «бора й.

счет йчик числа раз,

сколько должен быть повторен к адр й.

о й бра тный й у к 0 азатель й. под» (1:0] набор н);

вид 4набор = об (шаблон, пакет);

вид «-пакет -

ст (вставка в1. проц цел ловт # оризедь й, дел у |t кашель й д П ругою П к it ядра й. вставка в2);

вид «-вставка » подв (1 : 0] ст (пред цел повт й оритель It. об (строк, лит> стр й ока текста й) ;

вид «-шаблон = ст (об (трафарет, травыб, трафор, тра бссф, пуст)

треф, вставка в);

вид «трафарет = ст (цел гип I*трафарета й. подв [1 : О] рамка рамки};

вид «-рамка ■ ст (вставка в, проц цел повт |t оритель ft.

лог подав й пение й. лит марк й ер й);

вид 4- травыб И трафарет выбора й =

ст (вставка в, цел тип

191

С. 190 ГОСТ 27974-88

|i логического или целого 8

поле [1 0] вставка стр рокм текста 0);

вид ^трафор ^ трафарет форматного 0 = ст (вставка и, проц формат прф);

вил^трабесф г трафарет бесформатного 0 = ст (вставка в.

подв [10] проц цел спец);

Ь) прои ‘‘•взять след 0 уимций 0 шаблон = (имя файд f, лог чит #ать 0, имя шаблон шаблон) пуст:

начало

лог есть шаблон := ложь, формат окончен := лож»;

пока ~’ есть шаблон

цк если ук п азатель й фор 0 мата И из f = 0 то если формат окончен то не определено

инее -* («сир формат из f) (f)

то имя цел (укфор из f) := I;

ути из (F из формат из f) [1] :а 1;

счет из (F из формат из f) (1] :=1;

иначе формат окончен := истина все

иначе

имя цел укфор ■ укфор из f;

имя подв [ ] кадр алеф = F из формат из f:

выб (и из алеф [укфор]) [утн из алеф [укфор]]в

(пакет пак):

([1 :вегр (в 1 из пак) ) подвставка пв;

оук кз алеф [ удк из пак) := укфор; укфор :- пропуск;

(подготовить вставку (в1 из пак, пв)„

счет из алеф [удк из пак] :s поэт из пак);

(алеф :*: F из формат из f I нс определено);

(чит I ввести вставку (f, пв)

I вывести вставку (f, пв));

утн из алеф [удк из пак] :=

(счет из алеф [удк из пак ] > 010

I есть шаблон := нежна; шаблон := (пустое, ( ));

вегр н из алеф (удк из пак]);

укфор := удк из пак),

(шаблон шабя) : (есть шаблон := истина; шаблон :■ шабл) быв;

пока

(укфор* 0

I утн из алеф [укфор] = вегр и из алеф [укфор]

I ложь)

цк если (счет из алеф [укфор] - := 1) < О то

если (укфор := оук из алеф [укфор]) *0

191

ГОСТ 27974-88 Ci 91

то

вешка добав "

выб (и из алеф [ух фор]) [ути из алеф [у к фор] | в

(пакет плк):

(оук из алеф [улк из пак] := О; в2 из пак),

(шаблон табл): выб граф из табл- в

(трафор траф> ;

(цел к := укфор:

пока оук из алеф ]к] / укфор ик к +• = I кт

алеф :■ алеф [:k - 1 ] :

в из табл) быв

быв;

цел т = ветр в из шаблон, п = вегр добав;

(1 : т + п] ст (проц цел ловт, об (строк, лит) стр) с;

с (1 : из] :* в из шаблон; с [ш ♦ 1 : m + п] :“ добив;

в из шаблон :=с

все

иначе ути из алеф [укфор] := О

все ки;

(укфор * О I ути из алеф [укфор] +: = I)

все кц

конец;

с) вид «-подвс газка =сг (цел повт, об (строк, лит) стр);

d) герои «-подготовить вставку -

(вставка вст, нмя ] ] подвегавка подаст) дуст:

(I совместно вызывает вес повторители во 'вст' авке й если вегр вст = I

то

повт из подвег [1] := повт КЗ вст [LJ;

стр КЗ лодвст [1] := стр из вст (1]

инее вегр вег > I

ю (подготовить вставку (вст [1],подвег [1]), подготовить вставку (вст (2 :], подвег [2 :]))

все;

е) вид '’-подрамка -

ст (пода [1:0] подвставка пв, цеп повт, лог подав, лит марк);

f) п рои «-подготовить рамки =

(( | рамка рамки, имя { ] подрамка подрамки) пусг: Й совместно вызывает

все повторители в ра мк ах 'рамки' #

если вегр рамки = 1

то

7-13-61

193

С192 ГОСТ 27974 -88

(1 : вегр (в из рамки (1))] подвставка пв;

(подготовить вставку (в из рамки [1], лв), повт из подрамки [1 ] := повт нз рамки 11 ]) ;

пвиэ подрамки [1] := ив;

подав из подрамки (I ] : = подав из рамки J1J;

марк из подрамки (1] := марк из рамки [1] инее вегр рамки > I то (подготовить рамки (рамки (!], подрамки [1]), подготовить рамки (рамки (2:],подрамки 12:])) все;

g) проц “-вывести вставку =

(имя файл f, I ] подвставка пв) пуст: начало настроить на запись (f) ;

для к до вегр пи

дк

выб стр из пв [к] в

(лит а): разместить (Г, повт из пв [к], а, ложь),

(строк s):

до повт из пв [ к]

ЦК

для i до вегр з

цк проверить позицию (С;

вывести литеру (f, s [i])ku

ku быв кц конец;

h) проц ^ввести вставку =

(имя файл f, [ 1 подвставка пв) пуст: начало настроить на чтение (f);

для к до ветр пв цк

выб стр из пв (к] в

(лит а): разместить (f, повт из пв [ к], а. истина),

(строк s) :

(лит с;

до повт из пв (к] ЦК для i до вегр s ПК проверить позицию (f); ввести литеру (f, с);

(c^s [i]

I (-1 (испр ошибка литеры: из f) (f,c:=s[i])

I нс определено);

194

ГОСТ 27974-88 С-193

настроить на чтение <0) кц

кц) быв

кц

конец;

i) проц ‘‘-размес тить ■

(имя файл f, цел повт, лит а, лог чит) пуст: если а = ”х” то до по-вт вперся (0 кц инее а = ’’у” то до повт цк на зал (0 кц инее а = ”]” голо ловт цк нов строчка (О кц инее а =”р” то до по-вт цк нов страница (0 кц инее а ” ” к” го уст номер литеры (f, повт) инее а ■ ”q” то до повт

ИК

если чит

то пит с; проверить позицию (0 ; ввести литеру (f, с);

(с^пробел I

(-’ (испр ошибка литеры из 0 (f, с :■ пробел) 5 не определено); настроить на чтение (0) иначе проверить позицию (С);

вывести литеру (f, пробел) все;

кц

все;

j) проц ^-выполнить трзфор = (имя файл Г, трафор трафор, лог чиг) пуст:

начало формат прф;

(1 :вегр (в из трафор)] подвставка нв;

(подготовить, вставку (в из трафор, пв), прф := прф из трафор);

(чит I ввести вставку (f,oa)

I вывести вставку (f, пэ));

имя цел укфор • укфор из f;

имя подв [ ] кадр алеф = f из формата из f;

цел пэ = вегр алеф, п * вегр (F из прф);

[1 : пп ♦ п] кадре; с (1 :т] :=алеф;

с (m +1 : т ♦ п] := F из прф;

алеф :« с; оу.к из алеф (т ♦ 1] :« укфор;

уюфор :"т+1; угнкзалеф (укфор] :■!;

счет из алеф (укфор] :=1;

для i or m +1 до m + п

ЦК

19-5

С.194 ГОСТ 27974-88

для j до вег р н из алеф [ij

ПК

выб (и из алеф [j]) [jj в

(пакет пак):

(низ алеф [i] [j J :■ пакет (в I из пак. повт из пак, удк из пак + гл,в 2 из пах)

быв

кп

кн

конец;

к) проц ^-присоединить формат =

(имя файл f, формат формат) пуст:

начало

формат нз f :=

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

:• формат;

укфор нз f := глоб цел := 1;

ути из (F из формат из f) [1] := I;

счет из (F из формат из f) [1] := 1;

оу к из (F из формат нз f) [I j :• О

конец;

10.3.5.1. Форматный вывод.

а) прои ф вывод =

(имя файл f, ( ) об (выводимое, формат) х) пуст:

если открыт из f то

для к до вс гр х

цк выб настроить на запись (f);

настроить на литерное (f);

х (к) в

(формат формат) : присоединить формат (f,формат), (выводимое выв):

начало цел j := 0

шаблон шаблон, [ | провывод у = стройвывод выв;

пока (j +:= 1) < вегр у

цк лог не конч := ложь;

взять след шаблон (f. ложь, шаблон);

настроить на запись (f);

[1 : вегр (в из шаблон)] подвставка подаст;

выб треф из шаблон в

(трафарет трафарет) :

начало цел повт. у к й азатель й рам йок й :■ 1;

[1 : вегр (рамки из трафарет) ] подрамка подрамки;

196

ГОСТ 27974-88 С.195

(подготовить рамки (рамки из трафарет, подрамки), подготовить вставку (виз шаблон, подвиг));

строк в;

оп ? = (строк s) лог:

Й истина, если следующий маркер есть один из элементов 's', а иначе ложь 0 если украм > вегр подрамки то ложь

иначе подрамка пр = подрамки (украм];

повт :■ повт из пр;

если литера в строке

(марк из др, лог цел, s)

то украм ♦:« 1; Метина иначе ложь

все

все;

оп? ■ (лиге) лог:?строк (с);

проц цел трафарет =

(имя лог образец знака) цел:

(цел I := 0;

пока ? ’^uv" цк (повт > 0 11 + := повт) кц;

образец знака :■ ? ”♦ -”;

пока ? ” zd*’

цк (повт> О !!■+:= повт) кц; 1)1

< проц ред йактировать й Д Дел = (Д цел i) пуст:

(лог образец знака;

цел 1 :■ цел трафарет (образец злака) ;

строк t = иредст целого (абс i, 1);

если литера в строке (литера ошибки лок цел, t) V

1 = О V -> образец знака А1 < Д О то не конч := истина

иначе t прип s;

(1 - верг t) X '’О" прип s;

(образец знака I (i < Д 0 I ” —” I ”+”) ПрИП S) все) >;

< проп ред Л веш = (Д веш в) пуст:

(цел b : = 0, а :=0.

пор :« 0. Л веш у :» абс в, лог знак 1, строк точка = ””"; b := цел трафарет (знак !);

(? " . ” I а •= цел трафарет (лок пог) ;

точка := " Л);

если ?“е”

то Л нормализовать (у, Ь, а, пор);

ред цел (пор);

197

С. 196 ГОСТ 2 7974-88

-io" прип S

все;

строк t = предо рационального

(у.Ь+ а* (з*0 III 0).з):

если литера в строке

(литера ошибки, лох цел, t) V а + Ь = О V ^ знак I Л г < Д О то нс конч := истина

иначе t [:Ь] ♦ точка * t [Ь ♦ 2:]лрип s;

(b + а * (а ^ О 111 О) - вегр t) X ” 0” прип з;

(знак I I (в < Д 0 1”-”1 "♦") прип s)

все) >;

< проц реп Д компл = (Д компл лк) пуст:

пока ?" i” цк украм +:■ I кц;

ред Д вещ (мч дк);

”1" прип s; украм :■ 1: ред Д веш (вч дк)} >;

< проц ред Д биг =

(Д бит дб, цел основание) пуст:

(Д цел п : = абс дб-: ? "’г”;

цел I := цел трафарет (лок лот);

пока литеру в цифру (С (п моя У основание)) прип з;

п *:• У основание; л* ДО

цк пропуск кц;

если вегр s < I

то (1 - вегр s) X“О" прип s

иначе нс конч : ■ истина

все) >.

проц счет Я чик 0 л и» fl ср 0 • цел :

(цел 1 :■ 0;

пока ?"а” цк (повт >0 I I Т;«повт) ки; 1);

выб тип из трафарет в

fl целое fl

(у 0] ।

< (Д цел i) : ред Д цел (i) >

I не конч := истина), fl вещественное п

(у 011

< (Д веш в) ; рея Д вещ (в) >,

< (Д цел ц): ред Д веш (ц) >.

I некоим :и истина).

0 логическое 0

(у 01 ।

(лог Ь): з := (Ь 1дэ1 нет)

1не конч :■ истина),

fl комплексное fl

198

ГОСТ 27974-88 С. 197

(У [j] ।

< (Д компл дк): ред Д комля (дк) >,

< (Д вещ дв)! ред Д веш (ед) >.

< (Д цел да): ред Д веш (да) >

I не конч :» истина), 0строковое^

Су Ш ।

(лит с): (счет лит = 1 I $ := с!

нс конч :" истина) ,

([ ) лит t):

(счет лит = вег р t - натр t ♦ 1

Jar-t (cl)

I не конч := истина)

I не конч := истина) либо

А битовое Ji

<у Ш ।

< (Д бит дб): ред Д бит (дб. тип из трафарет - 4) >

I нс конч := истина)

быв;

если “* не конч

то ред строку (f, s, подрамки) все

конец, ■

(трав-ыб выбор):

начало

fl : вегр (в и»выбор)] подвставка, пв;

подготовить вставку (в из выбор, пв) ;

вывести вставку (f, пв);

цел 1 =

выб тип из выбор в ji логическое ^

(у В] 1

(лог b) : (Ы 11 2)

I некоим :“ истина; пропуск),

* целое #

(у ОН

(цел i) : i

I не коич := истина; пропуск) -быв;

если “’ нс коич

то

если L> вегр (стр из выбор) VI < О

то не конч := истина иначе

399

С. Л 98 ГОСТ 2 7974- 88

[! ; вегр ((cip из выбор) [I] ) j подвставка иве; подготовить вставку ((стр нз выбор) [1], пве): вывести вставку (С.пве)

все

все;

- пади-словить вставку (в из шаблон, поддет)

конец.

(трафор трафор) :

начало

выполнить трафор (f .трафор, ложь);

для i до вегр подвст аж подаст (ij = (О,"" ") кц;

j -•- I

к онсц.

(трабссф трабесф):

начало

(1 : вегр (в из трабссф) ] подвставка пв;

[ ] Прон цел спец = спец из трабесф:

цел п = вегр спец; [ 1 : nJ цел s;

(подготовить вставку (в из трабссф, пв), (подготовить вставку (в из шаблон, подвст),

s := (п I спец (1], (спец (I],спец (2]), (cneu (1],спеи [2], спец [3]) I ( )));

вывести вставку (f, лв );

если п = 0 то вывод (f, у (ij) иначе

число yj =

(У Ь1 • < (Д чел 1): i >, < (Д веш в}: в >

I не конч := истина; пропуск);

• если '-не конч то выб п в

вывод (f, целое (yj,s [)]))►

вывод (f. фикс (yj, 8 [ I ], s (2])).

вывод (f^onaa (yj>s(lj ,s(2J, s(3J)) быв

все

вес

конец,

(дуст) :

С-:=1:

подготовить вставку (в. из шаблон, подв-сг)) быв;

если не конч

то настроить на запись (f);

С1 (испрошибка значения из О (f) I вывод (f, у (jj);

не определено)

200

ГОСТ 27974-88 С. 199

все:

вывести вставку (f, подаст) к и

конец быв кц

иначе не определено

все:

проц (имя файл.

[ ] об (выводимое.формат)) пуст put f = ф вывод:

Ь) проц ^ред Тактировать it строку =

(имя файл f,строк s. [ ] подрамка пр) пуст:

начало л ог подав, п р олавл р н р ули г := истина.

выв ii еден fi эн

Илк Н := ложь.сше раз. цел] :=0, знак:

проц копия3 (лиге) пуст:

(~’ подав 1 проверить позицию (Л: вывести литеру (f, с)): для к до вегр пр)

цк подрамка прк = пр (kJ: подай := подав из прк:

вывести вставку (f, пв из прк):

до повт из прк

цк еще раз л” истина.

пока еще раз ■' *

цк j ♦•» I; еще раз :=ложь: •

Лйт sj « s (j |, маркер = марк из прк:

если .маркер = ”d"

то копия ( sj); пн := истина

инее маркер ■ ”z” то

(Sj =”0” I копии ((пн I "1" I sjl)

I : sj = ’'+“ I еще раз := истина

I пн := ложь; копил (sj))

инее маркер «’’iT V маркер = ”v” ю

(sj =''♦*’ I знак :« I; еше раз := истина

I : sj « '-” I знак := 2; еше раз .:= истина

I ;$j «"О” I копии ((пн I “jI” I «j))

I (^ выв зн

копня ((знак I (маркер =’’и’" I ”+-”1 "£"),’*-”));

выв зи ; = истина);

копия (sj): пн :=ложь)

инее маркер *=”♦” то

(sj ="+" V sj = ”-” Г копия (sj)

I С» вывзн I копня ((знак Г’’♦”,” -”))) ;

j-:-D

инее маркер ■ "—" то

(sj = "+" । копия ("д”)

I г Sj ■ ”—” I копия (sj)

С. 200 ПОСТ 27974-8S

I (1 выв зн I копия ((знак I ”+” ”-")));

. 1-^0

инее маркер = ”. ” то копия( ". ”)

инее маркер ■ "е” V маркер * Т

V маркер ■ "а" V маркер ="Ь”

то копия (sj); пи :■ истина; выв эн := ложь инее маркер ■ "г”

то j —:■ 1

все

KU

кц

кц

конец;

10.3.5.2. Форматный ввод

а) проц ф ввод » (ими файл. t.

[ 1 об (вводимое,формат) х) пуст: если открыт из f то для к до вегр х цк выб настроить на чтение (f);

настроить, на литерное (f); х [к] в

(формат формат): присоединить формат (f, формат), (молимое вв):

начало цел j :«0;

шаблон шаблон. [ ] проввод у «стройввод вв;

пока (j *:■ 1) < вегр у

нк лот не конч :“ ложь-;

взять след шаблон (f, истина, шаблон);

настроить на чтение (f) ;

[] : вегр (в из шаблон) ] лодвставка подвст;

выб граф из шаблон в

(трафарет трафарет) :

начало

[1 : вегр (рамки иэ трафарет)) подрамка подрамки; (подготовить рамки (рамки из трафарет, подрамки) подготовить вставку (в из шаблон, лодвегавка));

строк s;

цел основание =

(тип иэ трафарет > 6 I тип нз трафарет - 4 I 10);

©ост строку (f, s, подрамки, основание);

выб тип нз трафарет в

Спелое #

<у 01 ।

< (имя Д пел иди) ;

не конч := “* строку в Д цел (s, 10, иди) >

202

ГОСТ 27974 -88 С 201

I не конч := истина), К вещественное ji

(у Ш I

< (имя Д вещндв):

нс конч :=-* строку в Д веш (s3 илв) >

I не конч := истина), 9 логическое й

(У 01 1 (имя лог ил): ил := s = да

I не конч :■ истина), 0 комплексное Н

(у и) а

< (имя Д компл илк):

(цел 1,логЬ1,Ь2; литера в строке (’Г, i, s);

bl .= строку в Д веш (в (: -1]. ивчиз идк): Ь2 :■ строку в Д веш (в [Н Г ], имч из идк);

не конч (Ы А Ь2)) >

I нс конч : = истина),

К строковое |t

(у DI ।

(имя лит сс) :

(вегр s = 1 I сс := s [!] I не конч « истина),

(имя [ j лит имл):

(вегр имл — нигр имл * 1 = вегр s I имл (с 1] :■ s

I не конч :■ истина), (имя строк ис) : нс:= s I не конч := истина), либо

Л битовые ^

(у 01 ।

< (имя Д бит ИЛб) :

если Д цел i: строку в Д цел (s, основание, i)

го нлб :=5ин i иначе не конч :* истина ВИ?

I нс конч ;= истина) быв конец, (травыб выбор): начало

(1 : вегр (в из выбор) j подвставка пв; подготовить вставку (в из выбор, пв); ввести вставку (f, пв);

цел с • с из тпоз f, лит lek;

цел к := 0, ло г есть- :• ложь;

пока к < вегр (стр иг выбор) А п есть

203

С.2О2 ГОСТ 27974-88

•цк к +:" 1;

(1 : вегр- ((стр из выбор) [к]) подвставка пв; лог лог :• истина;

подготовить вставку ((стр из выбор) (к],пв); строк s;

для i до вегр пв цк s плюслр

(стризпв (ij I (строк ss) : ss) X повт из пв [i] цк;

для jj до ветра

пока лог :■ лог А "• стрючка окончена (0

Л-4 лог файл окончен (0 цк ввести литеру « kk); лот :■ kk ■ s [jj] кц; ( "^ (есть : = лог) I уст номер литеры (f, с>) кц;

если “’ есть то не конч := истина иначе

выб тип из выбор в

0 логическое й

( y(j] ।

(имя лог b) : b := k = 1

I не кокч := истина). 0 целое ^

(у UJ ।

(имя цел I): i := к

I не конч := истина) быв все;

подготовить вставку (в из шаблон, подаст) конец,

(трафор трафор):

начало выполнить трафор (f, трафор. истина); для j до вегр подаст цк подаст [j] :я (0. ” ") кд;

Г*1 конец, (трабесф трабесф):

([1 : вегр (в иэ трабесф) ] подвставка пв;

(подготовить вставку (в из трабесф, пв), подготовить вставку (в из шаблон, подаст) ); ввести: вставку (f, пв);

ввод (f,y [j])).

(пуст):

(j-i:=l;

подготовить вставку (в из шаблон, подаст)) быв;

204

ГОСТ 2 7974-88 С.20 3

если не конч

то настроить на чтение (f);

(-1 (испр ошибка значения из f) (f) I не-определено) все;

вводя вставку (f, лодвст)

кц

конец

быв кц

иначе нс определено все;

проц (имя файл,'

[ ] об (вводимое, формат)) пуст get f = ф ввод;

Ь) прои^сост Давить Петроку = (имя файл f,

имя строк S, [ ) подрамка пр. цел основание) пуст: качало

лог подав, п Подавляемые й н Пули # :■ метина.

есть знак :■ ложь,

есть пробел := ложь, нет знака := ложь, цел ук Иазатсль ft ЗИ Нака Л :с Ьповт;

прио ' = 8;

оп ! = (строк 8, лит с) лит:

И запрашивает некоторую литеру, содержащуюся в 's'; если читаемая литер не входит в '$', то вызывается процедура обработ ки события, соответствующая ’при ошибке литеры', с предлагаемым 'с* Й если лит к; проверить позицию (Г);

ввести литеру (f, к);

литера в строке (к, лок цел, s) то к

иначе лмт ареал := с;

■если (испр ошибка литеры иэ О (f, предо) го (литера в строке (предл, лок цел, s) I предл I не определено; с)

иначе не определено; с все;

настроить на чтение (f) все;

____on J= (лит S, с) лит: строк (s) ! с;

( ] лит хор цифры ■ "О123456789аЪс<1еГ’ (основание];

s :-" +”;

для к до вегр пр

ик подрамки прк ■ пр [к]; подав := по дав из прк; ввести вставку (f, пв из прк);

до повт из прк

цк лит маркер ■ марк Мз прк;

205

С. 204 ГОСТ 27974-88

если маркер =" d” то з плюспр

(подав Г0"1 хор цифры ! "О”); ПИ :« НСтННа инее маркер =" z” то з плюспр

(полая I ”0”

I .тит с = ((пн I ”-” I ” ”) + хор цифры) ! ”0";

(с *"-” (пн := ложь); с)

инее маркер =”u” V маркер =• 4” то

если есть знак

топи :=ложь; з плюспр ("012 3456789” Г "О”) иначе

лите • ("+ -w + (маркер •"u" 1 ”-”1 '* ”)) ’ “+”;

(с =”♦•• Vc-”-”

I ест» знак :« истина; s [укзн] := с) все

инее маркер = ”v”v маркер = ии то

если есть знак

го пн := ложь; s плюспр ("012 3456789” • ”0”)

инее лит с; есть пробел

10 с ;=•’ + _ ".0123456789” ?'•♦”;

(С = »4-”у с ”-”

I есть знак := истина;

s [укзн] := с

I : «^"л"! пн «ложь; есть знак ;= истина;

s плюспр с)

иначе с:=" +” -.” !”*”;

■ (c-’^Vc»’^”

I есть злак Онегина; з [укэн] := с

I есть пробел :■ истина) все

инее марке р = ” . ” то

s плюспр (подав I ” . " I ”.”!*’.”) инее маркер ■ „е” то s плюспр (подав I ”n” I ’’юХе"! ”w”; "ю"); ест» знак :™лож»; пи .«истина;

s плюспр"*”; укзн := вегр s инее маркер = ” i” то

s плюспр (подав I **i” I ”kl" ! "Г,’ ’"I”): есть знак ^ложь; пн := истина;

s плюспр ”+”; укзн := вегр s инее маркер = ”Ъ" то

s плюспр (да * нет) ) нет;

нет знака :■ истина

инее маркер = "а” то s плюспр

(подав Г’д*1 лите; проверить позицию (f); вывести литеру (f, с);

W

ГОСТ 27974-М С.2О5

с);

нет знака :• истина

инее маркер 3 ”f ’

то пропуск все

кц кц;

если пег знака то s :■ s [2:] все конец;

\Q.3.6. Двоичный обмен

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

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

Для двоичного вывода можно использовать процедуры дю вывод (10.3.6.1.а) и дв. зап (Ю.5.1.Л). для двоичного ввода процедуры дв ввод (10.3.6.2 .а) н дв чит (10.5.1.1) }.

а) проц 5-в двоичное = (имя файл f,провывод х) { ] лит:

с значение вида век тор из литер’, нижняя граница которого равна единице, а верхняя граница зависит от значения "книга нз /,' и от вида и значения данного ’ж', кроме того.

х = из двоичного (f; х. в двоичное (f. х)) С;

Ь) проц 5из двоичного» (имя файл f.

провыводу. [ ]лмтс) прювывод:

с значение, если оно есть, вида значения.

выдаваемого ’у", такое, что

с = в двоичное (f, из двоичного (f. у, с) ) с;

10.3.6.1. Двоичный вывод.

а) проц дв вывод * (имя файл f, [ ] выводимое выв) пуст:

если открыт из f то

настроить на двоичное (0; настроить на запись (0;

для к до вегр выв

цк [ J провывод у = сгрсйвывод выв [к];

для j до вегр у

цк ( ] лит двоими = в двоичное (f, у [j ]) ;

207

€.206 ТОСТ 27974-88

для i до вегр двоили

цк след позиция (0:

настроить на двоичное (f);

имя позиция тпоз * тпоз из f, ппоз = заполи из книга из f:

выб текст из f в

(подвтекст 12):

t2 [р из тпоз]

[1 из тпоз)

[с из тпоз) := двончн (i) быв;

с из тпоз * = I;

если тпоз вне ппоз то цпоз := тпоз инее -> возм установка (О Л позиция (риз ппоз, 1ИЭППОЗ, 1} вне тпоз то ппоз := тпоз;

(сжимаем (f) I

с размеры строчки и страницы, содержащих логический конец книги.

и всех последующих строчек

и страниц мог ут увеличиться с) все

кц

кп кц иначе не определено все;

проц (имя файл, выводимое) пуст put bin • ди вывод; 10.3.6.2. Двоичный ввод.

а) проц дв ввод = (имя файл С. С 1 вво-димое вв) пуст: если открыт из f го

настроить на двоичное (Г); настроить на чтение (f) ; для к до вегр в в

цк [ ] проввод у = строиввод в-в (к];

для j до вегр у

ЦК

провывюд yj = выб у у ] в

< (имя Д цел i): i >, < (имя Д бит г) : г >,

< (имя Д компл мдк) : идк >.

(имя лог Ь): Ь, < (имя Д бит идб): идб >.-

(имя лит с): с, (имя ( ) лит s): s, (кмя строк нс): нс быв;

[ I ; вегр (в двоичное (f, yj)) ) лит двончн;

для i до вегр двоичи

цк след позиция (f); настроить на двоичное (f);

208

ГОСТ 27974-88 С.2О7

имя позиции тпоз = тпоз из f;

двоичн [j] :=

выб текст из f я

(подвтексз t2):

t2 [р ИЗ тпоз] ЦизтПОЭ] (с из тпоз] быв;

с из тпоз ♦:= I кц;

выб у (j) в

< (имя Л цел иди): (из двоичного (f, иди. двоичн» I

(Л цел дц) : или := ДП) >.

< (имя Л веш илн I: (из двоичного (f: идя. двоими) I

(Д веш де) : илн :• дв) >,

^ < (имя Д компл идк):

(из двоичного- (f, идк, двоичн) I

(Д компл дк): идк ;= дк) >.

(имя лог нп); (из двоичною (f. ил, двоими) I (лог я).- ил :» л).

< (имя Д бит ипб) : (из двоичного (f, идб. двоичн) I (Д бит дб): идб := дб) >,

(имя лит ня) : (из двоичного (Г, ил, двоими) I (лит л) . ил ;= л). .

(имя ( ] лит ими): (нз двоичного (f,НМЛ,двоичн) I (лит мл) : имл := мл).

(имя строк ис): (нз двоичного (f. нс. двоичн) )

([ J пит с). нс .= с) быв

ки кц иначе не определено все;

Проа (имя файл. ( ] вводимое) пуст get bin * дв ввод;

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

10 4.1. Системное внушение

Представление снстемиОго-всгуплсыия получается иг нижеследующей формы, к которой могут добавиться дальнейшие формы, не определяемые в настоящем стандарте. {Синтаксис текстов-программы обеспечивает, чгс никакое описание, содержащееся в этом системном вступлении, не может противоречить никакому описанию в стандартном-вступленин. Нредпола гается, что эти дальнейшие формы могли бы содержать описания, нсобхо димые для правильной работы любых сисгсмных-задач. которые могут до ба виться (реализациями, как это предусмотрено в 10.1.2.4).} а) сема *гномы = (сема s; F из $ := ПЕРВ цел := 0; s);

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

Представление {первой} составляющей скстемнойэадачм данном

70S

С. 208 ГОСТ 27974-88

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

а) цк вниз гномы; не определено; вверх защита связей кц

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

остается в этом положении, пока осуществляется рассматриваемая реорганизация.}

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

10.5.1. Собственные «сгуцтелия

Представление собствснного-вступления каждой задачн-пользов-ателя получается нз нижеследующих форм, к которым можно добавить другие такие формы - они могут понадобиться для правильной работы средств, определяемых составляющим библио течным-вступленисм данного текста-Программы {, наПример, описания и вызовы открыть для дополнительных стандартных файлов} , Однако для каждого опредсляющето-ОБОЗНАЧЕ-НИЕ-иидикатора-в-новом-с-новыми! ПАРАМ И-с-СЛОЕМ2-выдающсго-ПРНЗ-НАК, содержащегося в каждой такой дополнительной форме, должен выполняться предикат ‘если ОБОЗНАЧЕНИЕ для ПРИЗНАКА не зависит от 1ПАРГ {7.1.1.3, с} ■{, т е. не может возникнуть противоречия ни с каким описанием, содержащимся в стандартном вступлении} .

а) Д цел Д пред печ И псевдослучайное число И .=

окр (Д макс цел/Д 2);

Д цел L last random =- Д пред печ;

V) проц д печ = Д эст;

Д спел печ (Д пред печ);

проц Л веш L random = Л печ;

с> файл станд ввод , стана вывод, стаял обмен:

имя файл stand in = станд ввод; •

имя файл stand out = станд вывод;

имя файл stand back = станд обмен;

открыть (станд ввод. „ ", стала канал ввода); открыть (станд вывод.., ”.станд канал вывода);

„ открыть (станд обмен, „ станд канал обмена); d) npou печ =(( J об (выводимое.

Проц (имя файл) пуст) х) пуст:

ГОСТ 27974-88 с 209

выиоц (стзнл вывод, х);

ириц (об (выводимое,

проц (имя файл) пуст)) пуст print = печ, мп = печ, write = печ;

е) проц чкт = ( Ц ] об (вводимое,

проц (имя файл) пуст) х) пуст:

ввод (станд ввод, х);

проц (об (вводимое, ирон (имя файл) пуст)) пуст read = чит;

f> проц ф печ = ( ( [ ] об (выводимое, формат ) х) пуст:

ф вывод (станд вывод, х),

проц ф зап = (([ J об (выводимое, формат) к) пуст:

ф вывод (станд вывод, х);

прюн (([ ] об (выводимое, формат}) пуст priutf5 ф печ, write f - ф зап;

g) проц ф чит ([[] об (вводимое.формат) х) пуст:

ф ввод (стана, ввод, х);

проц (( [ ] об (вводимое, формат)) пуст readf = ф чнт;

К) проц дв зап ■ ([ (] выводимое х) пуст:

дв вывод (станд обмен, х);

прок ( ([ | вводимое) пуст write bin = дв зап;

i) проц дв чит = < [ [ ] вводимое х) пуст:

дв ввод (станд обмен, х) ;

Проц ( [ (] вводимое) пуст read bin ■ дв чит;

10.5.. Собственныезак-люче.ни.4

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

a) stop: стоп: снять (станд ввод); снять (станд вывод); снять (станд обмен)

ПРИЛОЖЕНИЯ I Справочное

ИСТОРИЧЕСКАЯ СПРАВКА

Язык Алгол 68 был разработав в рабочей группе 2.1 (РГ 2.1) Международной Федерации по обработке информации- (ИФИП).

В период с 1963 по 1963 гт. на заседаниях РГ 2.1 обсуждались подходы к созданию нового языка и различные проекты языка.

В 19458 г. РГ 2.В после обсуждения ряда. п&слеаавателы<ых перси Я дрюрита описание языка, разработанное в Амстердаме А. ван Всйнгаариеком, Б. Майу.Дж. Пеком и К. Хостером, Этот язык, попоивший по году принятия название Алгол 68. был одоб-

211

С.210 ГОСТ 27974-38

рен для публикации Генеральной ассамблеей ИФИП. Сообщение об Алголе 68 было опубликовало на английском языке (A. van Wijn^aatdcn (Editor).Н.1. Mailloux.J.E.L. Peck anil CHA Ko»te/. Report on the Algorithmic Language ALGOL 68, Nunierixche Mathe matik, VoL 14, pp. 19-118, 1969) а также переделено на рил других тыков, включая русский (Сообщение об алгоритмическом языке Алгол 68: Пер. с англ. А. А- Берса, А. П. Ершова, Л. П. Змиевской, А. Ф. Papa J/ Кибернетика. «• Киев. 1969. - 4'6, -1970. - №1.

В последующие годы Алгол 68 обсуждался и испытывался как членами РГ 2.1. так и пне ее. что привело к разработке нового вяривятя языка, содержащего иглы я ряд изменения, особенно- в способе описания. Новый вариант в 1974 г. был принят РГ 2.1, затем утвержден техническим комитетом 2 (ТК 2) по программированию ИФИП и одобрен для публикации Генеральной Ассамблеей ИФИП. Он был опубликован в 197$ г. (Revised Report on the Algorithmic Language ALGOL 68. Edited by A van "WSiyjaar-den. BJ.MaiUoux, J.E.L Peck, C. HA. Koster. MSinnoff, C.H. Lindsey, L.G.L.r. Woottons and R.G. Fisker. Acta informatics..Vol. 5. Fasc. 1-3, 197$).

Эти публикация была принята в качество окончательного определяющего документ» для Алгола 68, не подлежащего каким бы то ни было изменениям. Различные дополнительные возможности, предлагавшиеся в дальнейшем реализаторами языка, а также самой РГ 2.1, официально нс включены в Алгол 68 и нс отражены в настоящем стандарте.

Алгол 68 разрабатывался как международный язык программирования, поэтому определяющий Документ, хотя н написан иа английском языке и использует служебные слова и обозначения па основе английского языка, предусматривает возможность создании в соотвенгиия с некоторыми правилами версий Алгола 68 для других национальных языков и переводов определяющего документ иа др угле языки. Перевод на русский язык одновременно содержит и русскую .версию языка Алгол 68. позволяющую наряду с английскими служебными словами и обозначениями использонать служебные слова и обозначена на основе русского языка. Данный перевод был рассмотрен и примят временной научно -технической комиссией (ВИТК). спецжлъно создал-ной для згой пели при Государственном Комитете Совета Министров СССР по науке и текинке (ГКНТ) ■ 1976 г. и утвержден ГКНТ в качестве определяющего документа для русской версии Алгола 68. Этот документ опубликован в 1979 г. параллельное английским текстом (Пересмотренное сообщение об Алголе 68; Ред. А. Ван Вейн гаярден, Б. Майу. Дж. Пек, К. Костер. М. Скидов. Ч. Линдси. Л. Меертенс. Р. Фи скор: Пер с англ А. А. Берса, под ред. А П Ершова — М.: Мир, 1979) .

Настоящий стандарт воспроизводит часть публикации 1979 г. с минимальными измен синям и технического характера.

Требования к машинному представлению программы, содержащиеся в приложении 2, также основаны на документе ИФИП (Wilfred J. Hansen. Hendrik Boom. T he Report on the standard hardwire representation for ALGOL 68 ALGOL Bulletin. 40. pp. 2$ 4», примятом: IT 2.1. утвержденном TK 2 и одобренном дня публикации Генеральной Ассамблеей ИФИП. К букильном еще лот документ не может был принят.тля русской версии из эе необходимости одновременного использования русского и латинского алфавитов и особенностей символьных наборов отечественных, устройств подготовки и отображения информации. Правила машинного представления для русской версии Алгола 68 неоднократно обсуждались ВИТК и рабочей группой по алго ритмическому языку Алгол 63 (РГ А6В) комиссии по языкам и системам программирования при ГКНТ. ВНТК принта ияр-мант машинного представления, предложенный В. В. Бролем и впоследствии реалкзопан юн й В. Б. Яковлевым в трансляторе для МИК „Эльбрус".

При подготовке настоящего стандарта В. В. Бролем и В. Б. Яковлевым с учетом опыта использования реализации на МВК ..Эльбрус" разработан новый паризит мшпкм-иого представления программ на Алголе 68.

212

ГОСТ 27974-88 С.211

ПРИЛОЖЕНИЕ 2

Обязаз«льнас

ТРЕБОВАНИЯ К МАШИННОМУ ПРЕДСТАВЛЕНИЮ ПРОГРАММЫ

1-ОПРЕДЕЛЕНИЯ

1.1. Абстрактная Jiiacpa - эго одна из следующих; 152 литер:

буквы латинского алфавита:

А, В, С, D, Е, F, G, Н. I. J. К. L. М. X. О. Р. О. R. S. Г. U, V, W. X. V. Z, a. b.c. d, е,f.g. h, i.j.kj. m. n. о.р. q, r,j, t.u.v.w.x. у. г

буквы русского алфавита:

< А. Б, В, Г, Д, Е, Е. Ж. 3. И, Й. К, Л. М, Н. О, П. Р. С. Т, У. Ф X. II, ч, ш( щ, ъ. ы.

Ь. Э. Ю. Я.

а, б, в. г, л, е, «. ж, з, и, й. к, л, м, и. а, л. р, с, т. у. ф, к. ц, т, ш, на. ь, ы, ь. э. ю. я цифры:

О. I, 2. 3, 4,5.6, 7, 8. 9

Ярочиелитеры:.

пробел" *д%'(3 •*,-./:; < ш > е | t- I

Представление программы на Алголе 68 определяю! как разделенную на строчки последовательность абетрзклкых литер.

1.2. Конкретная литера - это некоторая литера, имеющаяся на устройстве ввода-вывода. Каждая такая литера составлена из множества, знаков и кодов в соответствии с местными со глашениями.

1.3. Разделитель — это особенноеть типографского набора (n. 9-4.d), начало или конец текста программы: или любая абстрактная литера, отличная от буквы, цифры или знака подчеркивания. Слова и выделенные слова ограничивание* разделителями.

. 1.4. Две строки литер соприкасаются, если между ними нет литер или особенностей типографского набора. Если одна из строк литер следует за или предшествует другой, то они также соприкасаются.

1 5. Выделенное слово — это:

любое представление, составленное из выделенных букв или цифр в эталонном языке (подраздел 9.4) (т.е. символы-выделенное-СЛОВО и представления, у качанные вп 9 4.1 как выделенные);

символ, предстаалйюмй выделенным словом;

литеры, записывающие выделенное слово способом, специфицированным а поа-разделе 3.4 настоящегоПрИгеоженат.

1.6. Слово — это символ-Слово (подпункт 9.4.2.2.а), например, - ..конец файла” - это- ело по.

1.7. Слог непустая последовательность букв и цифр (слово „конец файла", использованное так, как в п.3.4.1 настоящего приложения, состоит из двух слогов}.

2. ПРЕДСТАВЛЕНИЕ КОНСТРУКТОВ АЛГОЛА 68

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

Если предусмотрено несколько конкретных литер (например, для „1” и „I" и „!"> то они должны эквивалентно обрабатываться всюду, кроме как в строках и при распечатке протрамм, где каждая представляет саму себя.

2.2. В каждом алфавите ссотяетсгиующие друг другу прописные и строчные бук-Ш эквивалентна, за исключением ситуаций, предусмютренных в подразделе 1! и п.3.5.2 настоящего приложении.

213

С.212 ГОСТ 27974-аЯ

2.3. Конструкт в языке представления получается заменой символов на их пред-отдаления. Представление для каждого символа дастся в терминах абстрактных литер. Кодирование конструктов в языке представления для машинной обработки осуществляется заменой каждой абстрактной литеры на соответствующую ей конкретную литеру и вставкой особенностей типографского набора (там. где это разрешено).

В некоторых реализациях отдельные конкретные литеры могут нс иметь представлений на устройствах ввода-вывода. В таких случаях реализация дол жна обеспечить дополнительное представление соответствующих им абстрактных литер (например. в виде комбинаций конкретных литер, доступных на этих устройствах). (Три этом, в частности, допускается расширен не списка зврезеряиропипгы х слов из подпункта 5.4.3.3 настоящего приложения, а также введение альтернативных обозначений из раздела 10 и расширение списка представлений символов из п.94.1 настоящего стандарта альтернативными представлениями, использующими только доступные конкретные литеры.

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

3.ОТДЕЛИШЬ ПРЕДСТАВЛЕНИЯ

3.1. Элементы строки

3.1.1. Множество эле ментов-строки (подпункт 8.1 4.1.1» - это множество абстрактных литер без кавычки и апострофа,кос символе м-образ-кавычки и символом-образ-апострофа. Значение каждой абстрактной литеры есть сама литера. Соответствующие друг другу прописные и строчные буквы имеют различные естественные значения Симол-обр-аэ-кап-ычки записывают двумя соприкасающимися кавычками и ст естественным значением является кавычка. Символ «збриз апострофа записывают двумя соприкасающимися апострофами и его- естественным значением является апостроф (оДМН &ПлСтр<>ф может МспояьэоИаГбсЯ п реализациях хак регистровая лигйра) .

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

см м во. -1 -а пчхтроф, сим вол от крыть, с им по.з-образов-у правдоютих-литер, сим вол-эа крыть.

Образы лете? в списке могут задаваться целыми десятичными числами, а также их обозначениями в русской или латинской нотации по ГОСТ 27465 и должны разделяться запятыми.

3.1.2. Дополнительная особенность типографского набора - „разрыв строки'* -предусмотрена для использования только внутри изображений строк и изображений. литерных и записывается как кавычка с пос ледующи ми одной шеи более особенностями типографе koi о набора, отличными от разрыва строки, с последующей еще одной кавычкой.

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

3.2. Элементы прагматов

3.2.S. Послсдоватслыюсгъю-элемеэпов-ПОЯСНЕНИЙ-О^ОРМЛЕННЫХ (п.9.2.1.с) может служите, любая последовательность литер (не обязательно абстрактных), в которую не входит последовательность («месте с разделителями), представляющая сам симнол ПОЯСНЕНИЕОФОРМ ЛЕННЫЙ (т к. последние^ завершается прагмят). В реализации возможны, однако, дальнейшие ограничения на последовательность литер, по Пустимых в прагматах (ио только не в примечаниях).

214

ГОСТ 27974-88 С.213

3.2.2. Предусмотрены шесть стандартных элементов-прагм* тов: СТРАНИЦА (РАСЕ». ТЧК (POINT). ВР<UPPER), РЕЗ (RES). ЗАПОМНИТЬ (PUSH). ВОССТАНОВИТЬ (ЮР) (В скобках английские зклкваляпы эпемеитов-прдгматов). Эти элемен-гы должны распознаваться хотя бы в их минимальной форме:

Символ -пратмат-ОФОРМ ЛЕН ИЫЙ, элемент.

Символ -прагматОФОРМ ЛЕН НЫЙ.

Каждый из перечисленных элементов tipai масон записывается хак пос.-с-едовате.сы-поста букв, которым могут предшествовать или за которыми могут следовать особенности типографского набора. (Во всех выделяющих режимах символ?прагма? может быть записан как „ПРАГМ” с последу кипим разделителем) -

3.2.3. /Голая страница

3.2.3.1. При распечатке некоторого конструкта в конкретных литерах с помощью процессора Алгол 68 прагма?, содержащий элемент прагма га СТРАНИЦА (PAGE), указывает. что строчку, следующую за строчкой, содержащей замыкающий символ-праг-мат. печатают с начала новой страницы (Прагмат СТРАНИЦА не является, однако, особенноегъю типографского набора).

3.2 4. Запоминание режима в<я<>с.-1смия

3.2.4.1. Прагмат. содержащий элемент-прагмат а ЗАПОМНИТЬ (PUSH), указывает, что значение действующего в овином месте прагмага, определяющего режим выделения (подраздел 3^. настоящего приложения), запоминается для последующего восстановления

3.2.4.2. Прагмат. содержащий элемент--прагмат а ВОССТАНОВИТЬ (РОГ), связывается с последним, из прагматов. содержащих элсмеитчсрагмата ЗАПОМНИТЬ, стене связанным с другим прагматом, содержащим элемент-орвгмлта ВОССТАНОВИТЬ (если такой есть), л восстал-сминает действие того из прагматом. задающих режим виде-пенни, который действовал перед этим прагмами.

3.3. О со б с а но с? и типографского набора

3.3.1 Особенностями типографского набора являются пробел, новая строчка н разрыв строки. Новая строчка может быта одной конкретной литерой или физическим явлением, подобным концу записи Разрыв строки испопмуюг только в изображена-я хетро ки

3.4. Слова и выделенные слона

3.4.1. Представление слои и выделенных слов определяют „режим выделения”. Существует три режима ныпелення: выделение точкой, выделение прописными буквами. резервирование слов.

Новый режим вводится прагматом. содержат дим один из эпементав-прагматв ТЧК (POINT ), BP (UPPER), РЕЗ (RES) и начинает действовать сразу же после замыкающего символа-прагмат. Режим нс действует на „оформление” представления (так. п режимах ВР и РЕЗ- „ПРАГМ” соответствует „ПРАГМ”) Приводимые ниже правила требуют наличия разделителя в некоторой позиции. В качестве разделителей можно использовать особенности типографскою набор*. Слова различаются только тогда, когда различны конкатенации их подслой, например, „конец файла" можес быть записан также как „коне цфайла".

3.4.L1. В режиме выделения точкой (ТЧК) выделенные слом представляют еле дующим образом:

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

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

за выделенным словом должен следовать разделитель.

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

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

сан I OC I 27974-вз

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

«лк слог не явершк-зся литкой подчеркивания, то после нею вояжей слеза-ваг ь разделитель

14.1 2. В режиме выделения прописными буквами (ВИ слова к выделенные слова представляют как в режиме ТЧК. но только с нс пользованием пополз тигельных пра 8И.Т

в выделенных словах нс должно быть смешения прописных и строчных букв:

точка может быть опушена перед выделенным словом из прописных букв, если ему предшествует разделитель, отличный от точки, строчная буква или цифра, не ян-ляюшвяся ..прописной цифрой4. ..Прописная цифра" — это цифра, которой предаиест-вуст прописная буква или прописная цифра;

за выделенным словом из прописных буки не обязатс-лмто сталии, разделитель, если ад ним следует с тронная буква;

прописные буквы могут быть использованы только а выделенных словах и в качестве злемеитотт-о спайного-набора (Подпункт Я. 1.4. Lei.

3.4 К З- В режиме реэервзтронания>слов (РЕЗ) слова и выделенные слова Представляют как в режиме ТЧК. ио с использоозлисм дополнительных правил.

точка может «пускаться перед зарезервированными словами, заданными н и. 9.4- I как представления для символа языка, составленными из букв русского алфавита:

БИТ БЫВ В ВЕЩ ВИД ВСЕ ВЫБ ВЫХОД ГЛОБ ДЛИН ПЛЯ ДО

ЕСЛИ ЕСТЬ ИЗ ИМЕНИ ИМЯ ИНАЧЕ ИНЕС ИСТИНА КАНАЛ КОМПЛ КОН КОНЕЦ КОР КЦ ЛИБО ЛИВЫБ ЛИТ ЛОГ ЛОЖЬ ЛОК НА НАЧ НАЧАЛО НЕСТЬ НИЛ ОБ 0(101 ПАР ПОДВ ПОКА ПРАГМ ПРИМ ПРИО ПРОПУСК ПРОЦ ПУСТ ПУСТОЕ С СЕМА СКИП СЛОГ СГ СТРУКТ ТО Ф ФАЙЛ ФОРМАТ ЦЕЛ ЦК ЧЕРЕЗ Ш АГ и букв латинского алфавит а:

AT BEGIN BITS BOOL BY BY IES CASE CHANNEL CHAR CO

COMMENT COM Pl DDFLimSF EM PT Y END ESAC EXIT

FALSE IT FILE HEX FOK FORMAT FROM CO GOTO HEAP ,

IF IN INT IS ISNT LOG 1 ONG MODI NIL OD OF OP OUSE

OUT PAR PR PRAGMA! PR1O PROC REAL RET SI MA SHORE

SKIP STRING STRUCT THEN TO TRUE UNION VOID- WHll E если им лрегииеслиует разделитель, отличный от точки;

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

3.5. Составные пр ед ст а в-лен ня

3 5.1. Некоторые представления. приведенные в и 94 L составленные из после довагслытостн двух или более литер, мс являвшихся буквами (■• ". =;, ;^. |:, =:, :/-:). являются тккдедователынхггями абстрактных литер, соатстстнуютих этим символам.

3.5.2. Представление любого сммвииа-ПОНЯ'ГИЕ1-«крсд-ЛОНЯТИЕМ2 и вяжет-св представлением для снмвопа-ПОНЯТИЕ I, за которым следует представление для символа-ПО НЯ ТИЕ 2, (символы-ПОНЯТИЕ иперед-ПОНЯТИЕМ 2 являются составными обоэначеатиями-оперяиий. упомянутыми в подпунктах 9.4.2 2. 6,в).

36 Другие представления

3.6.1. Любой символ, предстаипение которого и подразделе 9.4- соответствует абстрактной литере, представляется этой литерой. Симлол-на-деся-ть-в-степсяи. символ-ЛЛЮС-я-МЭ и символкрагхое-гаримечание не имеют представлений.

4. Обвеем

д L Представление офитов для обмена должно использовать только абстрактные литеры (с тем, чтобы ввод можно было подготавливать, а вывод интер нрегиро-

21*

I OC-Г 27974-88С215

Bait без ссылки на конкретную реализацию). Запросы к обсгаиопке зависят от аб страстных литер следующим образом:

Да „Т" .ипмекал иля „Л" русская'\

net „Р” латинская иля „Н“ русская;

литера ошибки

пробел ,.м“.

4.1. Вместо абстрактных литер для снмаоланадесять-в-стспеим и для символа-плюс-и-на необходимо использовать литеры „К" латинская или „Е” русская и „Г латинская или „И” русская.

Соответствующие друг другу прописные и строчные буквы эквивалентны, когда они входят яри обмене в представление любою «течения, отличного от жвчемий вн Лои ..ли терны Я" и „.вектор из .-литерных".

4.3. Строковые значения, полученные в результате обмена и операции ПРЕД (REFRi. могут содержат» литеры, которые не соответствуя^ абстрактным литерам.

ПРИЛОЖЕНИЕ 3 Справочное

УКАЗА ГЕЛЬ ПРИМЕНЯЕМЫХ В СТАНДАРТЕ ПОНЯТИЙ

I. Технические термины

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

абстракции (идя протопонятий)

1.1.4 2.Ь

abstraction (protonoiion of a pro-

активное (действие)

2.1.4.3 а

tonotion.) active (action)

альтернатива

1J.3.2.C

alternative

апостроф

] 1.3.1.а

apostrophe

арифметическое значение

2 1.3.1 а

arithmetic value

большой синтаксический знак

1.1.3.1.а

large syntactic mark

вариант (значения)

4.4.2.С

variant (of a value)

вариант языка ALGOL 68

LL5.b

variant of ALGOL 68

{векторизация}

6

^to*w3

версия (обюзмачекил-операцми)

10 1.3 Шаг 3

version (of an operator)

верхняя граница

гл.зл.ь

upper bound

вещественное число

2.1 3.I.*

real num ber

ВИП

2.1.1.2.Ь

made

видимое

2.1.5 .Г 1.1.3.2.11

visible

в (конструкт в окружении)

2.1.5.Ь

in (a construct tn an environ)

вместо (кортежа)

3.2.2а

С 4 4 Э

In place of

{внешний объект}

0.4 .4.2

2.1.1

^external object}

вновь созданное (имя)

{внутренний объект )

2.1.3.2 а

ne*ly created ( name)

2.1.1

/intern»! object

217

С. 216 ГОСТ 27974 -88

возобновить (действие)

{ временное имя}

в смысле численного анализа

{вставка}

выбирать (массив по отрезку)

выбирать (массив по 'СЛОВУ')

2.1.4.3.1

2.1.3.6л

2,1 3.)л 1034.3.144

2.1.3.4Д

2.1.3.4.1с

выбирать (подыми по изыске у)

2.1.34g

выбирать (подыми по ‘СЛОВУ’)

2.1.3.3.е

выбирать (поле по 'СЛОВУ')

2.1.3.3л

выбирать (поле по указателю-

2 1.5.В

поля)

выбирать (сцему ей состава-

3.42.Ь

ВЫБИРАЮЩЕГО- предложим)

избирать (элемент по индексу)

2.1.3.4л

{выборка нз массива}

5.3.1

выдача (сцены)

2.1.24

вызвать (процедуру)

2.1.4.1-Ъ

2.13.c.d

5.4.3.2-b

(выписывать (вил)}

2.1.J.2

выполняться (для предикатов)

1.3.2.

вырожденный паспорт

2.1.3.4-с

выстраивание

10.3.2.3л

генерировать (имя по отрезку)

2 1.3.4.j

генерировать (имя по'СЛОВУ')

2.1J.4J

тип ср альтернатива

1.1.3.4.С

гм пер по мяте

1.1.3.1л

гмдерпр никло

1.1.3.44

граница

2.1.3.44

|-р ан ичиги пара

2.1.3.44

двоеточие

1.1.3.1л

действие

2.1.4.1л

де ленное ни (дли армфметн

2.1.3.1л

ческнх значений)

дерево порождения

l.UJ.f

Дефис

1.1.3.1л

{динамический (повторитель)}

10.3.4.1.144

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

8.1.1.2

сеть (является) (для гипср-

8.1.2.2л. b

8.1.4.24

8.2.24, с

2 1.5 е

поклтий)

завершаться (о действии)

2.1.4.3л. d

{завести (файл на канале)}

10.3.1.4.СС

{закрыть (файл)}

10.3Л.4.1Г

заложение (ги лер понятие зало

1.1.4.1л

жено в протооонятис)

{запрос к обстановке}

10.2

запускать (действие)

2.1.4.34. с

Запятая

1.1.3.1л

resume (an action) f transient name } хеше of numerical analysis t insertion}

select (a turn selecting a multiple value)

select (a 'TAG' selecting я multiple value)

select (an index selecting a subname)

select (a 'TAG* selecting a subnanic) select (a 'TAC selecting a field) select (a fjeld-selector selecting a field)

chosen (scene of a сЬоокг-CHOI-

С&4нис)

select (an index selecting an element)

{ multiple selection J yield (of a scene)

calling (of a routine)

-{spelling (of a mode)} hold (of a predicate) flat descriptor straightening

generate (a t rim generating a name) genera te (i 'TAG' generating a name) hyper alternative hyper notion hyper-rule bound bound pair colon action

divided by (of arithmetic values)

production tree hyphen

{dynamic (replicator)} intjuisic vitae

is ( of hyp emotions)

complete (an action)

■(establish (a tile on. a channel)}

/close (a file)}

envelop [a protonotlon enveloping;

■ a hypernotion)

1 environment enquiry } initiate (an action)

comma

218

ГОСТ 27974 -8в С.217

звездочка

ЭВСНЮ

значение

(hoi а ) Ч

кпеи тифигсировать {для киан-кагоров)

из (конструкт из конструкта)

из (конструкт из сиены)

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

1.1.11л

1.1.3.2.d

2.1.1.1л

3.0.2

7.2.2.Ь

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

имя пол видного (именующее массив)

имя фиксированного (именую-шее массив)

индекс (дли выбора элемента) исполнение

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

Гспоопхтмос значение

хавал)

{книга)

( кодирующая таблица }

конструкт

конструкт в языке представления

[крепкая (позиция)}

{крепко связаны }

/ куча }

(ликвидировать (файл)}

(литера!

( литерал У

{ логический конец }

{ логический файл } ликилитующе е о кружение малый синтаксический знак

( маркер}

массив

меньше (наследник мены не, чем дерево порождения)

меньше чем (для арифметических значений)

мегалоня-тме

метаправило

минус (длм «рифмогилсских значений)

младше чем (область действия)

f мягкая (позиимя)З набор!

налдействис

хадь язык

наибольший целочисленный

эквивалент (литеры)

2.1 Ля

2.1.1.Id

2.1.1.Id

3.0.2

2.1.2.е

2.1.3.2 а

2.1.2.с

2.1.12л

2.1.3.4.f

i,1.14.f

2.1.3.4л

2.1.4.1л

2.1.4.2.f

2.1.3 l.f

10.3.1.2

10.3.1.1

10.3.1.2

1.1.12.е

9.3.Ь

6.1.1

7.1.1

5.2.3

10.ll.4hh

2.1.3 l.g

IO.14.Ll.ce

10.3.1.1ла

10.3.1-5 .dd

5.2.12.Ъ

1.1.3.1л

10.3.4 l.l.cc

2.1.3.4 л

1.1.3.241

2.1.2d

2.1.Э.1.е

1.1.3.14

1.1.3 Э.Ъ

2.1.3.1.с

2.1.2.Г

6.1.1

10.3.4.Мда

2.1.4.2.С

2.2.2л

2.1.3.14

asterisk member value {teach) identify (an indicator identifying

an indicator)

of (construed of a construct)

of (construct of a scene)

of (environ of a scene) of (nest of л construct) refer to

access (inside a locale)

name

flexible name (referring to a multiple value)

fixed name (referring, to a multiple value)

index (to select an ele went) ebbo rattorf

elaborate collaterally

truth value

(channel J

(book)

(conversion key} construed

construct UI * representation Ian-

. ru«e

I firm (petition) J

(firmly related}

(h«p)

(scratch (afile)}

character

(literal?

[ logical end J

(logical file)

local environ

small syntactic mark ( marker} multiple value

smaller (descendent smaller Thar a production IRC)

smaller than (of arithmetic values)

metanotion

mctaproductron rule minus (of arithmetic values)

newer (of scopes)

■{soft (position)}

{collection J

direct paten t

super language

largest integral equivalent (of a character)

219

С.218 ГОСТ 279Т4-88

наследник

наследное пей ств не

1.1.3.?.#

2.1.4.2.b

начал, именован, (для имен)

2.1.3.2л

неактивное действие

2.1.4.3 л

невидимое

- I.l-3.2.h

неделимое действие

2.) .4.2-я

[ независимое л (свойств))

7.1.1

Незанятый участок

2.1.1.1-Ь

нелокалиэуюшее (окружение)

3.2.2Ь

необходимое (окружение для

7,2-З.с

сцены)

не определено

1.1.4.3 а

несовместимые действия

2.1.4.2.е

>гнжняя граница

2.1.3.4.Ь

область действия (значения)

2.1.1.3д

область действия (о кружения)

2.1.1.3 b

{обмен }

10.3

обобщить (целое число до ве

2.1.2.Л

щественного)

2.1.3.1-е

{обобщение }

6

обозначать (гиперпонятие

1.1.4.1.а

обозначает юро гопонжгие)

обозначать (парапонятие обо

l.M.Z.a

значает конструкт)

{ О бь«типение)

б

объединять из (видов)

2.1.3.6 а

объект

2.1-1

{ожидать}

10.3.4.1.1.11

окружение

[операция синхронизации }

2.1.1.1.С

10.2

{описание обмена }

10.2

определяющий блок (для инди

7.2.2л

катора)

1.1.4.2.С

опускаемые пшерпокстия

[опустошение }

6

осмысленная программа

1.1.4.3.С

особенности типографского

9 4 ,d

набора

[осугцестянтт. вставку}

10.3.4.1.1 .ее

{ осуществят!, (размещение)}

10.3.4.1.1 .(Г

{ открыть (-файл) ]

10.3 1.4 dd

отрезок

2.1-3.4-h

Параллельное пейств не

10.2.4.

па рагаоиятие

1.1.4.2л

паспорт

2.1.3.4-b

первичное окружение

2.2.2.а

{перегруженное (обозначение-

4,5

операции)} •

1.13.4.Г

{ перекрестные ссыл ки (в енн-

тэ кейсе)}

[переполнение}

2.1.4.3.h

{ повторитель}

10.3.4.1.1 .dd

{подавляемая рамка)

10.3.4.1.1.сс

{подготовить (шаблон)}

10.34.1.1 .dd

[пощейстаис)

2.1.4.2.а

подобно, (для деревьев порож

1.1.3.2 k

дения}

desceatdenl

descendent action

make to refer to (o f a name) itiaClivC (Action) invisible

inseparable action

{independence Cot properties)} vacant locale nonlocal

necessary for (in environ tor a scene»

undefined

incompatible actions lower,bound scope (OF a value) scope (of an environ) {transput}

widersabte to (an integer to areal number)

{ widening}

de Senate (a hypernation dleagna-tiniga protonotaon)

designate (a paranotion designating a construct)

{ uniting}

united front (of modes)

object

{expect} environ [synchronization operation } Stranspu t declaration}

eftning range (of an endacator)

elidible hypernotion {voiding J meaningful program typographical display feature

[perform art insertion }

{perform (an alignment)} {open (a file)} trim

parallel action

paranotion

descriptor primal en viron {overload J

(cross-reference (in the syntax)}

{overflow}

{replicator}

{suppressed frame}

{staticize (a picture)}

direct action

akin (a production tree to a production tree)

220

ГОСТ 27974-SS С.219

подъязык

2.2.2.с

ПОДЫМИ

2-1.2«

Поле

2.1.3.3л

ПОЛуЧНЫм Простой подста-

м.з.з.а

НОНКОЙ

получаться согласованной

М.ЗЛ.е

полстяно вкой

получать доступ (к значению-

2.1.2.С

внутри участка)

понятие

1.1.3.1л

порождать

М.3.2.Г

порождающее правило

l.l-3.2.b

после (ятекстуальном порядке)

1.1.3.2л

последовательное действие

2.1.4.2л

[последовательный доступ)

10.3.1 .ЭЛ

постоянное соотношение

2.1.2.В

построит (имя из имени)

6.6.2 с

построить (массив ил энвченмя)

66-2.Ь

{правильное!»- построения}

7.4

праг магическое замечание

1.1.2

предикат

13 .2

предшоствомт (в текстуаль

l.l.3.2j

ном порядке)

£ГфСДЫСПОПНСНИ с }

2.1.4.1.С

прежде (а текстуальном по

Ы.3,2.1

рядке)

прекращать (действие)

2 1.4.3.е

прервать (действие)

2.1.4.3.h

{приводимость }

6

приемлемо для (значение при

2.1.34.d

емлемо ОЛЯ вида)

пр mu-гака вливать (действие)

2Л.4.3.Г

приписать (значение или сиену

4.&2.М

индикатору)

присваивать (значение имени)

5.2.1.2.b

программа а строгом языке

U.l.b

10.1.2

10.3.1.3.ff

{ произвольный доступ}

прообраз

1.1.3.2Г

просматривать

10.3.2.3.d

просим» пипептовка

1.1.3.3 d

простое значение

2.1.3.1л

протопопа тис

l.l.31.b

процедура

2.1.3.5л

{ процедура обработки события}

10.3.1.3

£ процедур а реакции }

10.3.1.3

процесс

10.2.4.

прочий синтаксический знак

1.1.3.1.a

Прямой наследник

1 1.3.2.f

псевдоимя

2.1.3.2л

пссвдоггримечаиис

10 1.3 .Шаг ?

пустое значение

2.1.3.1.h

развертывать (сцену из опися-

4.6.2.C

тедя)

sublanguage

surname field

substitute simply

substitute consistently

make to access (a value inside a locale)

notion produce production rule after (in the textual older) serial action

{sequential access}

permanent relationship

built (the name built from a name) built (Use multiple* vaJue built from a value)

{well formed J pragmatic remark predicate

precede (in the textual ordes)

{ pre elaboration}

before (in the textual order)

terminate (an action) interrupt (enaction)

{»« }

acceptable to (a value acceptable to a mode)

halt (an action)

ascribe (a value or scene to an indicator)

assign (a val ue so a name)

program in the strict language

{random access)

original

travel w

simple substitute plain value pt ot emotion

routine

{event routine j

{on routine)

process

ot her syntactic mark duccS descendent nd

pseudo-comment

void analue

develop (a scene from a declare»)

221

С. 220 ГОСТ 27974-88

размер (арифметического зиа-тения)

/размещение }

[разыменование}

{рамка}

(раскрытая (позиция)/

распроцедуривхине

реализация (Алгола 6-8)

реализация эталонного языка

2.1.1.1 b size- (от л л aril h-metic value)

lO.JA.l.l.fT (alignment}

6 f dereferencing}

10.3.3. l.bb f frame}

6.1.1 f meek (position)}

6 (deproced wring}

2.2.2.C implementation (of ALGOL 68)

9.3.C ianpletQeniationi of the reference

{редактировать (строку)}

(свойство}

(связать (книгу с файлом)}

семантика

[сжимаемо}

(сильная (позиция)}

символ

синтаксис

скрытый элемент

(слабая (позиция) }

следовать (я текстуальном порядке)

смысл

language

10.3.4.1.ljj {edit (a suing)}

2.1.1.1.b

3-0.2 {property}

30.3.1.4.bb flin* (a book with a file)}

1.1.1 semantic».

10.3.1.3.If {compressible}

6.1.1 {strong (position)}

1.1.3.1.f symbol

1.1.1 syntax

2.1.3.4.C ghost element

6.1.1 {weak (position)}

3.1.3.2j follow (tn the textual order)

1-1.4 meaning

2.1.4.1.a

снабжать подымемамн

2.1.3.3.B endow with sub-names

{ снять файл }

{ совместно при вводе}

{ совместимо при вывела} совместное действие

совместное исполнение

согласованная подстановка содержать (для гиператоатятий) содержать (для деревьеп по

рождении)

содержать (для прото понятий)

{ создать (файл на канал*)} соотношение

( составлять (строку)} составляющий

СОСТавнёе Имя составное значение (состояние } специфицировать (вид аниса-телем)

1 список данных }

справе длило (для соотношений) среда

{стандартная функция]

стандартная я зы ковах обстановка

Стандартное обозначемко-опе-рации}

{елмдартаий вад}

старше чем- (область действия»

2.1.3.4.g

10.3.1.4.gg { lock (a file)}

10.3.4.1.l.ii {input compatible}

10 3.4 ll .hh { output compatible}

2.1.4.2.a collateral action

2.1.4.2.Г collateral elaboration

11.3 4.e consistent substitute

l.l.4.l.b comtain (by a hypernotion)

1.1.3.2.g contain (by a productton tree)

3.1.4.1.b contain (by a protonotion)

10.3.1 -4.ee {create (■ De on a channel)}

2.1.2 a relationship

10.3.4 1.3 kk findit (a string)}

1.1.4.2.d constituent

2.1.3.2.b stowed name

2.1.1.1л stowed value

10.3.1.3 {state}

4 6- 2.d specify (a declare: specifying a mo

de)

10.3.3 {data Ии}

2.1.2л bold (of a relationship)

3.0.2 nest

10.2 f standard function}

1.1-1 standard environment

1.0.2 ( standard operator}

10.2 { standard mode }

2.1.2.f older (of scopes)

222

ГОСТ 2 7974-88 С.2 21

строгий язык

1.1.l.b

l.LX2.«

«гbet language

10.1.2

Строка}

8.3

{ string }

структура

2.1.3.3л

structured value

сиена

2 1.l.l.d

scene

такая же, как я (область действия)

2.1.2.f

tame at (of scopes)

текстуальный порядок

l.l.3.2.i

tex tual order

терминальное .мсгаосрождекие

1.1.3.3л

terminal metapr eduction (of a rnc-

(меггалонятия)

tanotion)

терминальное порождение (де

1.1 3.2Д

terminal production {of a producti

рева порождения)

on tree)

терминальное порождение

1.1.3.2.Г

terminal production (of a notion)

(понятия)

точка

1.1.3.1л

point

точка с запятой

1.1.3.1л

semicolon

транзитивное соотношение

2.1.2л

transitive relationship

трансформация

10.3.4.1.2.Ъ

transform

[трафарет}

10.3-4. l_l.ee

[pattern}

требоваться

1.1.4.3 .Ь

required

тупик

1.1.3.2.6

blind alley

удлинять Сопя арифметических

2.1.26

lengthening (of arithmetic values)

значений)

2.1.3.1.е

умножить (арифметические

2-1.3 i .e

times (of frithmetic values)

значения)

{управление (строкой посред

10.3.4.1.1.66

{control (a string by a pattern)}

ством трафарет)}

{уравнивание}

3-4.1

{balancing:}

устамавпивап. (окружение

3.2.2.b

establish (an environ around an en

вокруг окружения)

Л

viron)

участок

<Ф»М

2.1.1.1 Ь

10.3.1.3

locate

W

[ физ ический файл }

10.3.1.5 сс

I physical fife}

фиксировать (для видов)

2.1 3.6 Ь

defies (a mode to a mode)

[формат}

10.3.4

£ format}

цело* число

2.1.3.1л

integer

целочисленный эквивалент

2.1.3.1Л

integral equivalent (of a character)

(литеры)

численный анализ в смысле

2.1.3.1 *

numerical analysis, in the sense of

число добавочных размеров

10.2.1J.1

number of extra widths

число добавочных удлинений

2.1.3.16

number of e xtra tingthi

число добавочных укорочений

10.2.1 J.1

number of extra short hs

2.1.3.16

{шаблон }

10.3.4.1,1 сс

{ picture }

эквивалентность (видов)

2.1.1.2л

equivalence (of modes)

эквивалентность (литеры и

? !.2 Л

equivalence (of a character and an

целого)

2.1.3.1g

integer)

эквивалентность (протопонятий)

2.1.1.2 л

equivalence (of protonotions)

элемент (массива)

2.1.3.4л

element (of a multiple value)

эталонный язык

9.3л

reference language

этого (для конструктов)

2.1.5л

of (construct of a construct)

этою (конструкт этой сцены)

2.1.1.1.6

of (construct of a scene)

этого (окружение ЭТОЙ СЦ«М)

2.1.11.4

of (environ of a scene)

этого (среда этого конструкта)

3.0.2

of (next of a construct)

223

С-22 2 ГОСТ 27974 - 88

ятык представления язык публикаций язык реализации

9.3.3 representation hn^uate

9.3-3 publication Цпжиаус

9.3а hardware |ал?ифг

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

Никс ламы со ссылками на соогвстствуюшнс гиперпрапила короткие параполя* тля, представляющие понятия, применяемые а касгояшсм стандарте.

алы срмзтииы-ВЫБИРА КИШТО-

3.4.1 л

alternate-CHOICE-eUl) sc

предложення

АРНЫЙ-олсранд

5.4.2Л.С

А1Э1С-operand

БИНАРНАЯ-формула

5 А.2.1.а

DY A DlC-form ula

блок

3.0.1 .г

tango

вакуум

3.3.1 .к

vacuum

в аркантное-лредложсннс

3.4.1 .р

case-clause

верхняя граница

4.6.1.П

upper-bound

ВНЕШНЕЕ-всгуплсннс

10.1.1.с

EXTERNA L-preludc

возможное-ПО ПЯТНЕ

1.3.3.а

NOTfONoption

вставка

10.3.4.1.1.4

insert tom

вступи СИМС

ИЗ 1! b

preludes

вхол-в-со бсгвсягио-ВЫБИ-

9.1.1.b

CHORCE-in

РАЮ ШЕЕ

вдебкраюшеопреллоэкение

З4.].п

chotoe-clause

ВЫБИРАЮЩЕЕ-предложенно

3 4.1 Л

CHOICE-clausc

ВЫПИРАЮЩИЙ нарядил

34.1.i

case-ран-of-CHO ICE

выборка

5 .3 t .1 э

selection

вызов

5.4 3.1.а

call

выражение

золь

expression

вырезка

5.3.2.1.3

sbcc

выход-со бегвемно-ВЫБИ-

9.1.14

CHOICE-out

РАКИЦЕГО вытесняющее'ripe сложение

3.4.1 .с

enquiiy-olauso

генератор

5.2.5.13

generator

главная-часжь-ВЫБИ РАЮЩЕГО

3.4.1с

in-CH01CE-clause

грань

5.3.2Л-3

boundscript

Птупповае-апределешс-

4.1.1 ,Ь,с

COM MON^joincd-definition

ОБЪЕКТОВ групповое-отределение-мето-к

10.1.l.h

jodned-label-definitiun

групловаЛ-описатель-

4.6.1Л, U

MOIDS^oinetl-declarer

!ЭН АМЕНИЯ групповой-описагеяь-

4.6.L.q. г

PARAMETERS+oinol-dcclaset

1ПАРАМЕТРОВ ДВОИЧНАЯ-цмфра

8.2.L.h,ij.k

RADIX-digit

ДВОИЧНОЕ

8.2.L.d.e.e,f

RADIX

дейегшиггльнос-числ о

8.1.2.1л

floating-po int-numc tai

десяти: чхая-цифра

8.1.t.l.c

duit-cypher

диатгхвон-ве ктора

4.6.1.)ЛЛ

rw-to*es

хиилаэдн вс ктора-м ассивов

4.6.1.1

row-ROWS-rovca

добавочный- злем ей г-ПОЯС

9J.t.d

other-PRAGMENT4tcni

НЕНИЯ

доба вечный- эле м енг-сгро ки

8.1.4.1.d

ot her-strinn-item

доопределение

5. l a

hip

дробпая-часть

B.I.Z.Ed

fractional-pul

224

ГОСТ 2797 4- 88 С.223

заглавие-никла эахиние-в pry ментов

□адонис'Генератора задамне-дробноЯ-чветм заданмс-гмачи мости зал ан де-порядка задачи

задача полю оаателя

замки утас-преалолхгас

запись-лес ятиадого-осмоваижя запись-мисси ва зались-составного

зап ись-стру ктуры знак

зиа к-ПОНЯТИЕ изображаемое изображение

3.5.1 .b tor-part

5.4.1.1л declarative

5.2J.l.b «unple-ftncra tor

10.3.4.1 0.1 .C after-spCCificatK>n

10.3.4.1 0.1 ,b width-specific alien

10.3.4.10.1 d expo ne n {-specification

10.1-1.d task#

lO.IJ.f uwr-taek

3.1.1 .a closed-clause

8.1.2.1 .h t imes-ten-t o-tbc-pow ei-cho ice

3.3.l.t rw-dwflay

3.3.1 .j display

3.3.l.h structure-dnpiay

9.1.14 token

9.1-1.f NOTlON-token

X.OLa denote!

8.1.0.1.a denotation

8.1.1.1 a

8.1.2.1 .a

8.1.3.1.3

8.1.4.1.a

8 1.5.1.3

8 2.1я.Ь,с

8.3.1 a

изображенно-битового жзображснис-простмх> изображенис-строки индекс

индексатор килек сат ор- МАССИВ А-

СОСТЭНЛЯЮШИЙ- ’МАССИВ кип с к сиру юшсс- П ОН ЯТИЕ-инаикатор ИНДИКАТОР источник исгочднх- хпя ПРОВИДА к од-раз мешения константа кортеж литерал мантисса маркер маркср-аиана маркср-ко индексного маркер-литеры маркер-д-огического маркер-нудя маркер-основакия маркер-чорядка маркср-точки маркср-илфры машинная цифра набор настройка-цикла настройка ЦИКЛ А

8-2.1.1 bits^lenotation

8.1.0.1.t> plain-denotation

8.3.1x atring^cnotattoo

5.3.2.1c subictrpt

S.1.2.1.1 Indexer

5.3.2. l.b.c.d ROWS-lea-ring-ROW SETY-ind oxer

i.3.3.e NOTlON-brauket

4,8 1c indicator

4ЛД.аЛ INDICATOR

5.2-l.l.c source

4.4.L.d »ouxcc-fo:-MODlNE

10.3.4.1.1 Г alignment-code

3.0. L.d constant

3.2.1b series

10.3.4.1.1.1 literal

8.1.21.5 stagnant-part

10.3.4.1. In marker

10.3.4.2.t.e sign-marker

1-0.3 .4.$.Lb complex-marker

10.3.4.6.1 в character-marker

10.3 4.4.1b boolean-marker

10.3.42.1 d zero-marker

10.3.4.7.1.C radix-marker

10.3.4.1.e exponent-market

10.3.4.3.1 d poitit-rnarfccr

10.3.4.2.If digit-market

8.2.1m radix-digit

10.3.4.1.1 в collection

3-5.| 4 intervads

3.5. l.d 1 ROBY I-part

8- 1361

225

С.224 ГОСТ 2Т974-®«

натуральное -число

8Д.1.1.В

fix ed-point-nurneral

ТМЕПОДАВЛЯ ЕМАЯ-рамка-ПУНКТА

10.3.4.1.14

UNSUPPRESETY-COMA R К -fra me

?НЕ ПОДАВЛЯЕМ АЯ-рамка-ТОЧКИ

10.3.4.1 .l.j>

UNSUPPRESETY-MARK-frame

нс падал л лемое по лапл яс мое

10.3.4.1.1.L

unsupptesMble-juppressaon

?НЕПОЦАВЛЯЕМОЕ-подавление

10.3.4.1.1.1

UNSUPPRESETY-rupprcjaioa

кеподавпеааыЯ-лкгерая

ТНЕПОДАВЛЯЕМЫЙлте рая

10.3.4.1.1.1

unsuppresribte-literal

10.3.4.1.1.1

UNSUPPRESSETY-literal

нспооавлясмыЯ-повгормтвль

10.3.4.1.l.h

u nsuppre $»ib Ie-replica tor

нижняя-гран и на

4.6.1. m

lower-bound

обозначен ие-бинарной-омрации

5.4.2.1л

dyadic-operator

обоэначенис-унаркой -операции

5.4.2.1.Г

mo nadic-opcrutor

обра тсц-исйствшслъногю

10.3.4.3.1.С

floating-point-mould

образец-знака

10.3.4.2.1.с

tigB-mouM

образец-рацион ал ьно го

10.3.4.3.l.b

variab !e-po int-mould

обрязец-цслого

10.3.4.2. l.b

integral-mould

образеи-основ

3.3.1.b

jo med.-portrait

образ-!ПОЛЕЙ

3.3.1.f.s

ГIEUDS-portrait

образ-!ПОЛЕЙ 1 -среди-! ПО ЛЕЙ огрякичосис

4.6.1x

HELDS-portrayer-of-FLELDS 1

5.3.2.l.h

trim script

операнд

5.4.2.J.g;

operand

оператор

3.0.1 x

statement

описание

4.1.1.в

declaration

описание-вида

4.2.1.a

mode-declaration

описзиис-идеитификиора

44-1-*

identifier -declaration

описатель-НОМ Е Р

4.2.1 x

TALTY-dec brer

описание опера ни и

4.5.1.a

opcratioibdeclaxat ton

описанне-пере мекно Я

44-lx

variabic-decEaratio a

описаине-приоритста

4.3U.B

prioricy-decluatio n

описаннс-гождестия

44.1.a

identity-declaration

описатель

4.2.1X

4.4. l.b

44.1.B,b

declarer

огансагс ль- процедуры

44.l.b

routine-declarer

определение

4.1.l.d

dcftnlon

определение- видя

4.2 .l.b

mode-definition

определение - мети и

3.2 .l.c

label-definition

определение -операции

4.5.l.C

operat ion-definition

опредслсиис-парамегра

5.4 1.Д.Г

parameteF-defjrajtian

определение-переменной

44.1.Г

variable-definition

определение- ЛОЛЯореди-. ’ПОЛЕЙ

4.6.l.f

ElELDSdefinition-of-FIELD

определение-приор итета

4.3. l.b

pnorit y-definition

определение -тожпе ства

4.4.l.c

idea tit у definition

определитель

4.6.1x,d,s,hto.j

declarator

опрсде-иоощсс-предложсине

3.2.1.6

ertablishing-claute

ослопа

3.2.1.d

unit

осмо пи ас -пр едло женке

3.2.1.h

unitary *с1аиве

отношение -одно км-енности

5.2.2.1л

identity-relation

отрезок

S.3.2.r.f

trimmer

параллельное -предложение

3-3.1-c

parallel-clause

«рам? гр

54.1,11

S.4.3.L.C

parameter

22€

ГОСТ 27974-88 С.2 25

ПАРАМЕТРЫ

5.4 3.1.Ь

PARAMETERS

переменкам

3.0.1.е

variable

переход

5.44.1л

jump

план

4.5 1 b

4.6 1 .р

plan

план процедуры

4.5.1 .Ь

тоui ine-ptan

ял юс-нлк-минус

8.1.2.1J

plusniinus

попгоритель

10.3.4.1 Lg

replicator

подавлен не

10.3.4J.1.I

suppression

подчиненны П-усжнвгао-цмкл

3.5.1.f

while-do-part

получатель

5.2.1.Lb

»Чя matron

порядок

8.1.2.1s

exponent-part

последов ate льнос -«реаложсиис

3.2.1 .в

serial-clause

последомгсльи ость-ПОНЯТ Ий

1.3.3 b

NOTlON-seqiecnce

пожен си не

9.2.1 .a

praline nt

ПОЯСНЕНИЕ

9.2.1.b

FRAGMENT

поясняемый -литерал

10.3.4.8.Lc

prae lit

приведенная ФОРМА

6.1 1 a.b.c.d.e

FORM-coercee

приведенное

6.1.1.J

coercce

приводимое

6.1.1 h

cocrcenci

присваивание

5.2.1.1л

assignation

программа

2.2.1 a

program

продолжатель-ВЫБИРАЮЩЕГО

9.1.1л

CHOICE-a pain

пропуск

$.5X1.8

«ip

поевдоимя

5.241.8

nihil

размещение

10.3.4 1.1c

alignment

рамка

10.3.4.l.l.ra

Frame

рамка ДВОИЧНО! О

10.3.4.7.1 .b

RADIX-bamc

рациональное чисто

8.1.2.Lb

variable-point -nu meral

■едяинугая-мижняя-гранкца

5.3.2.14

revised-lower-bound

символ

9.1.1.h

symbol

системная-задача

10.1.l.e

system-task

собственно-выбор- ВЫ Б И -РАЮИЕГО

3.4 L.f.g.b

игр art -of CHOICE

собствен»» о-заключение

10.1.l.i

particular-post lu«i«

собствснко-дро грамма

lO.l.l.g

particular-program

совмести ос-предложение

3 3.1.a.«l.e

co Uri teralclause

со пос та ВПЯЮ1ЛСС-П реаложен ие

ЗА If

conformity-clause

сосгав-ВЫБИРАЮМЕ го.

предложения

3 4.L.b

choose r<HOICE clause

спецификация

341j,k.

specifieatKin

списоас-ПОНЯТИЙ

1.3.3.C

NOTIONLsl

сраиннтепь-ммеи

5.2.2.1 Ь

adentity-rehtor

ст*рт-ЪЫБЮ»АЮЩЕГО

9.11л

CHOlCE-start

степснь-жсяти

8.1.2. Li

powcr-of-ren

строка

8.31.b

string

текст-программы

10.1 .La

program-text

гс кст-про цедуры

$ .4.1.1 л.Ь

routine-text

текст-формагта

10.3.4.L.l.a

format-text

тело-омкла

3.5.Th

do-part

трафарет

10.3.4.1.10

pattern

трафарет -бесформатного

10.3.4.10.1 л

general-pattern

трафарет битов ого

10 3 .4.?.1 a

bits-pattern

трафарет вещее-гасни ого

10.3.4.3.1.8

real-pa Hern

трафарет -выбора ио-логическому

10.3 AB. Lb

booleanchoicc-pattern

а*

227

С.226 ГОСТ 27974-88

траста р<т-выбора-п»иело му

10.3 4.8 1 а

in teg tal-cboice-pai t ern

графа рет-к о м ил е к а < ого

10.3 4.5.1.а

complex-pattern

графареьяопадского

10 3.4 4.1 1

boolean-pattern

трафарет строки

KK3.46.Jj

string-pattern

графаретч^ормала

10.3.4.9.1 а

format-pattern

трифаре г цел ого

10.3.4.2.1л

integral-pat tern

указание

5.4.4. l.b

go-to

указатель-тюля

4.8.Lf

Held-selector

указа тель-поля-видз-ПРИ ЗНАК-

4.8. L-c, d

QUALlTY-JlELDS-Heldi-sckctw

срсди! ПОЛЕЙ

УНАРНАЯ-формула

5.4.2. l.b

MONADlC-formuh

улэковзниос-’ПОН ЯТИЕ

1.33x1

NOTETV-pac*

условие-цикла

3.5.Li

while-part

условнос-прелложсние

3.4 !.о

co nd itx>nal-cb use

УТВЕРЖДЕНИЕ 1-л ибо-

L3-3.f

THlNGl-or-alt-ematiwely THINGS

УГВЕРЖДЕНКЕ!

финиш-ВЫБИРАЮШЕГО

9.1 1 с

CHOlCE-finish

ФОРМ А-посп е-вект ори займи

6.6.La

rowe r-to-FORM

ФОРМ А-послс-м яткого

6.3.1. b

softly-dcproccdurxd-eo-FORM

распроцедуривайия

ФОРМ А-посл сообщения

6.5.La,b.c,d

widened.-to-FORM

ФОРМ А-иосле-обьслишения

6.4 La

unitcd-to-FOR M

ФОРМ А поел с-опус гошення

6.?.La.b

widcd-to-FORM

ФОРМА-после-размммювання

6.2,l.a

dereferenced-to-FOR M

ФОРМ А-посгк-рзспродсдури •

6.3. La

depToccdurcd-to-FORM

В ) НИЯ

ФОРМ А-постк-сохране ния

6.1 l.f

uncli anged-froni-FORM

формула

5.4.2. Id

formula

фраза

3.04л

phrase

целая-часть

8.1 2.1 c

integral-part

цикл

3.5.L-e

repUting-part

диклическос-предложемке

3.5.La

]oup>clanse

шаблон

10.3.4.1.1.c

picture

алемсит-остговного-маборц

8.1.4 Lc

chsraclorftyph

алемеи г ПОЯСНЕНИЯ

9.2.1 x

PKAGMENTitetn

ЖК мен г -отроки

8.1.4. l.b

string-item

ядро

5.5.1.14

сам

3. Предикаты

Ниже дани гокршенши фирмы арсдихагов. применяемых в настоящем стан-ларгс.

входят в' 7.3.1.Lm,n

выводится из’ 5.3.1.l.b,c

ость’ 1.3.1л

в' L3.1X.C

кас нтмфкикровлно в' 7.2.1 .а

или' Ll.l.d.f

истина' 13. La

крепко связано' 7.1.1А

яожь' L3.Lt>

меняет' 7.4.lm.b,c,d

может следовать' 3.4.1.in

'subset of

'is derived from’

'is-'

'and'

'identified in'

'of

'tiue*

'firmly related'

'false/

'due Uis’

'may follow1

228

ГОСТ 23974 -88 С.227

'находиться в'

7J.l.b.c

'resides in'

'начинаться с'

1.3. l.h. i.j

'begins With1

'не зависеть'

7.i.u.b,c.d

'independent'

'оказаться'

5.4.1.l.c.d

'like'

равно числ у’

7.3.1.О.Р

'number equals'

’развертываться из' 'родственны1

7.3.1.С

'develops from'

4.7» l.f

'incestuous'

'сводиться'

7.1.In

'deprefsto firm'

'связано'

7.1.1.c.f,B,h,i,j

'related'

'скреплено'

7.1.1.1.m

'is firm'

'служит'

6.4. l.b

'unites to’

'совпадать с'

1.3.1.M

'coincides with'

'содержать'

l.S.l.ni.n

‘contains’

'сплетено с'

4.7.1.g

'revels to'

'считать'

4.3. l.c.d

'counts'

'уран кивать1

ЗХШ

’bahnoes1

'фиксировать'

4.7.I.a,b,c.d,e

'defle.xes to'

'эквивалентно'

7.3.1л.Ь.д.е.Г, СД.ЦЛд

'oq uivalcnf

4. У к» та гель к стандартному вступлениэо

<

10.2.3.0a,

10.2.3.3 л,

10.2J.4.C,

10.2.3.10л,

10.2.3.5-c,d,

10.2.3.6 .a.

10.2.3.9 л,

8. h

< ~

10.2.3.0.»,

10.23.3 .Ь,

10.2.3.4 .b.

ia.2.3.5.c,d.

10.2.3.6л,

10.2.3.8 .е.

IOJ.3.3.1J.

10.2.3.9 л,

10.2.3.10. b,g,h

+

10.2.3.0л,

10.2.3.4 ,ij,

, 10,2.3^ Ab,

lOXU.b,

10.2.3.74, k.p.q.c.i.

lO.2.3.1O.i,j ,k

10.2.3.0.»,

10.2.3.1 l.d.e.f,о, p,q.,s

+=:

10.2.3.0.3.

10.2.3.1 l.r,t

+X

10.2.3.О.З,

ЮД.ЗЗ.и,

10.2. 3.4 a

ЮХЗХе.Г

10.2.3.0л,

ЮХЗ.Э.и, 10.2.3.2.b,

10.2.3.4 a

ЮХЗХс.Г

&

10.2.3.0.3,

10.2.3.8 .d

Л

i о.г.з.о.з,

10.2.3.2.b.

10.2.3.8 ,d

q

10.2.3.0л,

1O.2.3.8J:,

10.2.3.9 .b

10.2.3.0 л.

10.2.3.1 .c.e

1

10.2.3.0л,

10.2.3.8.h

L

10.2.3.0л.

10.2.3.1.b,d, 10.2.3.4л

>

10.2.3.0л.

10.2.3.3.e,

10.2,3.4л,

10.2.3.5. c,d,

ЮХЗЛл.

10.2.3.81,

10.2 3 9л.

10X3.10,4,1,h

<

10.2.3.0а

10.2.3.3.b,

10.2.3.4 ,b,

10.2.3.5.c,d

10.2.3.6л,

1O.2.3.8.C,

10.2.3.2.e.

10.2.3.9 л,

10.2.3.10.b.g,h

«u

10.2.3.0л,

10.2.3.3.d.

10X3.4.d,

Ю.г.ЗЛ.с.а, 10.2.3.6.а. 10.2.3.7,g>u,v,w,x

10.2.3.8.b,

10.2.3.9 л,

10X3.10.<S,8,h

V

10.2.3.0л,

10.2.3.2 л,

10.2.3.8 .c

I

10.2.3.0л,

1O.2.3.3.U,

10.2.3.4 л,

10.2.3.5.0,1

+

10.2.3.0л,.

lO.2.3.3.m

+ x

10.2.3.0 л,

1О.2.3.3.П

+ X:=

10-2.3.ОЛ.

10X3.11*

+ •

10.2.3.0 л,

10X3.34

10.2.3.0л,

10X3.11*

+ ;=

10.2.3.0л.

10.2.3.1 Ij

X

10.2.3.0 л.

10X3.3.1.

10.2.3.4.1,

10.2.35л,Ь.

102.3.7Xp,q,r,«.

10.2.3.10.1,an,r»,o

229

С. 228 ГОСТ 27974-88

X : =

10.2.3.0.», 10.2.3.1 Гл.ЬЛп.о.р.-и

1О.2.3.2.С, 10.2.3.8-m

t

10.2.3.0.3. 1О.2.3.3.р, 10.23.5.g.

10.2.3.7.1, 10.2.3.8.f

Ю.З.З.О.а. 10.2.3.3.1. 10.2.3.4.1,

10.2.3.10.1. т.я.о

Ю.2.3.5.э,Ъ, 10.2.3.7 .Kp.q,r,»

■ •

10.2.3.0,8. 10.2.3.3.р, 10.2.3 3.g,

10.2.3.7.t

■ - ж

10.2.3.0.8. 10.2.3.11.8,h,i, п.о.р.и

10.2.3.2.с. 10-2.3.8.™

-

10.2.3.0.1. 10-2.3.3.g,h, 10.2.3.4.#, Ь, Ю-2.3.5л,Ь.

10 2.3.7.h.j.p.q.r.s

10.2.3.0.1. 10-2.3.11 л.Ь.с.п.о.р

/

10.2.3.0.1. 10-2.3.3.О, 10_2.3.4.т.

10.2.3.5л. b, 10.2 3.7.m.p,-q,r.r

/:-

10.2.3.0.1. 10.2.3.1 l.Lm.n.o.p

Л

104.3.0л, 10.2.3.2.С, 10.2.3.3 3.6. 10.2.3.4 d. 10.2.3.5 d.d.

10.2.34.1. 10.2.3.7,g.u.v.w.x. 10.2.3.8.b, 10.2.3.0л. 10.2.3.10 d.s.h

%

10.2.3.0.1. lO.JJ.lm

lO.2.3.0.a, 10.2.3.3.»

%х :-

10.2.3.0.1, 10,2.3.1 l.k

%•

10.2.3.0.1. 10-2.3.3.»

%•: -

10.2.3.0л. 10.2.3.113;

%:-

10.2.3.0.1, 10.2.3.11 j

>

10.2,3.0.8, 10.2.3.3.f. 10.2.3.4f.

10.2.3.5.c,d, 10.2.3.6л,

10.2.3.9.a. 10.2.3.10.f,g,h

>-

10.2.3.0.8, 10.2.3.3л, 10.2.3.4л.

10 2.3.5 c.d, 10.2.3.6.1, 10.2.3.8 f.

102.3.9.8, 10.2.3.lO.e.Rh

в

10.2.3.0.1. 10.2.3.24, 10.2.3.3л.

10.2.Э.4.С, IO-2.3_S.c_d, 10.2.3.6л,

10.2.3.7.f.u.b.^.x, 102.3.8 a, 10.2.3.9.8, 10.2.3. L0.c4,h

абс

10.2.1л. 10.2.3.Г. 10.2.3.3.k.

10.2.3.4.K, 1O.2.3.7.C, IO.2.J.8.i

10.2.3.74

ab»

арг

Ш

бин

10.2.34J

bin

бит

10.2.2^

bib

бог

10.2.3.0.1, 10.2 3.3.Г. 10.2.3.4.Г

it

1О.2.3Л. c.O 10.2.3.6 л, 10.2.3.9.1

10.2.3.104. #,h

вверх

10.2.3.0л. 10.2.3.3-p. 10.2.3.5.g.

■10.2.3.7л. 10.2.3.8.g, 10.2.4.6

up

вегр

10.2.3.0.1. 10.2.3.1.c,e

upb

веш

10.2.2x1

real

вниз

10.2.3.0.1, l0.23.8.b, 10.2.4.d

down

вч

10.2.3.7л

re

делпр

10.2.3.0.1, 10.2.3.1 1.1,т,л,о,р

dhab

□мяк

10.2.3.3л, 10.2.3.4л»

10.2.3.0.1, 10.2.3.2.b, 10.2.3.84,

мгл

и

and

кпк

10.2.3.0л, 10.2.3.2л. 10.2.3.8.C

or

им

102.3.0.1, 1O.2.3.3.U, 10.2.3.4s,

10.2.3.5.c.f

1

какая

10.3.3.2.8

channel

компл

10.2.24

corn pl

пев

10'.2.3.0л, 10.2.3.8.8

ahi

лит

10-.2.2,e

char

лог

10.2Д.Ь

boo!

мимпр

10.2.3.0.a. 10.23.11 л,Ь,с, n,<s,p

min u jab

МОП

10-2.3.0 л. 10.2.3.3л

mod

230

ГОСТ 2797 4-88 С. 229

■мопар

10.2.3.0л, 10.2.3.1 l.k

modab

мч

10-2.3.7.8

im

мш

10-2.3 O.a. 10.2.3.3.8, 10.2.3.4 л, 102.3^.c,d. 10.2.3.8л. 102.3.».», 10.2.3.10.a,s.h

It

мд

10.2.3.0.3, 10.2.3.3.b, 10.2.3.4.b,

102.3.5x,d, 1.02,3.6.*. lOJ.S.S.e,

10.2.3.9л. lO.2.3.1O-.b.g.h

Ie

ис

102.32.-c, 10.2.3.8.m

nos

«игр

10.2.3.0л, 10.2.3.l.b.d

i*b

мм

10.2.3.0л, 10.2.3.3.е, 10.2,3.4.e,

102.35.c,d, 102-3.6.». Ю.2.З.8.Г.

102.3.9л, 10.2.3.10-.e,g,h

8*

Ир

102.3.0 л, 10.2.32.», 102.3.3.d,

102.3.4.4, 102.3J.c,d, 102.3.6.a.

10.2.3.7$.u,v,w.i, 10.2.3.8.b.

102.3.9.8, 10.2.3.10.d,8,h

ne

нчг

102.3.5.s

odd

охр

10.2.3.4.P

round

плюслгр

102.3.0л, 10.2.3.11.d,e,f.n,o.p.q,s

pita sab

прав

10-2.3.0 л, 10.2.3.8Л

she

пред

10-2.1.O

rep:

прип

10.2.3.0л, 102.3.1 l.t,с

ptusto

пуст

102.2л

void

рв •

102.3.0л. 102.32.4, 10-2.3.3.с.

102-3.4-c, 10.2.3 Jx.d. 10.2.3.6.*.

102.3.7.f,u,v,w,x, 10.2.3.8л. 10.2.3.9л, ю.г.з.ю.с.хл

eq

сем*

10.2.4.4

semi

слог

1022 Ji

bytes

сопрж

102.3.7 _е

conj

строк

1(12.2.1

string

улл

10.2.3.3-q, 10.2.3.4.0. 10.2.3.7.П,

102.3.S-n, 10.2.3.9.d

lei*

укр

1О.2.3.3.Г, 10.2.3.4.0, 102.3.7.Q,

1Q2-3.8-O. 1О2.3.9.е

shorten

умпр

10.2-3.0-8. 102.3.1 l.g,h.>,n,o,p, и

timesab

уст

102.4.b,c

level

Ф^Л

10.3.1.3л

file

форипфор 10.3.5л

format

цеп

102.3.0л. 102.3.3-m

over

цел

1О2.2.С

int

цадпр

102.3.0л, 10.2.3.llj

overab

целЧ

102.3.4 .г

entree

элем

102.3.0.*, 102.3.82, 102.3.9.6

elem

abs

102. l.n, 10.2.32.f„ l-0.2-3.3Jt, 102.3.4 .k, 102.3.7-c, 102.3.8.1

абс

and

102-3.0.8, 102.32-b, 102.3.8.d

и

418

102.3.7 ,d

apr •

bin

102.3.84

бия

bits

102.2.g

бет

bool

102.2.b

лог

bytes

1022.h

слог

channel

10.3-12.»

канал

char

102.2.e

л мт

23-1

С.230 ГОСТ 27974 -88

compl

10.2.2.1

КОМПЛ

coni

10.2.3.7.4

сопрж

divab

10.2.5.0 a. 10.2.3.1 l.Lm.n.o.p

ПС Л пр

down

10-2.3.0.8. 10.2.3.8.1», 10.2 4.d

10 2.5 0.a, 10.2.3.8Jr. 1Ф.2.3.9.Ь

вниз

eJem

элем

entier

10J.3.4.r

иеяч

<4

IO.2.5.O.a. 10.2.3.2.d. 1O.2.3.3.C,

10.2.3.4.C, 10.2.3.5 .c.d. 10.2.3.6 .a. 10.2.3.7 .f.u.r.w.x.

10.2.3.8.a, 10.2.3.9.a. 10.2.3.10.c.g,h

РВ

fife

10.3.1.3.8 _ •

файл

format

10.33.8

формат фор

к

10.2.3.0.a, 10.2.3.3.e, 10.2.3.4.4,. 10.2.3.5.c,d

10.2.3.6.8, 10.2.3.8.f. 10.2.3.9.8. 102.3.10. e.s.h

мм

Г

10.2.3.0.8, 10.2.3 3.f. 1О.2.3.4.Г. 10.2.3.3.e.d,

10.2.3.6.8, 10.2.3.9.a. 10.2.UO.f.i.h

бш

i

10.2.3.0.a, 1O.2.3.3.U, 10.2.3.4л 10.2.3.5.e.f

нм

nn

10.2.3.7.b

мч

mt

10.2.2.c

цел,

le

10.2.5.0.a. 10.2.3.3.b. 10.2.3.4.b. 10.2.3.5.c.d,

10.2.3.6.a. 10.2.3.8 c. 10.2.3.9л. 10.2.3. JO.b.g.h

Мб

Jens

10.2,3.3. q. 10.2.3.4л, 10.2.3.7л, 10.2.3.8л,

10 2.3 9.<1

удл

level

ЮЛЛ.Ь.с

уст

It

10.2.3.0.8, 10.2.3.3 л. 10.2.3.4л. 10.2.3.5 .слк

10.2.5.6.8, 102.3.9л, 10.2.3.10.e.g.h

мш

iwb

10-2.5.0.8. 10.2.3.1 b.d

нигр

minuMb

10.2.3.0.8. 10.2.3.11 л.Ь.с.п.о.р

мхнпр

mod

10-2.3.0.8, 10.2.3.3.n

мод

modab

10.2.3.0.8, 10.2.3.1 IX

моляр

ne

10.2.3.0.4, 10J.3J.«, lOJJ.Xd, 10.2.3.4.d,

10.2.3 J. c,d, 10.2.3.6л, 10.2.3.7 4.«.v,wrx,

10.2.3.8.b, 10.2.3.9 л, 10J.3.10.d.g.h

нр

not

10.2.3.2.C, 10.2.3.8.m

не

odd

10.2.3.3.1

нчт

or

10.2.3.0.8, 10.2.3.2 л, 1O.2.3.B.C

млн

over

10.2.3.0.4. ЮЛ.З.Зл

«ед.

overab

10.2.3.0.8. 10.2.3.11 J

л ед пр

plusab

10.2.3.0л. 10.2.3.1 l.d,e,f,n,orq,s

плюеггр

pluito

10.2.3.0.8, 10.2.3.1 l.r.t

прип

re

10.2.3.7.8

вч

real

10 J .2x1

веш

repr

10.2. l.o

пред

round

10.2.3:4. p

охр

«ma

10.2.4л

сема

likl

10-2.3,0.8, 10.2.3.84

лев

shorten

10.2.3.3.1, 10.2.3.4л, 10.2.3.7.o. 10.2.3.8.О, 10-2.3.9.e

Укр

du

10.2.3.0.8. 10-2.3.82»

прав

«go

10.2.3.3.L 10.2.3.4-q

знак

string

10.22.1

строк

timeaab

10.2.3.0.8, 10.2.3.114,h,i,n,o,p,u

умор

UP

10.2.3,0.8, 102.3.3.P, 10.2.3.54, 10.2.3.7.1,

10.23.8jt. lW.4.e

вверх

upb

10.2.3.0.8, 10.2. 3.1.c,e

вегр

252

ГОСТ 27974-88 С Л 31

void !О.2.2.«

арккос *,.

10J.3.12.f

arcco»

арксин

1ФЛ.Э.12Л

UClbl

ар к тан г

1OJ.3.I2J

ar ct an

бит пак

' 10.2.3.8.1

blta pack

ввод

1О.3.3.2.а

toe

МОЭМ ВВОД

Ю.ЗЛ.З.Ь

get possible

возм уст кам

10.3. l.S.f

reset possible

ВОЗЫ ВЫВОД

10.3. l.S.c

put possible

ВОЗМ двоими

10.3.1.3.d

bin possible

возм переобозначение

lOJJ.J.h

reaslf possible

возм установка

10.3.1.3л

get possible

вперед

10.3.1.6 л

space

ВЫВОД

10.3.3.1л

put

да

10.2.1.1

flip

хв ВВОД

IOJ.-6.24

get bin

дв вывод

10.3.6.1л

put bin

дв зап

103. l.h

write bin

ал чит

10.5.1.1

read bin

завести

10.3.1.4 .b

establish

задать код

10.3.1.3j

male cons

задать стопетроку

10.3.1.31

male term

закрыть

10.3.1.4.n

close

зап

10.5.14

write

заполнитель

10.2. l.q

null character

канал

10.3.1.3.1

chan

корень

10.2.3.12.6

sqrt

кос

10.2. 3.1 2.e

cos

ЯГ

Ш.2.3 I 2.(2

In

литер» в строке

10.3.2.1 Л

char in string

литера ошибки:

10.2.1.1

ctrorcbar

махе вепс

10J.1J

тал teal

махе лит

10 2.1.P

max abs char

мак с цел

10.2. l.c

max int

можно- завести

1O.3.1.2.C

■estab possUJe

назад

10.3.1.6 .b

backspace

нет

10.2. l.s

flop

нов страница

10.3.1.6.4

newpa.se

нов строчка

10.3.1.6.c

newline

номер литеры

10.3.1.5 л

ch*r number

номер страницы

1О.ЗЛ.5.С

pa^e n umber

номер строчки

lOUXb

line number

открыть

10.3.1.44

open

пере-об означение

10.3.1.3.s

reidf

печ

103.14

print

пи

10.2.3.12л

Pi

плав

10.3.2.14

float

прел печ

103.1л

last random

при конце лог файла

10.3.3.3.1

on logical file end

при конце страницы

10.3.1.3.»

on page end

при конце строчки

10.3.1.3.0

on line end

при койне физ файла

10.3.1.3.m

on physical file end

при конце формата

10.3.1.3. p

on format end

при ошибке значении

10.3.1.3.4

on value error

при ошибке литеры

Ю.Э.1.Э.Г

on char error

ГТ)'ст

□33

С.232 ГОСТ 27974-88

пробел

10.2.1.U

blank

печ

JO5.J b

undo II'.

размер бит

10.2.2 j

bits width

размер слог

]0.2.1.m

bytes width

разрядность веш

10.3.2.l.n

real w idtb

разрядность порядка

10.3.2.l.o

exp width

разрядность исп

10.3.2.1 .m

int width

сжимаем

103.1.3.4

compressible

СМИ

10.2.3.124

sin

след печ

10.2.3.12 k

next random

слог пак

102.3.9.C

bytes pack

снять

10 3.1.4,o

Jock

соединить

10.3. J.4.e

associate

создать

103.1.4.C

create

ссакаввод

103.l.c

st end in

стаилвывол

103.l.c

stand -out

ci амдкамал ввода

Ю.ЗЛЗ.е

stand in channel

стан л канал вывода

1О.3.1.2.Г

stand -out channel

сТандканал обмена

lO.3.t.2.g

stand back channel

стана код

10.3.1.2.0

standconv

стаидобмен

10.5.l.c .

stand back

стереть

103.1.4.P

stretch

стоп

103.2a

stop

1ЙНГ

10.23.12.1

Ian

точность вещ

10.2.1.8

small real

установить

10.3.1.6.1

set

уст нач

I03.I.6J

reset

уст номер лидеры

10.3.1.6Л

set char number

фикс

10.3,2,l,c

fUrd

Ф ПЛОД

lO3.S.2.a

petf

ф ВЫВО-а

Ю.ЗЗ.Еа

■ puli

ф зап

10.5.B.f

writef

ф печ

10.5.l.f

print!

ф ЧИТ

10.5.1.8

rod!

целое

10.3.2.l.b

whole

«тело длин бит

10.2.1.h

bits lengths

число длин веш

10.2.1.d

rea l lengt hs

число длин слог

10.2.1JC

bytes Bengthx

число длин цел

10.2.1.8

int lengths

число кор би т

10.2.L.i

bits shorths

число кор веш

10.2.1.e

real short hs

wno кор слог

10.2.1.1

bytes shorlhii

число кор дел

10.2.l.b

int shorths

ЧИТ

10.5.1 ,e

real

леей

10.23.12 c

exp

Д арккос

10.23.12/

L aaccns

Д архсин

J0.23.12.h

L arcsin

Д арктэмг

10.23.12j

L arctan

Д бит

10.2.2 4

L bits

Д бит лак

1033.8.3

L bitspack

Д вещ

10.2.2d

L «I

Д ко м пл

10.2.2.1'

L contpl

Д корень

10.2.3.12.b

L upt

Д кос

10.2.3.12.e

L co s

Д ЛГ

1023 Rd

L In

234

ГОСТ 2 7974-88 С.23 3

Л макс вещ

10.2-.tf

L max real

Д макс цел

10.2.1.c

I, max int

Дии

10.2.3.12.a

L P*

Д сред псч

10.5.1л

L laf. random

Лшя

10.5.l.b

L random

Д размер бит

10.2.Ij

L bits w kith

Л размер слог

lOJ.Lm

L byte* width

Д разрядность веш

1О.3.2.Г.П

L real width

Дразрядное» порядка

1O.3.2.1.0

L exp width

Я разрядность цел

1O.3.2.1JD

L tat width

Деми

10.2.3.12.g

L ain

Д след псч

102.3.12.1c

L next random

Д слог

10.2.2.h

I. bytes

Долог пак

10.2.3.9 .c

L byte* pack

Л танг

10.2.3.12.1

L tan

Л точность вела

102. U

£ small real

Д цел

102.2.C

L int

Доксл

102.3.12.C

L exp

ХГССО8

■ •; 3.12 f

арккос

areata

10.2.3.12.h

арксии

arctan

10.2.3.12.)

аркганг

associate

10.3.1.4 e

соединить

backspace

Ю.ЗД.б.Ь

назад

bin possible

ю.з.з.з.а

позм двоичн

bits lengths

10.2.1.h

•«ело длин бит

bats pack

10.2.3.8.1

биг пак

bat* shorths

10.2.1.1

число кер бит

bit* width

10.2.1 j

раз мор бит

blank

10.2.1.U

пробел

bytes lengths

lOJ.lk

число длин слог

bytes риск

10.2.3.9. c

слог пак

bytes shorths

10.2.1.1

число кор слог

bytes width

10.2.1.m

размер слог

chan

10.3.1.3.1

канал

char in string

10.3.2.1.1

литер» в строке

Char number

10.3.1.5 a

иомер литеры

close

10.3.1.4.11

закрыть

comptcsiible

Ю.ЗД.З.е

сжимаем

cos

10.2.3.12.e

кос

create

10.3.1.4.C

создать

etrorchar

10.2. Lt

литера ошибки

establish

10.3.1.4 .b

запестн

«tab possible

10.3.1.2 .c

можно завести

exp

10.2.3.12 .c

эксп

exp width

I0.3.2.1.O

разрядность порядка

fixed

IO.3.2.1.C

фикс

flip

10.2.l.r

да

float

10.3.2.1.d

плав

Пор

102.1л

нет

jet

10.3.3.2 a

ввод

get bin

10.3.6.2.»

дв ввод

getf

10.3.5 J.a

ф ввод

get possible

10.3.1.3.b

поэм ввод

int lengths

10.3.1.2л

ЧИСЛО ДЛИН цел

int shorths

102. l.b

число кор цел

233

С. 254 ГОСТ 27974-68

ins width

10.3.2.1 jn

разрядность цел

last random

10.5.1.3

пред ггеч

tow lumber

10.3.1.5.b

Номер строчки:

In

10.2.3.li.d

лг

tock

. 10.3.1.4.0

сиять

make conv

30.3.1.3.j

задать код

moke term

10.3.1.33c

задать стопсграху

max abs chai

10.2.1.p

макс лит

max bit

10.2.1 .c

макс цел

max real

10.2.1.f

макс веш

rvrw Une

10.3.1.6.c

10.3.1.6x1

иов строчка

new page

иов страница

next random

10.2.3.12.к

след печ

null character

10.2.M

заполнитель

on char error

10.3.1.3.Г

при ошибке литеры

on format end

Ю.ЗЛ.З.р,

при конце формазд

on tow end

10.3.1.3.0

при ковше строчки

при конце лог файла

on logical file end

10.3.1.3.1

on раде end

10.3.1.3.П

при конце страницы

on physical file end

10.3.1.3.m

при ковок физ файла при ошибке значения

on value error

10.3.1.3.Q

open

10.3.1.4.d

открыть

page number

10.3.1-S.c

номер страницы

₽i

10.2.3.12.8

пи

print

10.5.l.d

печ

print Г

lO.S.l.f

ф печ

put

Ю.З.ЗЛ.а

вывод

put bin

Ю.З.бЛ.а

дв вывод

putf

10.3.5.1.a

ф ВЫВОД

pu t possible random

10.3.1.3.C

возм вывод

lO.S.l.b

печ

read

10.5.1.e

чит

read bin

10.5.1 л

лв чит

яга

10.2.3.12.8

сии

read!'

10.5.14?

ф чит

real lengths

10.2.l.d

число длин веш

real shotihs

10.2.l.e

число кор веш

real width

10.3,2Л.п

разрядность веш переобозначение

reMf

B0.3.1.3.S

rebdf possible

10.3.1.3.h

возм переобозначение

reset

10.3.I.6.j

уст иач

KKt possible

10.3.1.3.f

я озм у ст ВИЧ

scratch

L0.3.1.4.p

стереть

set

10.3.1.6.1

установить

set char number

10.3.1.6.1c

уст номер литеры

set possible

10.3.1.3.2-

возм установка

small real

10.2.U

точность веш

space

Ю.ЗЛ.б.а.

вперед

5qrt

10.2.3.12.b

корень

stand back

10.5Л.С

станд обмен

stand back channel

10.5.1.2.8

станд канал обмена

stand oonv

10.3.1.2.d

станд код

stand in

10.5.1.C

станд ввод

stand in channel

10.3Л.2.е

станд капал ввод»

stand out

Ю.5.1.С

станд вывод

236

ГОСТ 27-974-88 С.2 3$

stand cut channel

10J.1.2.f

стана канал вывода

Stop

10-5.2л

стоп

tasi

10_2.3.12.i

гаи г

whole

10.3.2,1.b

целое

write write but writer

L arccox 1 arc sin L arc tai» L bits I- bits риск I- bits width

10.5.1.d

10.5.l.h

10.5.1.f

10.2.3.12.f

10.2.3.12.h

10.23 1’j

10.2.2 .g

10.23.8.1

мп ди зап Ф зап

д арккос

Дарксян д аркгамг Д бит Д бит пак Д размер бит

10.2. I.j

L bytes

10.22 .h

ДСЯОГ

L bytes pock

10.2.3.9.*

Д слог Пак

L bytes width

10.2.Lm

Д размер слог-

L connpl

10.2.2 Г

аналог акомпл

1- coy

202.3-lX.e

Д кос

1- exp

30.23.12. c

Д эксп

L exp width

30.3.2.1.O

Д разрядность порядка

L int

10J.2.C

Дцел

L int width

30.Э.2.1.Ш

Л разрядность цел

L last random

30.5.|j

Д пред печ

L ]n

30.23.12.d

Ляг

L шал int

3022.l.c

Д макс цел

L шал real

30.2.1.f

Д макс веш

L next random

30 23.12 .k

Дслед печ

L pi

30.2.3.12 .a

Д ПИ

L random

BOS.l.b

Д ПСЯ

L real

B0.2.2.d

Л веш

L real width

10.3.2.1.0

д разрядность веш Д’**

L sin

10.23.12л

I. small real

10.2.l.g

Д точность веш.

L *qn

S0.23.12.b

Д корень

L tan

30.23.12 i

Д миг

вводимое

30 3.2.2 d

a-intype

*»не

30.3.1.l.d

Heyond

“scran К a

103 5.a

“•insertion

“выводимое

IO.3.2.2.b

“■out type

“кадр

10.3.5 .a

“-piece

^книта

10.3.1.La

Hook

*МЛ

10.3. U.b

Hem- -

“-МИССИИ.

10.2.3.1.a

“tows

“набор

10.3.5л

“-vol lection

“•пакет

10 3.5.a

“■coIlitem

9-п од в ста» к а

I0.3.5.C

^ sinner t

“подвтекст

10.3.1. l.b

* flcxtext

? под рам к

10.35.e

^ sirs me

^ПЮЭМЦНЯ

10.3.1. l.c

* pa#

5пропвод ^провывоа “рамка “связка

10.3.2.1c

10.3.2.2.1

? simplin

* sirnplout

5 frame c

10.3.5л

10.3.Lie

“bfllc

“стройввод

103.2.3 b

? straightin

“■ стройны ВОД

10.3.2.3..

^Mraightout

237

С.216 ГОСТ 2 7974-88

♦текст

10.3.1.1.Ь

9 tex t

9 трабесф

10.3.5-а

9gpattcrn

9травыб

10.3.5 а

9 epattern

* трафарет

НШ.а

* pattern

’••трвфор

10.3.5»

9 (pa ttern

* число

10.3.2.1а

9 number

9 шаблон

10.3.5 л

♦picture

♦ввести вставку

10.3-.5-ti

9get insertion

■•ввести литеру

1О.3.3.2.Ь

♦get char

9в ДВОИЧНОЕ

10.3.6 а

9 to bin

9взЯ1вслсл шаблон

10 3 5.b

♦pet next picture

♦вывести вставку

10.3 5 к

♦put insertion

9 вывести л итеру

ю.з.зл.ь

9 put chat

9выполн ип- трафор

10.3.5 j

9do fpa item

9 границы книги

10.3J.S-e

♦book bounds

9-ДРСТУФ*ьТ КНИГИ

IQ-JJI.f

♦chainbrae

7-гномы

10.4.1.3

? gremlins

^защита связей

10.3.1.l.h

9bftleprotect

* из. двоичного

Ю.ЗЛ.Ь

♦from bin

^литеру Л цифру

10.3.2.l.k

♦chai d«

7лог файл окончен

10.3.1.S.1

♦logical file ended

9ложь

10.3.1.4.1

♦false

9н*С1р0ИТЬ

lO3.1.6.h

9wt mood

7настроить на двоично»

10 3.1.4 m

♦ set bin mood

9 настроить на запись

10.3.1.4.)

♦set write mood

♦настроить на литерное

10 3.1.4.i

9set clast mood

♦настроить на чтение

103.1.4k

9eet read mood

9не определено

10.3.1.4.B

9 unde fined

^нормализовать

IQ-34-14

♦standardize

9Д нормализовать

10.3.2.1.8

♦L standardize

?о6озк приемлемо

10.3.!.4.g

9 id f-ok

9 подготовить вставку

10.3.5x1

♦staticize insertion

^подготовить рамки

103.5-f

9 staticize frames

♦препег рационального

103.2.1.Г

♦sub fixed

9-предсг целого

1О-3-2.1Л

♦sub whole

♦присосами ить формат

10.3,5.k

♦associate format

♦проверить позицию

1O.3.3.2.C

♦check pos

♦разместить

10.3.5.1

♦alignment

9 ред СТРОКУ

10.3.5.i.b

♦edit string

♦след позиция

1O.3.3.1.C

♦next pos

9снягьк книги

10.3.1.1.8

9lockcdbfiJe

♦соответствует

10.3.1.4,h

9 march

9coci строку

10 3.5.2.b

♦indst string

Устрани ш хороша

10-3 J.6.f

♦get good page

9-строку в Д веш

10.3.2.1.)

9 string to I. real

9ст року в Д цел

10 3.2.1.1

9 string to L int

9строчка окончена

lOJ.U.f

♦line ended

9строчка хороша

10.3.1.6.e

♦get good line

9 те кушая позиция

lOJ.U.d

♦current pos

9фпйл доступен

10.3.1.4.f

♦file available

9фпйл хорош

10.3.1.6 g

♦get good file

9 цифру и литеру

10.3.2.1.h

9d* chai

♦страница окончена

10.3.134

♦page ended

•физ файл окончен

10.3.1.S.h

9 physical file ended

238

СПИСОК МЕТАПРАВИЛ

ГОСТ 27974-88 С.237

ПРИЛОЖЕНИЕ 4 Справочное

АЛФАВИТ {WZLABC] ::

а; б; в; г; д; е; ж; з; и; й; к; л; м; и; о; п; р; с; г; у; ф; х; и; ч; ш; ш; ъ; ь; э; ао; я; а ла»; бе лат; цс лат; де ли; е лат; эф лат; ге лат; аш лит; и лат; йог лат; ка лат; эль лат; эм лат; эн лат; о лат; пэ лат; ку лат; эр лат; к лат; тэ лат; у лат; ве лат; Дубль ве лат; икс д*г; игрек лаг; зэт лаг.

АРНОЕ (s42CADICj :: БИНАРНОЕ; УНАРНОЕ.

АФФИКС {4SBTAO} :: ИНФИКС; ПРЕФИКС.

БИНАРНОЕ (542А DYADIC} :: приоритета ПРИОРИТЕТ.

БИТОВОЕ (65A BITS} "структура содержании ТМЕРИУЮ букву алеф ши выборки вектор* из логических в себе.

БУКВА ( 942В LETTER J ::букм АЛФАВИТА; буква алеф; буква АЛФАВИТА стиля НОМЕР.

ВАРИАНТНОЕ [ 34В CASE } : :выбкр*ютес по- целому; выбирающее по ПРЕДСТАВИТЕЛЮ.

ВКД[12А MODE} -ПРОСТОЕ; СОСТАВНОЕ; ИМЯ ВИДА; ПРОЦЕДУРА; ПРЕДСТАВИТЕЛЬ; ЦИ определение ВИДА; использование ЦИ.

ВНЕШНЕЕ (А1А EXTERNAL} :: стандартное; библиотечное; системное; собствен-

«ос- г 1

ВСТАВКА (А341Е INSERTION/ ;; вектор из структур содержащих букну л букву о Букву в букву I для выборки процедуры вы раба пинаю шей целое букву с букву т букву р для выборки объединения вектора нт литерных литерного поел ин о в себе.

ВТОРИЧНОЕ} 5С SECONDARY; :: приведенная выборка; трипсдснный ЛОКАЛИЗУЮЩИЙ генератор; ПЕРВИЧНОЕ.

ВЫБИРАЮЩЕЕ ( 34 A CHOICE} : выбирающее по логическому; ВАРИАНТНОЕ.

ДВОИЧНОЕ (82А RADIX} -двоичное; четверичное; восьмиричное; ивсстиадцэгсрич-нос.

ДВУМЕСТНАЯ £12311 DUO} "процедура с ПАРАМЕТРОМ! ПАРАЫЕТРОМ2 вырабатывающая ЗНАЧЕНИЕ.

ДЕЙСТВУЮЩЕЕ (122В SOME] : :я СРЕДЕ ПРИВОДИМО выдающее ЗНАЧ ЕН ИГ.

’ДЛИННОЕ { I2E LONGSETY) -длинное ’ДЛИННОЕ; ПУСТО-

ДОЛГОЕ { 65D LENGTH } -буква д буква л буква я буква и.

’ДОЛГОЕ f65F 1ENGTHETYJ ::ДОЛГОТ. ’ДОЛГОЕ; ПУСТО.

ЕСЛИ [JЗЕ WHETHER) ::если; если неверно что.

ЗАКРЫТОЕ (122А ENCLOSED} ЛИМкйувое; совместное; параллельное; ВЫБИРАЮЩЕЕ; циклическое.

ЗНАК ( 942G DYAD) -ПРЕФИКСНЫЙ. НЕПРЕФИКСНЫЙ.

ЗНАКОВЫЙ (94 2M’DOP) "ЗНАК; ЗНАК ncfwaНЕПРЕФИКСНЫМ.

ЗНАЧЕНИЕ {I2R MOID} ::ВИД; Пустое значение.

'ЗНАЧЕНИЯ £ 4бС MOIDS} -ЗНАЧЕНИЕ; !ЗНАЧЕНИЯ ЗНАЧЕНИЕ.

’ЗНАЧЕНИЯ £4?С MOIDSETY} ::!ЗНАЧЕНИЯ; ПУСТО-

ИМЯ {12М REF} ::имя; временное имя.

’ИМЯ (S31A RE1-ETY } ::ИМЯ; ПУСТО.

ИНДИКАН! (94 2D ТАВ} : выделенное СЛОВО; ’РАЗМЕРНОЕ СТАНДАРТНОЕ.

ИНДИКАТОР (48А INDICATOR} -идентификатор; индикатор айда; обаэнзчеэше

операции.

ИНФИКС { WF tad} -выделенное СЛОВО: ЗНАК ’ПРИСВОЕНИЕ; ЗНАК нереа НЕПРЕФИКСНЫМ ’ПРИСВОЕНИЕ.

239

С.23в ГОСТ 27974 -88

КАДР fА341В piece) -структура содержащая букву у букву г букву и для выборки целого букву с букву ч букву с букву т для выборки целого букву о букву у букв* к для выборки целого букву и для выборки вектора из НАБОРОВ в себе

КОРЕНЬ (71В NONPREI ) г ПРОСТОЕ; СОСТАВНОЕ: ПРЕДСТАВИТЕЛЬ: пустое значение; процедура с [ПАРАМЕТРАМИ пыработываюшая ЗНАЧЕНИЕ.

■’КОРОТКОЕ { UFSHORTSETY) -короткое ’КОРОТКОЕ: ПУСТО.

КРАТКОЕ («5Е SKORTH } :;^ква к буква о буква р.

КРАТКОЕ I650 SHORГНЕIУ} КРА Г КОЕ 2КРАTKOF : ПУСТО.

ЛИТЕРА [13В ALPHA) -а; б; в; г; д; с; ж; э; и; В; к; л; м; и: о: п; р; с; т: у; ф; х; ц; м; иг; щ; ъ; ы; ь; >; ю; я; I.

ЛОКАЛИЗУЮЩИЙ £ 44 В LEAP) :: локальный; глобальный: первичный.

ЛЮБОЙ {46 A VICTAL) :: НЕФОРМАЛЬНЫЙ; формальный.

МАССИВ (t2L ROWS} :: вектор; МАССИВ лекторов.

’МАССИВ (532AROWSETY) :: МАССИВ: ПУСТО.

’МЕРНОЕ {Ь5С $1 ГНЕТУ J :: ДОЛГОЕ ’ДОЛГОЕ; КРАТКОЕ ’КРАТКОЕ; ПУСТО.

МЕТКА f 12?К LAB } "СЛОВО для метки.

[МЕТКИ {123J LABS) - МЕТКА; ’МЕТКИ МЕ1КА.

’МЕТКИ [1231 LABStTY) ::’МЕТКИ; ПУСТО.

НАБОР { А341С COLLECTION) :: объединение III А. Б J ЮНА ПАК ЕТА повлияю.

’НЕПОЛАВЛЯЕМОЕ | А34ЮITNSUPPR EETY} неподавлясмос; ПУСТО.

НЕПРЕФИКСНЫЙ {9421 NOMAD) :: меньше; больше; разделить: равно; умножить; звездочка.

НЕРАСЩРОЦЕЩУРИВАЕМОЕ 6?А NONPROCJ :: ПРОСТОЕ; СОСТАВНОЕ. ПРЕДСТАВИТЕЛЬ. ИМЯ НЕРАСП; ПРОЦЕДУРА С ’ПАРАМЕТРАМИ вырабатывающая ЗНАЧЕНИЕ, , .

НЕСОСТАВ1ЮЕ { 4?А NONSTOWED} :; ПРОСТОЕ; ИМЯ ВИЛА: ПРОЦЕДУРА; ПРЕДСТАВИТЕЛЬ; пустое значение.

НЕФОРМАЛЬНЫЙ (46В VIRACT} ;; виртуальный; фактический

НОМЕР ( 12» TALLY } :: I НОМЕР Г

’НОМЕР (542DTALLETY} :: НОМЕР. ПУСТО

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

ОБЪЕКТ (4 1А COMMON) вид; приоритет; тождество Для ПРОЛИЛА, переменная как имя ПРОВИДА; операция как ПРОВИД; ПАРАМЕТР; поле аила ВИД среди [ПОПЕЙ

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

[ОБЫЧНЫЕ £121 MOODS] :: ОБЫЧНОЕ; [ОБЫЧНЫЕ ОБЫЧНОЕ.

’ОБЫЧНЫЕ £4?В MOODSETY) :: ’ОБЫЧНЫЕ; ПУСТО.

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

ОПЕРАЦИЯ -{45A PRAM) :: ДВУМЕСТ НАЯ; ОДНОМЕСТ НАЯ

ОПИСАНИЕ U23E DEC) - СЛОВО для ВИДА: ИНФИКС для приоритет ПРИОРИТЕТ; ИНДИКАНТ ДЛЯ ЗНАЧЕНИЯ НОМЕР; ИНФИКС для ДВУМЕСТНОЙ; ПРЕ-ФИКС для ОДНОМЕСТНОЙ.

[ОПИСАНИЯ £ 1230 DECS) - ОПИСАНИЕ; [ОПИСАНИЯ ОПИСАНИЕ.

’ОПИСАНИЯ { I23C DECSETY) ^ОПИСАНИЯ: ПУСТО.

ОСНОВА (5 A UNIT} •: прицеленное присваивание; приведенное отношение одно-именностм; приведенный текст процедуры; переход; пропуск; ТРЕТИЧНОЕ.

ОФОРМЛЕННОЕ 11ЗЗА STYLE) :: краткое; выделенное; стиля НОМЕР.

ПАКЕТ £ A341D COLLITEM) :: структура содержащая букву п цифру один для выборки ВСТАВКИ букву п букву а букву в букву толя выборки процедуры вырабатывающей целое букву у букву д букву к для выборки целого букву в= цифру дна для выборки ВСТАВКИ в себе

ПАРА f 48Е PROP] :: ОПИСАНИЕ; МЕТКА; ПОЛЕ.

[ПАРЫ {4Я0 PROPS) ^ПАРА; ’ПАРЫ ПАРА.

240

ГОСТ 27'974 88 С.2 39

7ПАРЫ («CPROPSFTY} :; (ПАРЫ; ПУСТО.

ПАРАМЕТР { 12Q PARAMETER } :: параметр вид» ВИД.

7ПАГАЫЕТГИЗОВАННАЯ [ J2D PAKAMtlY) ; ; С (ПАРАМЕТРАМИ; ПУСТО (ПАРАМЕТРЫ I 12РPARAMETERS) "ПАРАМЕТР; (ПАРАМЕТРЫ ПАРАМЕТР ПЕРВИЧНОЕ{5D PRiMATY) :: приведенная вырезка: прнаедхмшЯ вызов: приме-денное эгюбрижземое: приведенное ядро; приведенный текст формата: приведенный ислюльзующиЯСЛОВО ипсиТификагор; 3 АКРЫТОЕ предложение.

'"ПОДВИЖНОЕ (12KFLEXETY) : подвижное; ПУСТО.

ПОЛЕ { 123 FIELD} :: СЛОВО дня выборки ВИЛА

(ПОЛЯ {121 FIELDS) ПОЛЕ. (НОЛЯ ПОЛЕ.

ПОНЯТИЕ { I3A NOTION} :: ЛИТЕРА; ПОНЯТИЕ-ЛИТЕРА

’ПОНЯТИЕ (tJCNOTETY) :: ПОНЯТИЕ: ПУСТО.

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

ПРЕДСТАВИТЕЛЬ £ 12$UNITED) :; объединение (ОБЫЧНЫХ воедино.

ПРЕФИКС { 942К ТАМ) : выделенное СЛОВО; ПРЕФИКСНЫЙ 'ПРИСВОЕНИИ. ПРЕФИКСНЫЙ перед НЕ ПРЕФИКСНЫМ ПРИС ВОЕНИЕ.

ПРЕФИКСНЫЙ {942Н MONAD} ::или; и; ампхреенп; неровно: ml-больше; не меньше; «п до; пропенг; элемент; меньшее целое: большее целое; плюс и на: ис; тильда; вниз: вверх; плюс; минус; префикезлай стеля HOMFP.

ПРИВОДИМО { I22CSORT} : сильно: крепко: раскрыто; слабо; мягко ПРИВОДИМО! {31ASOID} :: ПРИВОДИМО выдающее ЗНАМЕНИТ.

ПРИЗНАК {481 QUALITY J :: ВИЛ; ЗНАЧЕНИЕ НОМЕР: БИНАРНОЕ: метка; выборке ВИДА

ПРИМЕНЯЮЩИЙ {4 8В DEFIED} :: определяющий: мяголмуютий.

ПРИОРМГИ' { 1’ЗГ PR.1O-) :; I; II; ГП: НС 1: 111 II; III 111; Hl 111 I; III III II DI III HI.

■(ПРИСВОЕНИЕ { 9423 BECOML'SETY) ■ перед прыеноитть; перед присвоить напри*о; ПУСГО.

ПРИСТАВКА { 71А PREF’} ;: процедура иырзбэтынаютая: ИМЯ.

(ПРИСТА ИКИ (71С* FREI SFTY} :; ПРИСТАВКА '.'ПРИСТАВКИ; ПУСТО.

ПРОВИДЦА MODINE) -: процедура. ВИД.

ПРОЛОГ-! 73В HEAD} ^ПРОСТОЕ; ПРИСТАВКА: структура содержатся:. ?ПОЛ-ВИЖНЫЙ МАССИВ ит, процедура с: обьоамнеяис; пустое зиажеинс.

ПРОСТОЕ £ 12В PLAIN} "ЧИСЛОВОЕ: логическое: литерное.

ПРОЦЕДУРА { J2N PROCEDURE) процедура ’ПАРАМЕТРИЗОВАННАЯ пыраба плватопия ЗНАЧЕНИЕ.

ПРЯМОЕ {Ы<; COHORT } :; присваивание п СРЕДЕ; ядро в СРЕДЕ; -отношение одноименности в ФЕДЕ: тгаображжемос и СРЕДЕ: ЛОКАЛИЗУЮЩИЙ генератор в СРЕДЕ: текст фот мл га и СТЕ ЯЕ.

ПУНКТ {Д34 IN COMARK) и ул».; цифра, литера.

пусто { 12<;емртуЬ: .

РАЗМЕРНОЕ {SlOASlZl) : длинное; короткое.

’РАЗМЕРНОЕ [l’D SIZITYj "длинное ’ДЛИННОЕ! короткое ^КОЮТКО!; ПУСТО г

РАМКА f АЭ41 Н IKAMI ) :: структура содержащая букву в для выборки ВСТАВКИ букву п букву о букву в букву т пня выборки лроц-сдуры вырэбатыпаюикй целое букву п букву о букву А бу киу а Сукну в дня выборки логическою букву и букиу а букву р букву к для выборки литерного в себе.

РАСКРЫВАЕМОЕ {бИ' MORI } :: выборка в СРЕДЕ; вырезка в СРЕДЕ; вылов п СРЕДЕ: текст процедуры «СРЕДЕ; АРНАЯ формула н СРЕДЕ; неп-ользузоший СЛОВО идентификатор и СРЕЛЕ-

РАСКРЫТИГ { 61 С МЕКК } :. сохранение:, разыменование; распрошсдуриаание.

СЛОВО { 94 2А TAG ) :: БУКВА. СЛОВО БУКВА; СЛОВО ЦИФРА.

СЛОГОВОЕ £б5В BYTES} :: структура содержащая ’МЕРНУЮ букву алеф для ны борки пек гора ИЗ литерных я себе.

СЛОЙ £ 123В LAYER) ;: новы* 'ОПИСАНИЯ ’МЕТКИ

24!

СМОГОСТ 27974 -88

СМЯГЧЕНИЕ f 6lOD SOFT? :: сохранение ; мягкое рмпроцвдп’кммне.

СОСТАВНОЕ [ 12Н STOWED} :: структур* содержащая 'ПОЛЯ а себе; ’ПОДВИЖНЫЙ МАССИВ из ВИДА.

СРЕДА I 123 A NEST} -СЛОЙ; СРЕДА со СЛОЕМ.

’ССЫЛКА НА{531В REFLEXETY} :: ИМЯ; ИМЯ подвижного; ПУСТО.

СТАНДАРТНОЕ { 942Е STANDARD} :: целое, вещественное, логическое; литерное; формат; пустое значение, комплексное; комплексное лат; битовое; слоговое; строковое; сема; файл, канал.

СТОП { А1В STOP} :: букв* эс .таг букв* тэ лат букв» о лат буква пэ лат для метки букв» с буква т бук в* о буква п для метки.

ТИП {А341Р TYPE} ;: целое; вещественное; логическое; комплексное; строковое; битовое; целою выбора; логического выбора; форматное; бесформатное. *

ТОЧКА I А341М MARK) :: знак, точка; показатель; комплексное; логическое.

ТРАБЕСФ (ТРАБЕСФ БЕСФОРМАТНОЮ АЗ+1К GPATTERN J . : структура сапер-жатая букву в для выборки ВСТАВКИ букву с букву □ букву с букву ц для выборки вектора из процедур вырабатывающих целое в себе.

ТРАВЫБ [ТРАФАРЕТ ВЫБОРА АМН CPATTERN) о; структура содержащая букву в для выборки ВСТАВКИ букву г букву и букву п для выборки целого букву с букву т букву р для выборки вектора из ВСТАВОК в себе.

ТРАФАРЕТ ( A34LG PATTERN} :: структура содержащая букву т букву и букву и алл выборки целого букву р букву а букву м букву к букву и алл выборки пек-тор* из РАМОК в себе.

ТРАФОР [ ТРАФАРЕТ ФОРМАТНОГО A341J FPATTERN} -структур* содержащая букву в для выборки ВСТАВКИ букву п букву р букв у ф для выборки процедуры вырабатывающей ФОРМАТ в себе.

ТРЕТИЧНОЕ { SB TERTIARY} "Псевлоим»; приведенная АРНАЯ формула; ВТОРИЧНОЕ.

УКРЕПЛЕНИЕ (61В FIRM) -РАСКРЫТИЕ; объединения.

УКРЫТИЕ ( 73А SAFE} :: укрытое; ЦИ помнит ВИЛ УКРЫТИЕ; инь УКРЫТИИ; ми УКРЫТИЕ; запомненные ЗНАЧЕНИЕ! ЗНАЧЕНИЕ? УКРЫТИЕ.

УНАРНОЕ ( 542В MONADIC) ;: приоритета 111 III Hl 1.

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

УСИЛЕНИЕ [61А STRONG) -УКРЕПЛЕНИЕ; обобщение, векторизация; опустошение.

УТВЕРЖДЕНИЕ (13D THING} - ПОНЯТИЕ; ^ПОНЯТИЕ!) ?ПОНЯТИЕ2; УТВЕРЖДЕНИЕ (?ПОНЯТИЕ!) ’ПОНЯТИЕ!.

ФОРМА fol Е FORM) .-; РАСКРЫВАЕМОЕ; ПРЯМОЕ

ФОРМАТ < А34 1A FORMAT} :; структур» содержания букву алеф для выборки вектора из КАДРОВ я себе.

ФОРПАТ (A34 1L FIVMAT) :: дк 1 определение структуры содержащей букву алеф для выборки вектора из структур содержащих букву у букву г букву и алл выборки целого букву с букву ч букву с букву Г для выборки целого букву о бу к-ву у букву к для выборки целого букву к для выборки лекторе иэ объединения структуры содержащей букву т букву р букву а букву ф для выборки объединения ТРАФАРЕТА ТРАВЫБА структуры ссцзсржащей букву в для выборки ИСТ АНКИ букву п букву р букву ф сипя выборки процедуры вырабатывающей использование ци 1 в себе ГРАБЕСФОРА пустого значения воедино букву в для выборки ВСТАВКИ в себе ПАКЕ ТА воедино в себе в себе.

Ш (I21'Ml. } ;; «и НОМЕР.

ЧИКЛ (35AFROBYT} ;: нижиия предел; шаг; верхний предел.

ИФРА( 942С DIGIT} :: шифра нуль; цифра одни; цифра два; цифра три; цифра нс-паре ; цифра пядь; цифра шесть; цифра семь; цифра восемь; цифра девять.

ГОСТ ?79Т4-88< .241

ЧАСТЬ bj-EPART) :: ПОЛЕ; ПАРАМЕТР.

'ЧАСТИ p3DPARTSp ;: ЧАСТЬ; 'ЧАСТИ ЧАСТЬ.

ЧИСЛО {810В* NUMERAL) ;:мату pin ысос число; рациональное число; дсйствннль ное число.

ЧИСЛОВОЕ { 12С IKTREAl J :: 7РАЗЯЕРНОЕ целое. ’РАЗМЕРНОЕ венке твс-ю«х ШАБЛОНf A541F PICTURE'1 :: структура содержащая букву т Охкве о букве л букву ф ДЛЯ! выборки объединения ТРАФАРЕТА ТРАВЫБА ТРАФОРА ТРАБЕС-ФОРА пустого значения воедино букву я для выборки ВСТАВКИ в себе.

ЭПИЛОГ 1?ЗС TAILEO 1;: ЗНАЧЕНИЕ; !ПОЛЯ в себе; !ПАРАМ! ГРАМИ пыраба 1Ыяшошм ЗНАЧЕНИЕ; !ОБЫЧНЫХ воедино; ПУСТО.

>43

С.24 2 ГОСТ 27974-88

ИНФОРМ АЦИОННЫЕ ДАННЫЕ

1.ИСПОЛНИТЕЛИ

В.П.Морозов, д-р. техн, наук, профессор, Г.С.Цектин. д-р. физмат- наук. А.-Ф.Рар, Л.Н.Терехов, каш. физ.-мпт. наук, О. Е.Климова. В.В.броль. В.&.Якоп-лев, К.Б.Скачхо», И. Б. Гнндыш, Э-В.Олени*™, Д.Ю. Жуков, Ю. И. Карпов, Ф.Х. Кабалима, В.В.Пинкова, Н.И.Егсрспа.

2. УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ поевамоштением Государственною- комитета СССР нос Гандар гам от 21Л2Л8 Г 43*0

3. Срок проверки — 1996 г., периодичность проверки - .5 лет.

4. ВВЕДЕН ВПЕРВЫЕ

5. ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ

Обозначение НТД. на который лама семяка

Номер гарип<пк«*1ия

27465-87

2

244