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

811 страниц

2283.00 ₽

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

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

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

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

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

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

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

Страница 2

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

ГОСУДАРСТВЕННЫЙ стандарт СОЮЗА ССР

гост

ЯЗЫК ПРОГРАММИРОВАНИЯ КОБОЛ    22558—89

Programming language COBOL    (СТ СЭВ

6184-88,

ИСО 1989-85)

ОКСТУ 4002

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

Часть 1. ОСНОВНЫЕ ПОЛОЖЕНИЯ 1. ВВЕДЕНИЕ К СТАНДАРТУ 1.1. Область действия н назначение

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

].2. Структура спецификаций языка

Организация спецификаций Кобола в настоящем документе базируется на понятии функционального обрабатывающего модуля. В языке выделены одиннадцать функциональных обрабатывающих модулей: ядро;

последовательный ввод-вывод;

относительный ввод-вывод;

индексный ввод-вывод;

межпрограммные связи;

сортировка-слияние;

обработка исходных текстов,

генератор отчетов;    „

коммуникации;

отладка;

сегментация.

Девять из модулей, как указано ниже, содержат элементы, которые в модуле разделены на элементы уровня 1 и элементы уров-

I

Страница 4

ГОСТ 22558-89 С. У

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

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

Модуль обработки исходного текста содержит элементы языка для вставки и замены текста исходной программы как части компилируемой исходной программы. Элементы модуля обработки исходного текста разделены на два уровня. Уровень 1 модуля предоставляет возможность копирования текста в исходную программу из единственной библиотеки. Уровень 2 данного модуля предоставляет дополнительные возможности изменения библиотечного текста в процессе копирования, определения нескольких библиотек Кобола во время компиляции и изменения текста исходной программы.

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

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

Модуль отладки предоставляет средства, при помощи которых пользователь может указывать свой алгоритм отладки — условия, при которых данные или процедуры контролируются во время выполнения программы. Элементы модуля отладки разделяются на два уровня. Уровень 1 модуля отладки предоставляет основные возможности отладки, включающие возможность указывать выборочное нлн полное контролирование параграфов. Уровень 2 модуля отладки предоставляет полные возможности отладки в языке Кобол.

3

Страница 5

С. 4 ГОСТ 22558-69

Модуль сегментации обеспечивает совмещение памяти для секций раздела процедур во Бремя выполнения. Элементы модуля сегментации разделены на два уровня. Уровень 1 сегментации предусматривает номера сегментов секций и фиксированные границы, сегментов. Уровень 2 сегментации добавляет средства изменения, границы сегментов.

1.3.    Структура документа

Настоящий документ состоит из 17 частей.

Часть 1 содержит справочные сведения о языке и состоит из введения к стандарту и списка элементов языка.

Часть 2 представляет концепции, имеющие отношение к использованию и организации средств языка Кобол.

Часть 3 состоит из глоссария, определяющего термины в соответствии с их значением в Коболе.

Часть 4 содержит общие сведения.

Часть 5 содержит сводки форматов в английской и русской нотациях.

Части 6-16 содержат спецификации одиннадцати функциональных обрабатывающих модулей. В этих частях спецификации уровня 2 выделены рамкой.

В частях 2- 16 включены подробные спецификации стандарта языка Кобол. В части 17 содержатся приложения.

1.4.    Рекомендации по использованию текста стандарта

Очевидно, что стандарт будет изучаться с нескольких различных точек зрения.

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

Спецификация каждого из элементов языка производится как для русской, так и для английской нотаций. Там, где это требуется в тексте настоящего стандарта, приводятся форматы. Между конструкциями английской и русской нотаций языка Кобол, специфицированных настоящим стандартом, существует полное семанти-.ческое соответствие, если исходные данные объектной программы подготовлены без использования русского алфавита. Там, где в тексте требуется ссылка на лексические элементы языка, первым приводится лексический элемент английской нотации, за ним в скобках следует элемент русской нотации. Форматы языковых конструкций приводятся также для английской и русской нотаций. Спецификации особенностей использования данных, нредставлен-

4

Страница 6

ГОСТ 22W8—39 С 5

ных в русской лексике, снабжаются пометкой «для русской нота* цни».

Определение модулей и их уровней, на которых появляются определенные средства языка, приводится в списке элементов Кобола по разделам Кобола. В этом списке приведены в деталях все элементы стандарта языка Кобол и указано их появление в различных модулях. Элементы, не содержащиеся полностью на одном уровне модуля, приведены в деталях, достаточных для определения нахождения каждой» подэлемента. Например, оператор READ (ЧИТАТЬ) появляется на уровне 1 модуля последовательного ввода-вывода, относительного ввода-вывода и индексного ввода-вывода. Так как определенные фразы оператора READ (ЧИТАТЬ) появляются только на уровне 2 этих модулей, подэлементы оператора READ (ЧИТАТЬ) вынесены в отдельный список.

Графическое представление 11 функциональных обрабатывающих модулей, образующих стандарт Кобола, показано в табл. 1, в которой используются сокращения (например, 2 ИПД 0,2), указывающие иерархическую позицию каждого уровня в функциональном обрабатывающем модуле, также как и число уровней, на которые разделены элементы модуля. Сокращенная запись состоит (слева направо) из однозначного числа, указывающего позицию уровня в иерархии, трехбуквенного обозначения модуля и двух однозначных чисел, указывающих минимальный и максимальный уровни модуля. Число нуль указывает, что допустимо пустое подмножество, соответствующее наименьшему уровню в модуле. Например, 2 ИПД 0,2 указывает, что этот уровень является вторым уровнем модуля индексного ввода-вывода, который содержит нулевой уровень и два ненулевых уровня (уровень 1 и уровень 2). 2 ЯДР 1,2 указывает, что этот уровень является вторым ненулевым уровнем ядра, которое состоит из двух ненулевых уровней (уровень 1 и уровень 2).

Для указания модулей используются следующие обозначения.

Ядро

ЯДР

Последовательный ввод-вывод

ПОД

Относительный ввод-вывод

отд

Индексный ввод вывод

ИПД

Межпрограммные связи

МПС

Сортировка-слиянне

СРТ

Обработка исходных текстов

оит

Генератор отчетов

ГОГ

Коммуникации

КОМ

Отладка

отд

Сегментация

СЕГ

5

Страница 7

С 6 ГОСТ 225W-89

110ДМи0м«С1Я8

КобОяв

Обязательные <uf.Riaic.iMiu в поя

Ялро

Последова

тельный

•вм-вивид

Относитель

ный

•вод-вмвод

И«истин*

МежВрО|р«М-ИМ/« <'•«>11

Максималь

ное

2 ЯДР 1.2

2 ПОД 1.2

2 ОТД 0.2

- ИНД 0.2

2 МПС 1.2

Промежу

точное

1 ЯДР 1.2

1 ПОД 1.2

1 ОТД 0.2

: ипд с .2

1 МПС 1.2

Минималь

ное

1 ЯДР 1.2

1 ПОД 1,2

Нуль (пустое подмножество)

Нуль (пустое подмножество)

1 МПС 1.2

1.5. Определение реализации стандарта языка Кобол

В этом документе представлены описания средств языка, образующих стандарт языка Кобол. Стандарт языка Кобол состоит из II модулей, семь из которых обязательны и четыре — необязательны. В п. 1.5 н его подпунктах определены критерии для правильного определения того, насколько реализация соответствует стандарту языка Кобол.

1.5.1. Определение подмножеств

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

1Макснмальное подмножество стандарта языка Кобол содержит все элементы наивысшего уровня всех обязательных модулей, а именно:

элементы уровня 2 ядра, последовательного ввода-вывода, относительного ввода вывода, индексного ввода вывода, межпрограммных связей и обработки исходных текстов;

элементы уровня I сортнровкн-слняння.

Промежуточное подмножество стандарта языка Кобол содержит все элементы уровня I всех обязательных модулей:

6

Страница 8

ГОСТ 22558-89 С. 7

Таблица I

подуди

ЫИОЖССТВ.11)

НеоОвзжсхышс ходули (*е обязательны » подшолествах)

Сортиров-

OfipiOoi .о «модных

ICKCtOB

ГеяератОр

014»ГО»

Коммуникации

OUIA»*

Сегментация

1 СРТ 0,1

2 ОПТ 0.2

1 ГОТ 0.J

2 КОМ 0.2

2 ОГЛ 0.2

2 СЕГ 0.2

1

1 СРТ 0.1

J ОПТ 0.2 ■

1 КОМ 0.2

1 01Л 0,2

1 СЕГ 0.2

Нуль (пустое

подкноже-

стоо)

Нуль (пустое подмножество)

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

Минимальное подмножество стандарта языка Кобол содержит все элементы уровня I ядра, последовательного нвода-вывода и межпрограммных связей.

1.5.2. Определение соответствия реализации стандарту

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

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

Кроме того, каждая реализация должна удовлетворять требованиям, изложенным ниже (пп. 1.5.2.1—1.5.2.4).

1.5.2.1. Замена элементов или дополнительные элементы языка

Реализация не должна для выполнения функций, идентичных функциям элементов стандарта языка Кобол, допускать замену или включение дополнительных элементов языка в исходной программе. Однако в спецификациях стандарта языка Кобол имеется ряд элементов языка, синтаксис или действие которых определяется реализацией (приложение 2. п. 2); но и пои определении синтаксиса или правил для таких элементов не разрешается замена элементов или включение дополнительных элементов в исходную программу.

7

Страница 9

С. 8 ГОСТ 22558 -89

!.5.2.2. Соглашения о стандартных элементах языка

Реализация должна поддерживать синтаксис и обеспечивать функции всех элементов стандарта языка Кобол, как это определено данным уровнем модуля, включаемым в реализацию, за исключением элементов языка, зависящих от специфических компонент оборудования, которые приведены в п. 1.5.2.5.1 настоящей части. Если реализация поддерживает синтаксис элементов стандарта языка Кобол для данного уровня модуля, отличного от того, поддержка которого объявлена, реализация должна обеспечить функции, определенные стандартом языка Кобол для данного синтаксиса, или идентифицировать эти элементы языка как нестандартные расширения (п. 1.5.2.52 настоящей части).

1.5.2.3.    Устаревшие элементы языка

Устаревшие элементы языка - • элементы в стандарте языка Кобол, которые будут изъяты при следующем пересмотре стандарта (приложение 2, п. I). Устаревшие элементы языка не были ни усилены, ни модифицированы в процессе пересмотра. Взаимодействие между устаревшими и остальными элементами языка не определено, если не оговорено специально п стандарте. Элементы языка, которые предполагается изъять из стандарта, будут сначала идентифицированы как устаревшие элементы языка.

От реализации стандарта Кобола требуется поддержка устаревших элементов в подмножестве н уровнях необязательных модулей. поддержка которых объявлена. Документация, связанная с реализацией, должна идентифицировать все устаревшие элементы языка в данной реализации.

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

1.5.2.4.    Действия, обеспечиваемые вне исходной программы

Если любая функция, которая выполняет функции элемента

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

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

1.5.2.5.    Уточнения

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

1.5.2.5.1. Элементы языка, зависящие от оборудования

8

Страница 10

ГОСТ 22558-89 С. 9

Ряд элементов языка рассчитан на определенный тип технических средств (приложение 2, п. 3). Для того, чтобы реализация удовлетворяла требованиям этого стандарта, разработчик должен указать технические средства, которые поддерживает реализация. Более того, когда объявлена поддержка специфических технических средств, должны быть реализованы все элементы языка, которые зависят от этих средств, если модуль, в котором они появляются. включен в реализацию. Элементы языка, имеющие отношение к специфическим компонентам оборудования, для которых не объявлена поддержка реализации, нет необходимости реализовать. Отсутствие таких элементов должно быть указано реализацией стандарта языка Кобол.

1.5.2.5.2.    Расширение элементов языка

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

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

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

1.5.2.5.3.    Зарезервированные слова

Реализация стандарта языка Кобол должна распознавать в качестве зарезервированных слов все зарезервированные слова Кобола, встречающиеся в спецификациях семи обязательных модулей и четырех необязательных модулей (ч. 4, п. 8).

1.5.2.5.4.    Замена литер

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

1.5.2 5.5. Оператор ENTER (ВОПТИ)

9

Страница 11

С. 10 ГОСТ 22538-89

По усмотрению разработчика, реализация стандарта языка Кобол может включать или не включать оператор ENTER (ВОЙТИ).

1.6.    Соответствие исходной программы стандарту

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

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

В стандарте языка Кобол имеется ряд ситуаций, в которых результат выполнения оператора не определен или непредсказуем (приложение 2. п. 4). Исходная Кобол-программа, допускающая такие ситуации, не соответствует стандарту, поскольку результат выполнения не определен стандартом языка Кобол.

1.7.    Сочетание соответствующей стандарту программы м соответствующей стандарту реализации

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

В общем случае, стандарт языка Кобол не указывает верхние количественные ограничения числа операторов в программе и числа операндов в некоторых операторах. Такие ограничения могут изменяться от реализации к реализации.

2. СПИСОК ЭЛЕМЕНТОВ ПО МОДУЛЯМ

2.1. Общее описание

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

Столбец, озаглавленный «Уровень 1», определяет уровень 1 элементов модуля. Столбец, озаглавленный «Уровень 2», определяет уровень 2 элементов модуля.

Ю

Страница 12

ГОСТ 22558-89 С II

Символ «X» в столбце означает наличие указанного элемента в указанном уровне модуля.

Символ «—» в столбце означает отсутствие указанного элемента в указанном уровне модуля.

Символ «+» в столбце означает наличие указанного элемента в указанном уровне модуля; однако этот элемент является устаревшим элементом в стандарте Кобола, поэтому он будет удален в следующей редакции стандарта.

2.2. Список элементов в модуле ядра_

Элемент    Уромнь    1    »эвевь    2

ПОНЯТИЯ ЯЗЫКА

Набор литер

Литеры, используемые для слов в английской нотации 0—9. A—Z. - (дефис)

X

X

X

X

X

X

X

X

» русской йотаций А—Я. D, F. G. I, J. L. N. Q. R. S. U. V. W, Y, Z. 0-9. - (дефис)

Литеры, используемые для пунктуации " () . , ;

пробел.........

Литеры, используемые для пунктуации ; (двое

точие).........

Литеры, используемые для редактирования В -f

S(D) OCR(KP) Г>В(ДБ) /

Литеры, используемые в арифметических операциях + — * / ”.......

Литеры, используемые в отношениях «    >    —

X

X

X

+

X

X

X

+

< = > <........

Литеры, используемые при индексировании + — . Разрешена замена одной литерой    ....

Разрешена замена парами литер    ....

Разделители

X


X

X

X

X

X

X

X

X

X

X

X

X

ь

X


X

X

X

X

X

X

X

X

+

;<


» ( ) ., : пробел .... : (двоеточие).....

Строки-литер

Слова Кобола Не более 30 литер .... Слова, определенные пользователем имя алфавита ....

ИМЯ-КЛ4ССВ.....

имя-условия .... имя-данного ....

имя-индекса.....

номер-уровня    ...

мнемоническое-имя имя-ларзграфа .... имя-программы .... , нмя-программного- модуля

имя секции.....


II

Страница 13

С. 12 ГОСТ 22558-89

Уровеньi

Уровень I

Злсиеит

символ ическая-литсра Системные-имена имя-машины

X

X

X

+

X

X

X

X

X

X

X

X

+

X

X

X

X

X

имя реализации......

имя-языка.......

Зарезервированные слова

Обязательные слова.....

Ключевые слова......

Слова специальные литеры

Знаки арифметических операций -4--* / ••

Знаки арифметических операций при индекси

рованик -i........

Литеры отношения — ><>=< —

Необязательные слова.....

Слова специального назначении Стандартные константы.

ZERO (ПУЛЬ). ZEROS, ZEROES (НУЛИ), SPACE (ПРОБЕЛ). SPACES (ПРОБЕЛЫ) HIGH-VALUE (НАИБОЛЫНЕЕ-ЗНАЧЕ HUE). HIOH-VA.LUES (НАИБОЛЬШИЕ ЗНАЧЕНИЯ). LOW-VAI.UE (НАИМЕНЬ ШЕЕ ЗНАЧЕНИЕ), LOW-VALUES (НАИ МЕНЬШИЕ ЗНАЧЕНИЯ). QUOTE (КАВЫЧ КА), QUOTES (КАВЫЧКИ) .    ..    »

Стандартные константы:    сииволическая-лнтера

ALL литерал (ВСЕ литерал). ALL стандартная константа (ВСЕ стаидартная-константа). ALL символическая литера (ВСЕ символнческая-лм

тера) ........

Литералы

Числовые литералы: от 1 до 18 цифр . Нечисловые литералы; от 1 до 160 лнтер PICTURE строка-литер (ШАБЛОН строжа ли тер) .    .    .    .    .    •    •

X

X

X

+

X

X

X

+

Статья-комментарий ....

Однозначность ссылки Уточнение

Уточнен не недопустимо, имена должны быть однозначны при ссылке 60 уточнителей .... Индексирование 3 уровня индексов ....

X

X

X

X

X

X

X

7 уровней индексов Индексирование литералом .

X

X

X

X

X

X

Индексирование имепем-данного . Индексирование именем индекса . Относительное индексирование Модификация ссылки

Формат представления Порядковый номер ....

X

X

Страница 14

ГОСТ 225M-S9 С. 13

Уривсиь 2

Элемент

У ром к ь I

Продолжение строк

X

Нечисловой литерал......

Слова Кобола, числовой летерал, строка-литер

XX XX X ХХХХХ ХХ+++ ++ XX X ХХ+ X ххххххххх

шаблона ........

X

X

X

X

X

X

X

X

X

X

+

+

+

+

X

X

X

X

+

X

X

X

X

X

X

X

X

X

•Строки пробелов (пустые строки)

Строки комментария

Строки комментария со звездочкой (*)

Строки комментария с дробной чертой (/) Отладочная строка с литерой D (Т) в поле яндк катора .    .....

Структура исходной программы

Раздел идентификации обязателен .

Раздел оборудования необязателен Раздел данных необязателен Раздел процедур необязателен Заголовок конца программы РАЗДЕЛ ИДЕНТИФИКАЦИИ Параграф PROGRAM ID (ПРОГРАММА)

имя-программы.....

Параграф AUTHOR (АВТОР)

Параграф INSTALLATION (ПРЕДПРИЯТИЕ) Параграф DATE-WRITTEN (ДАТА-НАПИСАНИЯ Параграф DATE COMPILED (ДАТА-ТРАНСЛЯ ЦИИ)    .    .

Параграф SECURITY (ПОЛНОМОЧИЯ)

РАЗДЕЛ ОВОРУДОВАНИЯ Секция конфигурации Параграф ^^SOURCE-COMPUTER (ИСХОДНАЯ

нмя-машииы.......

фраза WITH DEBUGGING MODE (В РЕЖИ

МБ ОТЛАДКИ)......

-Параграф OBJECT-COMPUTRR (РАБОЧАЯ-МА

имя-машины.......

фраза MEMORY SIZE (РАЗМЕР ПАМЯТИ) Фраза PROGRAM COLLATING SEQUENCE (ПРОГРАММНЫЙ АЛФАВИТ) .

Параграф SPECIAL-'NAMES (СПЕЦИАЛЬНЫЕ

ИМЕНА) .......

Фраза ALPHABET (АЛФАВИТ) вариант STANDARD! (СТАНДАРТА) вариант STANDARD-2 (СТАНДАРТ-М) вариант NATIVE (ВНУТРЕННИЙ) вариант имя-реализации ....

вариант литерал......

Фраза CLASS (КЛАОО) .... Фраза CURRENCY SIGN (ВАЛЮТНЫЙ ЗНАК •Фраза DECIMAL POINT (ДЕСЯТИЧНАЯ ТОЧ . <КА).........

X

13

Страница 15

С. 14 ГОСТ 22658-89

У ре«пь г

Элемент

Уровень |

Фра» имя-реализации......

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

• X

X

• X

X

X

X

X

X

X

X

X

_

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

вариант 1S мисмошгкскос имя

вариант ON STATUS IS имя-условия (ВКЛЮ

ЧЕНО кил -условии).....

вариант OFF STATUS IS имя-условия (ВЫК ЛЮЧЕНО имя-условия)

Фраза SYMBOLIC CHARACTER (СИМВОЛИЧЕ СКАЯ ЛИТЕРА)......

РАЗДЕЛ ДАННЫХ

Секция рабочей памяти

Статья описания записи.....

Статья описания уровня 77 ....

Статья описания данного

Фраза BLANK WHEN ZERO (ПРОБЕЛ КОГ

ДА НУЛЬ).....

Фраза имя данного Фраза FILLER (ЗАПОЛНИТЕЛЬ)

Фраза JUSTIFIED (СДВИНУТО)

Фраза номер-уровня от 01 до 49; одна или две цифры

66.......

77.......

ЫН.......

Фраза OCCURS (ПОВТОРЯЕТСЯ) целое TIMES (целое РАЗ) фраза ASCENDING/DESCENDING KEY (ПО ВОЗРАСТАНИЮ/УБЫВАНИЮ КЛЮ

ЧА)........

фраза INDEXED BY (ИНДЕКСИРУЕТСЯ)

Йряза целое-1 ТО целое-2 TIMES DEPENDING N (пелос-1 ДО целое-2 РАЗ В ЗАВИСИМОС

ТИ ОТ).......

Фраза PICTURE (ШАБЛОН) строга-литер содержит ие более 30 литер литеры данных X 9 А операционные символы: S(3) V (Т) Р(М) литеры    фиксированной вставки    В    + — .    О

S 1    В ) CR (КР) DB (ДБ)    /    .    .

литеры    замещения или плавающей    вставки    •

+ - г<П) $    ( n v )    -    •    •    •

замена валютного знака замена десятичной точки .

Фраза REDEFINES (ПЕРЕОПРЕДЕЛЯЕТ) не может быть вложенной . может быть вложенной Фраза RENAMES (ПЕРЕИМЕНОВЫВАЕТ) Фраза SIGN (ЗНАК) ....

14

Страница 16

ГОСТ 22558-89 С. 15

уровень I

Элемент

Уровень I

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

J ,

X

X

.

X

и и

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X.

X

хл

X

X

X

X

X

X

X

X

X

• X

X

• X

X

X

X

X

X

X

X

тшт

X

X


(|НЕ| МЕНЬШЕ)


LESS < (JHEJ О


E({uaL ТО ([NE| РАВНО)


Фраза SYNCHRONIZED (ВЫДЕЛЕНО)

Фраза USAGE (об использовании)

BINARY (ДВОИЧНОЕ) .... COMPUTATIONAL' (ДЛЯ ВЫЧИСЛЕНИЙ DISPLAY (ДЛЯ ВЫДАЧИ)    .    .

INDEX (ДЛЯ ИНДЕКСА) PACKED-DECIMAL (ДЕСЯТИЧНОЕ)

Фраза VALUE (ЗНАЧЕНИЕ)    .    .

литерал.......

несколько литералов .... литерал-1 THROUGH литерал-2 (литерал-1 Г10 литерал-2) ... несколько диапазонов литералов

РАЗДЕЛ ПРОЦЕДУР

Арифметическое выражение.....

Знаки бинарных арифметических операций +

- * / ** ........

Знаки унарных арифметических операций -(--

Условные выражения.....

Простое условие ......

Условие отношении.....

Знаки операций отношеаня NOTJ GREATER THAN <[НЕ| БОЛЬШЕ)

NOT ------

NOT NOT NOT

NOTJ— {ГНК I —•) jREATF.R THAN OR EQUAL TO (БОЛЬ I1JE ИЛИ РАВНО) ....

Cess than or equal to (Меньше

ИЛИ РАВНО)

<=■.....

Сравнение числовых операндов Сравнение нечисловых операндов Сравнение имен индексов и (или) индексных

данных ........

Условие класса......

NUMERIC (ЧИСЛОВОЕ) .    .    .

ALPHABETIC (БУКВЕННОЕ) ALPHABETIC-LOWER (СТРОЧНЫЕ) ALPHABETIC-UPPER (ПРОПИСНЫЕ)

имя-класса......

Условие имени-условия ....

Условие знака ......

Условие состояния переключателя Сложное условие ....

Знаки логических олерзанЯ AND (И) OR

ШЛИ) NOT (НЕ).....

Отрицание условия .....


15

Страница 17

С. 16 ГОСТ 2255в~89

Урсоеыь I

Элемент

Уооьгиь г

Комбинированное условие ....

XX XX X XXXIX X ХХХХХ X X XX X XX X+I+XXXX X ХХХХ |

Условие в скобках .....

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

+

+

Сокращенные комбинированные условия отио

тений ........

Арифметические операторы .... Арифметические операнды имеют длину д

18 цифр........

Композиция операндов содержит не более

IS цифр........

Оператор ACCEPT «ПРИНЯТЬ) .    .    .

идентификатор . только одна передача данных число передач данных не ограничивается . фраза FROM мвемоническос-ими (С мнемоник

ское-мим).......

фраза FROM DA ТЕ/DAY/DA Y-OF - WEEK/T JM

(ДАТУ/ДЕНЬ/ДЕНЬ/-НЕДЕЛИ/ВРЕМЯ)

Оператор ADD (СЛОЖИТЬ) ....

идентификатор/литерал.....

несколько идентификаторов/литералов ТО идентификатор (С идентификатор)

ТО несколько идентификаторов (С неско.тьв

идентификаторов)......

ТО идентификатор/литерал GIVING иденткфи катор (С идентификатор/литерал ПОЛУЧАЯ

идентификатор......

ТО идснтнфнкатор/литерал GIVING несколько яденп»фнкаторов (С идентификатор/литерал ПО ЛУЧАЯ несколько идентификаторов .

Фраза ROUNDED (ОКРУГЛЯЯ)

фраза ON SIZE ERROR (ПРИ ПЕРЕПОЛНЕ

НИИ)........

фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛ

НЕНИЯ)........

фраза END ADD |КОНЕЦ-СЛОЖИТЬ) фраза CORRESPONDING (СООТВЕТСТВЕН

НО).......

Оператор ALTER (ИЗМЕНИТЬ) .    .    '

только одно имя-процедуры .... несколько имен-процедур Оператор COMPUTE (ВЫЧИСЛИТЬ) . арифметическое выражение .... несколько идентификаторов .... Фраза ROUNDED (ОКРУГЛЯЯ) фраза ON SIZE ERROR (ПРИ ПЕРЕПОЛНЕ НИИ) .    .

фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛ

НЕНИЯ)......

Фраза END-COMPUTE lKOHEU-ВЫЧЙСГШТЬ) Оператор CONTINUE (ПРОДОЛЖИТЬ)

X

X

X

Оператор DISPLAY (ВЫДАТЬ)

только одна передача данных

16

Страница 18

ГОСТ 22558--89 U 17

У|ю»гн1> 2

ypOMIIt. I

число передач данных не ограничено

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

+

+

X

X

X

__ •

X

_

X

X

X

X

X

_

X

X •

X

X

X

X •

+

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

идентифнкатор/литсрал.....

несколько идентификаторов/литералов фраза UPON мнемоническое-имя (НА миемони ческое-имя).......

Йаза WITH NO ADVANCING (БЕЗ ПРО

1ИЖЕННЯ)......

Оператор DIVIDE (РАЗДЕЛИТЬ)

BY идентификатор/литерал (НА идемтифика тор/литерал) .    ...

INTO идентификатор/литерал (НА идемтифика

юр/литерал).......

INTO несколько делимых (НА несколько дели

мых)........

GIVING идентификатор (ПОЛУЧАЯ идентнфи

катор) ........

GIVING несколько идентификаторов (ПОЛУ ЧАЯ несколько идентификаторов) фраза ROUNDED (ОКРУГЛЯЯ) фраза REMAINDER (ОСТАТОК)

Фриза ON SIZE ERROR (ПРИ ПЕРЕПОЛНЕ

НИИ)........

фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛ

НЕНИЯ) .......

фраза END-D1VIDE (КОНЕЦ-РАЗДЕЛИТЬ) Оператор ENTER (ВОЙТИ)    ....

Оператор EVALUATE (ОЦЕНИТЬ) идентификатор/литерал .... арифметическое выражение ....

условное выражение.....

TRUE/FALSE (ИСТИНА/ЛОЖЬ) фраза AI.SO (ТАКЖЕ)    ....

фраза WHEN (КОГДА)    ....

фраза ALSO (ТАКЖЕ)    ....

фраза WHEN OTHER (ИНАЧЕ)

Фраза END-EVALUATE (КОНЕЦ-ОЦЕНИТЬ) Оператор EXIT (ВЫПТИ)    ....

Оператор GO ТО (ПЕРЕЙТИ К) . имя-процедуры обязательно .... имя процедуры необязательно фраза DEPENDING ON (В ЗАВИСИМОСТИ

Оператор IF (ЕСЛИ) ..'!!! только повелительные операторы повелительные н(или) условные операторы вложенные операторы (F (ЕСЛИ) необязательное слово THEN (ТО) фраза NEXT SENTENCE (СЛЕДУЮЩЕЕ

ПРЕДЛОЖЕНИЕ).....

фраза ELSE (ИНАЧЕ) .... фраза END-1F (КОНЕЦ-ЕСЛИ)

17

Страница 19

С 18 ГОСТ 225S8—89

У ром ни |

Уродень 2

Оператор INITIALIZE (ИНИЦИИРОВАТЬ) несколько идентификаторов .... фраза REPLACING (ЗАМЕНЯЯ) несколько REPLACING (ЗАМЕНЯЯ)

XXX XX ХХХХ X XX X X XXX X X ХХХХ XX XXXX XXXIXXXXX

Оператор INSPECT (ПРОСМОТРЕТЬ) на вхождение одной литеры на вхождение нескольких литер фраза TALLYING (СЧИТАЯ) фраза BEFORE/AFTER (ДО/ПОСЛЕ) , несколько фраз BEFORE/AFTER (ДО/ПОС

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

ЛЕ)........

несколько фраз TALLYING (СЧИТАЯ) фраза REPLACING (ЗАМЕНЯЯ) фраза BEFORE/AFTER (ДО/ПОСЛЕ) . несколько фраз BEFORE/AFTER (ДО/ПОС

ЛЕ)........

несколько фраз REPLACING (ЗАМЕНЯЯ) фразы TALLYING (СЧИТАЯ) и REPLACING

(ЗАМЕНЯЯ).......

фраза CONVERTING (ПРЕВРАЩАЯ)

Оператор MOVE (ПОМЕСТИТЬ) .

ТО идентификатор (В идентификатор)

ТО несколько идентификаторов (В несколько

идентификаторов) .....

дерсдахтирование цифровых редактируемых дан

ных    ........

ф^за CORRESPONDING (СООТВЕТСТВЕН

Оператор MULTIPLY (УМНОЖИТЬ) !

BY идентификатор (НА идентификатор)

BY несколько идентификаторов (НА несколько

идентификаторов)......

GIVING идентификатор (ПОЛУЧАЯ идентифи

GIVING несколько идентификаторов (ПОЛУ

ЧАЯ несколько идентификаторов)

фраза ROUNDED (ОКРУГЛЯЯ)

ф^ази ON SIZE ERROR (ПРИ ПЕРЕПОЛНЕ

фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛ

НЕНИЯ) .......

фраза ENDMULT1PLY (КОНЕЦУМНОЖИТЬ Оператор PERFORM (ВЫПОЛНИТЬ) имя-процедуры необязательно фраза THROUGH имя-процедуры (ПО имя-про

цедуры) ........

вариант повелительный оператор .

^аза END-PERFORM (КОНЕЦ-ВЫПОЛ

фраза TIMES (РАЗ)

фраза CJNTIL (ДО).....

фраза TEST BEFORE/AFTER (С ПРОВЕР КОИ В НАЧАЛЕ/В КОНЦЕ) .    .    .

X

Страница 23

С. 22 ГОСТ 22558-89

Уроммь 2

Элемсл

V poac.il. I

ичи-файла .    ............X

хххх ххххх x-ix ххк кхкхххххххх хх ххххххх хх ххх х хх

несколько ямсн-файло»    ...    X

фраза REEL/UNIT (КАТУШКУДОМ) .    .    X

фраза FOR REMOVAL (С УДАЛЕНИЕМ) фраза WITH NO REWIND/LOCK (БЕЗ ПЕРЕ

МОТКИ/С ЗАМКОМ)......

Оператор OPEN (ОТКРЫТЬ) ....    X

имя-файла    .    .    ....    X

несколько имей файлов............X

фраза INPUT (ВХОДНОЙ) .....    X

фраза WITH NO REWIND (БЕЗ ПЕРЕМОТ КИ)    ......    —

фраза REVERSED (РЕВЕРСНО) фраза OUTPUT i ВЫХОДНОЙ»    .    X

фраза WITH NO REWIND (БЕЗ ПЕРЕМОТ

КИ)    .....

фраза 1-0 (ВХОДНОИ-ВЫХОДНОИ)    X

фраза EXTEND (ДОПОЛНЯЕМЫЙ) несколько INPUT (ВХОДНОЙ). OUTPUT (ВЫ ХОДНОЙ) I. 10 (ВХОДНОЙ ВЫХОДНОЙ) несколько EXTEND (ДОПОЛНЯЕМЫЙ)

Оператор READ (ЧИТАТЬ) .... фраза NEXT (СЛЕДУЮЩУЮ) .... фраза INTO (В)    .    .    X

фраза AT END (В КОНЦЕ) ....    X

фраза NOT AT END (НЕ В КОНЦЕ)    X

фраза END-READ (КОНЕЦ-ЧИТАТЬ)    X

Оператор REWRITE (ОБНОВИТЬ)    X

фраза FROM (ИЗ ПОЛЯ)..........X

Оператор USE (ИСПОЛЬЗОВАТЬ)    X

фраза EXCEPTION/ERROR PROCEDURE (ПРОЦЕДУРЫ ОШИБКИ) ....    X

ON имя-файла (ДЛЯ имя-файла) ...    X

ON иесколько-имен-файлов (ДЛЯ несколько имен-файлов    ....    —

ON INPUT (ДЛЯ ВХОДНЫХ) ...    X

ON OUTPUT (ДЛЯ ВЫХОДНЫХ) .    .    X

ON 1-0 (ДЛЯ ВХОДНЫХ-ВЫХОДНЫХ) .    X

ON EXTEND (ДЛЯ ДОПОЛНЯЕМЫХ) .    ~

Оператор WRITE (ПИСАТЬ) .    ...    X

Фраза FROM (ИЗ ПОЛЯ)    X

фраза BEFORE/AFTF.R ADVANCING (ДО/ПОС-

ЛЕ ПРОДВИЖЕНИЯ)..........у

целое UNF./UNES (целое СТРОК) .    .    х

идентификатор LINE/LINES (идентификатор

СТРОК)................X

мкемоничеекое-имя    ....    _

PAGE (СТРАНИЦЫ) ...    х

фраза AT ENDOF-PAGE (В КОНЦЕ СТРАНИЦЫ! ......    ...    —

фраза NOT AT ESD-OF PAGE (НЕ В КОНЦЕ

СТРАНИЦЫ) ..............—

фраза END-WRITE (КОНЕЦ-ПИСАТЬ)    —

Страница 24

ГОСТ 22558-89 С. 23

2.4. Список элементов в модуле относительного ввода-вывода

Уроасаь 2

Элеиеиг

УрОЙСИ» I

ПОНЯТИЯ ЯЗЫКА

Слова, определенные пользователем имя файла ..... имя записи Состояние ввода-вывода .

X

X

X

X

X

X

РАЗДЕЛ ОБОРУДОВАНИЯ

Секции ввода-вывода

Параграф FILE-CONTKOL (УПРАВЛЕНИЕ-ФАЙ

ЛАМИ).........

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X.

X

X

X

X

+

X

X

Стагья управления файлом фраза SELECT (ДЛЯ) .    .

фраза OPTIONAL (НЕОБЯЗАТЕЛЬНОГО) только входной, входной выходной И ДОНОЛ

няемый файлы .....

фраза ACCESS MODE (ДОСТУП) SEQUENTIAL (ПОСЛЕДОВАТЕЛЬНЫЙ! RANDOM (ПРОИЗВОЛЬНЫЙ)

X

X

X

X

S

X

X

X

X

X

DYNAMIC (ДИНАМИЧЕСКИЙ)

RELATIVE    KEY    (ОТНОСИТЕЛЬНЫЙ

КЛЮЧ)    ,

фраза ASSIGN (НАЗНАЧИТЬ) .

ния-реализаиии......

литерал.......

Фраза FILE STATUS (СОСТОЯНИЕ ФАЙЛА фраза ORGANIZATION RELATIVE (ОРГАНИ ЗАЦИЯ ОТНОСИТЕЛЬНАЯ) фраза RESERVE (РЕЗЕРВИРОВАТЬ) Параграф I O CONTROL (УПРАВЛЕНИЕ-ВВО

ДОМ-ВЫВОДОМ)......

фраза RERUN (ПЕРЕПРОГОН) фраза SAME AREA (ОБЩАЯ ОБЛАСТЬ) фраза SAME RECORD AREA (ОБЩАЯ ОБ ЛАСТЬ ЗАПИСИ) .....

РАЗДЕЛ ДАННЫХ

■Секция файлов

Статья описания файла ...    .

X

X

X

X

X

+

+

X

X

X

X

X

индикатор уровня FD (ОФ) фраза BLOCK CONTAINS (В БЛОКЕ) целое I RECORD/CHARACTERS (целое-1 ЗАПИСЕЙ/ЛИТЕР) ......

целое-1 ТО целое-2 RECORDS/CHARACTERS (целое ! ДО целое-2 ЗАПИСЕЙ/ЛИТЕР) фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) фраза LABEL RECORDS (МЕТКИ| .

, .фраза RECORD (В ЗАПИСИ) ....

23

Страница 25

С. 24 ГОСТ 225о6—S9

>>:>ьспк 2

Уровень »

Элоыеш

целое-1 CHARACTERS (целое ! ЛИТЕР)    X

X

X

фраза VARYING IN SIZE (ПЕРЕМЕННОЕ

ЧИСЛО)................X

FROM целое-2 ТО цехое-З CHARACTERS

X X Х+++4-+Х XX ХХХХХХ X ххххххххх хххххххххххххх

(ОТ целое-2 ДО целое-3 ЛИТЕР) ...    —

jl>i)n DEPENDING ON (В ЗАВИСИМОСТИ

целое-4 ТО целое-5 CHARACTERS (целое--4 ДО

целое-5 ЛИТЕР)..............X

фраза VALUE (ЗНАЧЕНИЕ» ... имя-реализации литерал    ....    т

имя-реализации несколько литералов .    .    +

нмя-реалнэиции имя-даииого .... имя-реализации несколько имен-данных .    .    —

Стагья описания записи............X

РАЗДЕЛ ПРОЦЕДУР

Декларативные процедуры ..........X

DECLARATIVES (ДЕКЛАРАТИВЫ) .    .    X

END DECLARATIVES (КОНЕЦ ДЕКЛАРА-

ТИВ)..................X

Оператор CLOSE (ЗАКРЫТЬ) ....    X

имя-файла................X

несколько имен-файлов ..........X

фраза WITH LOCK (С ЗАМКОМ) .    .    —

Оператор DELETE (УДАЛИТЬ) ....    X

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА)    ................X

фраза NOT INVALID KEY (БЕЗ ОШИБКИ

КЛЮЧА)...........    у

фраза END-DELETE (КОНЕЦ-У ДА ЛИТЬ)    v

Оператор OPEN (ОТКРЫТЬ) ....    х

имя-файла................X

несколько имен-файлов............V

фраза INPUT (ВХОДНОЙ)    ...    X

Йаза OUTPUT (ВЫХОДНОЙ) ....    х

аза 1-0 (ВХОДНОЯ-ВЫХОДНОП) .    .    X

фраза EXTEND (ДОПОЛНЯЕМЫЙ) .    _

несколько INPUT (ВХОДНОЙ). OUTPUT (ВЫХОДНОЙ) и 1-0 (ВХОДНОЙ ВЫХОДНОЙ) .    у

несколько EXTEND (ДОПОЛНЯЕМЫЙ) .    _

Оператор READ (ЧИТАТЬ) фраза NEXT (СЛЕДУЮЩУЮ) .

фраза INTO (В)..............X

фраза AT END (В КОНЦЕ) ....    О

фраза NOT AT END (НЕ В КОНЦЕ)    .    О

фрача INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА)    Х

фраза NOT INVALID KEY (ЬЕЗ ОШИБКИ    Х

КЛЮЧА)..................О

фраза END-READ (КОНЕЦ-ЧИТАТЬ)    X

Оператор REWRITE (ОБНОВИТЬ) .    X

фраза FROM (ИЗ ПОЛЯ) ...    X

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА)    X

24

Страница 26

ГОСТ 22558-89 С. 25

Уровень 1

Эдемсм:

фраза NOT INVALID KF.Y (БЕЗ ОШИБКИ

X

X

X

X

X

X

X

X

X

X

X

X

_

X

X

X

X

_

X

X ’

X

х ;

X

X 1

X

X

X '

X

х .

X

X

X

X

X

X

X

X

X

X

X

X

X

X

КЛЮЧА)........

фраза END-REWRITE (КОНЕЦОБНОВИТЬ) Оператор START (ПОДВЕСТИ)

фраза KEY (КЛЮЧ).....

EQUAL ТО (РАВНО) .    .    .

GREATER THAN (БОЛЬШЕ)

>.........

NOT LESS THAN (HE МЕНЬШЕ)

NOT < (HE <)

GREATER THAN OR EQUAL TO (БОЛЬШЕ ИЛИ РАВНО)......

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮ

ЧА)......

фраза NOT INVALID KEY (БЕЗ ОШИБК1

КЛЮЧА)    ......

фраза F.ND START (КОНЕЦ-ПОДВЕСТИ) Оператор USE (ИСПОЛЬЗОВАТЬ)

фраза EXCEPTION/ERROR PROCEDURF (ПРОЦЕДУРЫ ОШИБКИ)

ON имя-файла (ДЛЯ имя-файла)

ON несколько икеифайлон (ДЛЯ i*eсколько

имен-файло»)......

ON INPUT (ДЛЯ ВХОДНЫХ) .    .

ON OUTPUT (ДЛЯ ВЫХОДНЫХ)

ON 1-0 (ДЛЯ ВХОДНЫХ ВЫХОДНЫХ)

ON EXTEND (ДЛЯ ДОПОЛНЯЕМЫХ) Оператор WRITE (ПИСАТЬ) .... фраза FROM (ИЗ ПОЛЯ) ....

«раза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) раза NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) ....    .    .

фраза END WRITE (КОНЕЦ-ПИСДТЬ) .    .

2.5. Список элементов в модуле индексного ввода-вывода

Элемент    Уровежь    I    Урс-зеш.2

ПОНЯТИЯ ЯЗЫКА Слова, определенные пользователем

ими-фзйла..............X    X

имя-записи................X    X

Состояние ввода вымола............X    X

25

Страница 27

С. 26 ГОСТ 22558-89

Уровень 2

Элемент

Урояняь 1

РАЗДЕЛ ОБОРУДОВАНИЯ Секция ваида вывода_

Параграф FILE-CONTROL (У11РАВЛЕНИЕ-ФАП

X

X

X

ХХ++Х X XXX X Х+Х XXX ХХХХХ X ХХХХХ хххх

Статья управления файлом .... фраза SELECT (ДЛЯ) фраза OPTIONAL (НЕОБЯЗАТЕЛЬНОГО) только входные, входные-выходкые к до полняемыс файлы .... фраза ACCESS MODE (ДОСТУП) . SEQUENTIAL (ПОСЛЕДОВАТЕЛЬНЫЙ) RANDOM (ПРОИЗВОЛЬНЫЙ)

X

X

X

X

X

X

X

X

X

X

+

X

X

X

X

X

+

+

X

X

DYNAMIC (ДИНАМИЧЕСКИ!*) фраза ALTERNATE RECORD KEY (ДОПОЛНИ ТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ) фраза WITH DUPLICATES (С ДУБЛИРОВА

НИЕМ) .    .....

фраза ASSIGN (НАЗНАЧИТЬ) имя-реализации .    ....

литерал .......

фраза FILE STATUS (СОСТОЯНИЕ ФАЙЛА фраза ORGANIZATION IS INDEXED (ОРГА НИЗАНИЯ ИНДЕКСНАЯ) фраза RECORD KEY (КЛЮЧ ЗАПИСИ) фраза RESERVE (РЕЗЕРВИРОВАТЬ)

Параграф 1 0-C0NTR0L (УПРАВЛЕНИЕ-ВВО-

ДОМ-ВЫВОДОМ)......

фраза RERUN (ПЕРЕПРОГОН) .    .

фраза SAME AREA (ОБЩАЯ ОБЛАСТЬ) фраза SAME RECORD AREA (ОБЩАЯ ОБ ЛАСТЬ ЗАПИСИ) .    ...

РАЗДЕЛ ДАННЫХ

Секция файлов

Статья описания файла    .    ,

индикатор уровни FD (ОФ) фраза BLOCK CONTAINS (В БЛОКЕ) целое-1 RECORDS/CHARACTERS    (целое-1

ЗАПИСЕИ/ЛИТЕР)

иелое-1 ТО цслое-2 RECORDS/CHARACTERS (целое-! ДО целое-2 ЗАПИСЕИ/ЛИТЕР) фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) фраза LABEL RECORDS (МЕТКИ) . фраза RECORD (В ЗАПИСИ) иелое I CHARACTERS (целое ! ЛИТЕР) Фраза VARYING IN SIZE (ПЕРЕМЕННОЕ

ЧИСЛО).......

X

FROM целое-2 ТО целое-3 CHARACTERS «От целое-2 ДО целое-3 ЛИТЕР)

26

X

Страница 28

ГОСТ 22558-89 С 27

Уровень *

АШмт

>'ТОНКИ* I

фраз» DEPENDING ON (В ЗАВИСИМОСТИ

целое-4 ТО целое-5 CHARACTERS (целое-4

ДО целое-5 ЛИТЕР)......

X

+

+

+

XXX ХХХХХ ХХХХХХХХХ ХХХХХХХХХ ХХХХХХХ XX Х+++++Х

фраза VALUE (ЗНАЧЕНИЕ)

имя-реализации литерал.....

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

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

РАЗДЕЛ ПРОЦЕДУР

Декларативные процедуры DECLARATIVES (ДЕКЛАРАТИВЫ)

END DECLARATIVES (КОНЕЦ ДЕКЛАРА

ТИВ).......

Оператор CLOSE (ЗАКРЫТЬ)

имя-файла .....

несколько имен файлов фраза WITH LOCK (С ЗАМКОМ)

Оператор DELETE (УДАЛИТЬ) фраз* INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) фраза NOT INVALID KEY (БЕЗ ОШИБКИ

КЛЮЧА) .......

фраза END DELETE (КОНЕЦУДАЛИТЬ) Оператор OPEN (ОТКРЫТЬ)

имя-файла .......

несколько имен-файлов .....

фраза INPUT (ВХОДНОЙ) .... фраза OUTPUT (ВЫХОДНОЙ) фраза 1-0 (ВХОДНОП-ВЫХОДНОИ) фраза EXTEND (ДОПОЛНЯЕМЫЙ) несколько INPUT (ВХОДНОЙ). OUTPUT (ВЫ ХОДНОИ) и 1-0 (ВХОДНОИ-ВЫХОДНОИ) несколько EXTEND (ДОПОЛНЯЕМЫЙ) . Оператор READ (ЧИТАТЬ)

фраза NEXT (СЛЕДУЮЩУЮ) .

фраза INTO (В).....

фраза AT END (В КОНЦЕ) фраза NOT AT END (НЕ В КОНЦЕ) фраза KEY (КЛЮЧ)

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) Фраза NOT INVALID KEY (БЕЗ ОШИБКИ

КЛЮЧА)........

фраза END READ (КОНЕЦ ЧИТАТЬ)

Оператор REWRITE (ОБНОВИТЬ)

фраза FROM (ИЗ ПОЛЯ) .    .

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) фраза NOT INVALID KEY (БЕЗ ОШИБКИ

КЛЮЧА) ........

фраза END-REWRITE (КОНЕЦ-ОБНОВИТЬ) . Оператор START (ПОДВЕСТИ) .

27

Страница 29

С. 28 ГОСТ 22558-89

Уромнь 2

Уроммь I

X

X

X

X

X

X

X

X

_

X

X

X

_

X

X

X

X

X

X

X

X

__

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

фраза KEY (КЛЮЧ) EQUAL ТО (РАВНО)

GREATER THAN' (БОЛЬШЕ)'    I

NOT LESS THAN (HE МЕНЬШЕ)    *.

NOT < (HE <).....

GREATER THAN OR EQUAL TO (БОЛЬШЕ ИЛИ РАВНО).....

*pa3a~lNVALID KEY (ПРИ ОШИБКЕ КЛЮЧА)

NOT INVALID KEY (БЕЗ ОШИБКИ

КЛЮЧА) .    .......

фраза END START (КОНЕЦ-ПОДВЕСТИ)

Опера гор USE (ИСПОЛЬЗОВАТЬ) .    .    -

фраза EXCEPTION/ERROR PROCEDURE

(ПРОЦЕДУРЫ ОШИБКИ).....

ON имя-файла (ДЛЯ имя-файла)

ON несколько имен файлов (ДЛЯ несколько

имен-файлов)........

ON INPUT (ДЛЯ ВХОДНЫХ) ....

ON OUTPUT (ДЛЯ ВЫХОДНЫХ)

ON 10 (ДЛЯ ВХОДНЫХ ВЫХОДНЫХ)

ON EXTEND (ДЛЯ ДОПОЛНЯЕМЫХ) .

Оператор WRITE (ПИСАТЬ).....

фраза FROM (ИЗ ПОЛЯ)    ....

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА)

Фраза NOT INVALID KEY (БЕЗ ОШИБКИ

КЛЮЧА)........

фраза END WRITE (КОПЕЦ ПИСАТЬ) ' .

2.6. Список элементов в модуле межпрограммных связей

Урозсяь 2

Элсчсмт

Уровень ]

ПОНЯТИЯ ЯЗЫКА Структура исходной программы Вложенные исходные программы ...    —    X

РАЗДЕЛ ИДЕНТИФИКАЦИИ

Параграф PROGRAM-ID (ПРОГРАММА) фраза COMMON (ОБЩАЯ)    —    X

фраза INITIAL (НАЧАЛЬНАЯ)    —    X

РАЗДЕЛ ДАННЫХ

Секция файлов

Статья описания файла (индикатор уровня FD СОФ))

фраза EXTERNAL (ВНЕШНЕЕ)    —    у

Страница 30

ГОСТ 2255*-*9 С. 29

/ровен* г

у ромин:

фраза GLOBAL (ГЛОБАЛЬНОЕ)    .    .

X

X

X

X

X

X

X

Статья описания данного (номер уровня О!) фраза GLOBAL (ГЛОБАЛЬНОЕ)

Сскияя рабочей памяти

Статья описания данного (номер уровня 01) фраза EXTERNAL (ВНЕШНЕЕ) фриза GLOBAL (ГЛОБАЛЬНОЕ)

Секция связи ...    ....

X

X

X

Статья описания записи ,    ,    ...

Статья описания данного с уровнем 77 .

Секция отчетов

Статья описания отчета (индикатор уровня RD №)

фраза GLOBAL (ГЛОБАЛЬНОЕ)

X

РАЗДЕЛ ПРОЦЕДУР

Заголовок раздела процедур фраза USING (ИСПОЛЬЗУЯ) .    .

X

X

X

X

X

X

X

разрешается по крайней мере 5 операндов нет ограничения на число операндов Оператор CALL (ВЫЗВАТЬ)

X

X

X

X

X

X

X

X

X

X

X

литерал......

идентификатор

фраза USING (ИСПОЛЬЗУЯ) .    .    .

идентификатор......

разрешается по крайней мере 5 операндов нет ограничения на число операндов фраза BY REFERENCE (ССЫЛКУ) . фраза BY CONTENT (ЗНАЧЕНИЕ) . фраза ON OVERFLOW (ПРИ ПЕРЕПОЛНЕ

НИИ).......

фраза ON EXCEPTION (ПРИ ОШИБКЕ) ф^аза NOT ON EXCEPTION (БЕЗ ОШИБ

фраза END-CALL (КОНЕЦ ВЫЗВАТЬ) (фор

мат 1) ........

X

фраза ENDCALL (КОНЕЦВЫЗВАТЬ

(формат 2).......

X

X

X

X

Оператор CANCEL (ОСВОБОДИТЬ)

литерал........

идентификатор......

Оператор EXIT PROGRAM (ВЫПТИ ИЗ ПРО

ГРАММЫ)......

X

Оператор USE (ИСПОЛЬЗОВАТЬ) фраза EXCEPTION/ERROR PROCEDURE (ПРОЦЕДУРЫ ОШИБКИ) фраза GLOBAL (ГЛОБАЛЬНО)

X

Оператор USE BEFORE REPORTING (ИСПОЛЬ ЗОВАТЬ ДО ВЫДАЧИ) фраза GLOBAL (ГЛОБАЛЬНО)

29

X

Страница 31

С. 30 ЮС Г 225SS- 89

2.7. Список элементов а модуле сортировки-слняння

Урлеиь I

Элемент

ПОНЯТИЯ ЯЗЫКА Слова, определенные пользователем

X

X

X

X

X

X

X

X

X

имя-файла.....

имя-записи.....

РАЗДЕЛ ОБОРУДОВАНИЯ Секция ииода имвода Параграф FILE-CONTROL (УПРАВЛЕНИЕ ФАЙЛАМИ)

Статьи управления файлом ......

фраза SfeLECT (ДЛЯ).......

фраза ASSIGN (НАЗНАЧИТЬ).....

имя-реализации ........

литерал ....    .....

Параграф I-OCONTROL (УПРАВЛЕНИЕ ВВОДОМ-ВЫВО

ДОМ).....•......

фраза SAME SORT/SORT-MERGE AREA (ОБЩАЯ ОБ ЛАСТЬ СОРТИРОВКИ/СОРТИРОВКИ-СЛИЯНИЯ)

£раза SAME RECORD AREA «ОБЩАЯ ОБЛАСТЬ ЗАПИ

РАЗДЕЛ ДАННЫХ

Секция файлов

X

X

+

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

Статьи описания сортаруемого-сдиваемосо файла

индикатор уровня SD (00) .....

фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) фраза RECORD (В ЗАПИСИ) .... целое-1 CHARACTERS (целое-1 ЛИТЕР) фраза VARYING IN SIZE (ПЕРЕМЕННОЕ ЧИСЛО) ГНОМ целое-2 ТО целое-3 CHARACTERS (ОТ целое-2 ДО

целое-3 ЛИТЕР).......,

фраза DEPENDING ON (В ЗАВИСИМОСТИ ОГ) . целое-* ТО цслос-5 CHARACTERS (целое-4 ДО целое

ЛИТЕР) ...    ......

Статья описании записи    .    ...

РАЗДЕЛ ПРОЦЕДУР

Оператор MERGE (СЛИТЬ) ......

Фраза ASCENDING/DESCENDING KEY (ПО ВОЗРАСТАНИЮ/УБЫВАНИЮ КЛЮЧА).......

фраза COLLATING SEQUENCE (АЛФАВИТ) фраза USING (ИСПОЛЬЗУЯ) .

фраза OUTPUT PROCEDURE (ПРОЦЕДУРА ВЫВОДА)

амя-проиедуры .........

фраза GIVING (ПОЛУЧАЯ).......

Оператор RELEASE (ПЕРЕДАТЬ)......

фраза FROM (ИЗ ПОЛЯ) .    ......

Оператор RETURN (ВЕРНУТЬ) ...    ...

фраза INTO (В)..........

фраза AT END (В КОНЦЕ).......

эо

Страница 32

ГОСТ 22558-89 С. ЗГ

Уроясаь I

Элсисиг

фраза NOT AT F.N'D (НЕ В КОНЦЕ) .    .    .

X

X

X

X

X

X

X

X

X

X

X

X

фраза END-RETURN (КОНЕЦ-ВЕРНУТЬ)

Оператор SORT (СОРТИРОВАТЬ).....

фраза ASCENDING/DESCENDING KEY (ПО ВОЗРАСТА

ПИЮ,/УБЫВАНИЮ КЛЮЧА)......

фраза WITH DUPLICATES (С ДУБЛИРОВАНИЕМ) . фраза COLLATING SEQUENCE (АЛФАВИТ) фраза INPUT PROCEDURE (ПРОЦЕДУРА ВВОДА)

имя-лроцедуры ........

фраза USING (ИСПОЛЬЗУЯ)......

фраза OUTPUT PROCEDURE (ПРОЦЕДУРА ВЫВОДА)

имя-процедуры .........

фраза GIVING (ПОЛУЧАЯ) .......

2.8. Список элементов в модуле обработки исходных текстов

УрОМИЬ I Уроичиь 2

Элемент

ПОНЯТИЯ ЯЗЫКА

Набор литер Литеры, используемые и пунктуации “■ Слова, определенные пользователем им я-библиотеки    .    ,

X

X

X

X

X

имя-текста......

ВСЕ РАЗДЕЛЫ

Оператор COPY (КОПИРОВАТЬ) . фраза OF/1N имя-библиотеки (ИЗ имя-библио

X

X

X

X

X

X

X

X

X

X

теки) .......

фраза REPLACING (ЗАМЕНЯЯ)

псевдотекст......

идентификатор .    ...

лигерал .    ...

слово .....

Опсрагор REPLACE (ЗАМЕНИТЬ) псевдотекст BY псевдотекст (псевдотекст НА

псевдотекст) ......

OFF (ОТКЛЮЧИТЬ) ....

2.9. Список элементов в модуле генератора отчетов

Уромяь 1

Элеиеиг

ПОНЯТИЯ ЯЗЫКА Слова, определенные пользователем

31

Страница 33

С. 32 ГОСТ 22558- 89

Уровень 1

ныя-файла    .......

+++++ХХ ХХ+ХХ X XXX Х+Х XX X X ХХХХХ ХХХХХ XX XX

имя-отчета........

Зарезервированные слом Специальные регистры    ,

LINE-COUNTER (СЧЕТЧИК -СТРОКI PAGE-COUNTER (СЧЕТЧИК СТРАНИЦ) РАЗДЕЛ ОБОРУДОВАНИЯ

Секция ввода вывода

Параграф FILF. CONTROL (УПРАВЛЕНИЕ-ФАЙЛАМИ)

Статья управления файлом ......

фраза SELECT (ДЛЯ).......

фраза OPTIONAL (НЕОБЯЗАТЕЛЬНОГО) .

только дополняемые файлы.....

фраза ACCESS MODE IS SEQUENTIAL (ДОСТУП ПОС

ЛЕДОВАТЕЛЬНЫИ).......

фраза ASSIGN (НАЗНАЧИТЬ).....

имя-реализации........

ли-терад .........

фраза FILE STATUS (СОСТОЯНИЕ ФАЙЛА) фраза ORGANIZATION IS SEQUENTIAL (ОРГАНИЗА ЦИЯ ПОСЛЕДОВАТЕЛЬНАЯ) .... фраза PADDING CHARACTER (ЛИТЕРА ЗАПОЛНИ

ТЕ ЛЬ).........

фраза RECORD DELIMITER (ОГРАНИЧИТЕЛЬ ЗАПИ

СИ) ..........

фраза RESERVE (РЕЗЕРВИРОВАТЬ) .    .

Параграф I-OCONTROL (УПРАВЛЕНИЕ-ВВОДОМВЫВО

ДОМ)..........

фраза MULTIPLE FILE ТАРЕ (НА ОДНОЙ КАТУШКЕ) фраза SAME AREA (ОБЩАЯ ОБЛАСТЬ)

РАЗДЕЛ ДАННЫХ Секция фай.».-в

Статья описания фай*1а    .......

индикатор уровня FD ЮФ) ......

фраза BLOtK CONTAINS (В БЛОКЕ) делос RF.CORDS/CHARECTF.RS (целое

ЗАПИСЕЙ/ЛИ-(целое-1

ТЕР)......

целое-1 ТО целое-2 RECORDS/CHARACTERS

ДО пслое-2 ЗАПИСЕЙ/ЛИТЕР)......

фраза CODE-SET (АЛФАВИТ)......

фраза LABEL RECORDS (МЕТКИ)......

фраза RECORD (В ЗАПИСИ) .    ......

целее-1 CHARACTERS (целое*! ЛИТЕР) .

целое-4 ТО целое-5 CHARACTERS (целое-4 ДО педос-5

ЛИТЕР).................

фраза REPORT (ОТЧЕТ) .    .    .

фраза VALUE OF (ЗНАЧЕНИЕ) иим-реа.шзэиии литерал . имя-реалкзаиии несколько литералов имя-реализации имя-дэнного . имя-реализации несколько ниен-данных

32

Страница 34

ГОСТ 22558-89 С. ЗЭ

Элсиемт    Уровень    I

Секция ответов

Статья описания отчета........

хххххх ХХХХХХХХХХХХХХХХХХ ХХХХХХХХХХХХХХХХХХХХХХХХ

индикатор уровня RD (00)    ......

фраза CODE (С КОДОМ) ......

фраta CONTROL (УПРАВЛЕНИЕ)    ....

фраза РАОЕ (РАЗМЕР СТРАНИЦЫ)    ....

Статья оаиеання группы отчета ...    ...

фраза BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ) фраза COLUMN NUMBER (НОМЕР СТОЛБЦА) .

фраза нмя-дамиого........

Фраза GROUP INDICATE (ОПРЕДЕЛЯЕТ ГРУППУ)

фраза JUSTIFIED (СДВИНУТО).....

фраза иомеруровня ....    ...

от 0. до 49. представление одной или двумя цифрами . фраза LINE NUMBER (НОМЕР СТРОКИ) фраза NEXT GROUP (СЛЕДУЮЩАЯ ГРУППА)

фраза PICTURE (ШАБЛОН)......

фраза SIGN (ЗНАК) .......

^рзза SOURCE «ИСТОЧНИК)

раза SUM (СУММА).......

фраза TYPE (ТИП) фраза USAGE (об использования)

DISPLAY (ДЛЯ ВЫДАЧИ) .....

фраза VALUE (ЗНАЧЕНИЕ) .    .    ...

литерал..........

РАЗДЕЛ ПРОЦЕДУР

Декларативные процедуры .......

DECLARATIVES (ДЕКЛАРАТИВЫ)

END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ)

Оператор CLOSE (ЗАКРЫТЬ)......

фраза REEL/UNIT (КАТУШКУ/ТОМ) ....

фраза FOR REMOVAL (С УДАЛЕНИЕМ! .    .

фраза WITH NO REWIND (БЕЗ ПЕРЕМОТКИ) .

Оператор GENERATE (ГЕНЕРИРОВАТЬ)

имя-аанного .........

имя-отчета..........

Оператор INITIATE (НАЧАТЬ).....

Оператор OPEN (ОТКРЫТЬ)......

фраза OUTPUT (ВЫХОДНОЙ).....

фраза WITH NO REWIND (БЕЗ ПЕРЕМОТКИ) фраза EXTEND (ДОПОЛНЯЕМЫЙ)    .    .    .

Оператор SUPPRESS (ПОДАВИТЬ)    ....

Оператор TERMINATE (ЗАКОНЧИТЬ)    ....

Оператор USE (ИСПОЛЬЗОВАТЬ) фраза EXCEPTION/ERROR PROCEDURE (ПРОЦЕДУРЫ

ОШИБКИ)..........

ON имя-файла (ДЛЯ кмя-файла) .    ...

ON несколько имен-файлов (ДЛЯ нескгллько имен-файлов ON OUTPUT (ДЛЯ ВЫХОДНЫХ)

ON EXTEND (ДЛЯ ДОПОЛНЯЕМЫХ)    .    .    .

фраза BEFORE REPORTING (ДО ВЫДАЧИ)    .    .

2 Зак. 2S4    33

Страница 35

С. 34 ГОСТ 2-2558-89

2.10. Список элементов ■ модуле коммуникаций

Уроэехь |

Элемент

Уровень 2

ПОНЯТИЯ ЯЗЫКА

Слова, определенны»; пользователем нмя-коммуникации РАЗДЕЛ ДАННЫХ

X

Секция коммуникации Статья описания коммуникации индикатор уровня CD (OK) фраза FOR INPUT (ДЛЯ ВВОДА) фраза INITIAL (НАЧАЛЬНОГО) . фраза END KEY (КЛЮЧ КОНЦА)

X

X

X

X

X

X

X

X

X

XX ХХХХХХХ XXX X j X ХХХХХ XX ХХХХХ ХХХХХ

Йаза MESSAGE COUNT (ЧИСЛО СООБ

ЕНИП).......

Ф^аза MESSAGE DATA (ДАТА СООБЩЕ

фраза MESSAGE TIME (ВРЕМЯ СООБЩЕ

/ НИЯ)........

фраза SYMBOLIC QUEUE (СИМВОЛИЧЕ СКАЯ ОЧЕРЕДЬ) .... фраза SYMBOLIC SOURCE (СИМВОЛИЧЬ СКИИ ИСТОЧНИК) .... фраза SYMBOLIC SUB-QUEUE I (СИМВО ЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-И фраза SYMBOLIC SUB QUEUE-2 (СИМВО ЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-2) фраза SYMBOLIC-SUB QUEUE-3 (СИМВО ЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-3) фраза STATUS KEY (КЛЮЧ СОСТОЯНИЯ фраза TEXT LENGTH (ДЛИНА ТЕКСТА) нескольхо имен-данных .... фраза FOR OUTPUT (ДЛЯ ВЫВОДА) фраза DESTINATION COUNT (ЧИСЛО АД

X

X

X

X

X

X

X

X

X

X

X

X

X

X

РЕСАТОВ) .......

должен быть один.....

может быть одни или несколько фраза DESTINATION TABLE (ТАБЛИЦА АД

РЕСАТОВ).......

фраза INDEXED BY (ИНДЕКСИРУЕТСЯ) фраза ERROR KEY (КЛЮЧ ОШИБКИ) . фраза SYMBOLIC DESTINATION (СИМВОЛИ

ЧЕСКИП АДРЕСАТ).....

фреза STATUS KEY (КЛЮЧ СОСТОЯНИЯ) фраза TF.XT LENGTH (ДЛИНА ТЕКСТА) фраза 1-0 (ДЛЯ ВВОДА-ВЫВОДА) . фраза INITIAL (НАЧАЛЬНОГО) фраза END KEY (КЛЮЧ КОНЦА) фраза MESSAGE DATE (ДАТА СООБЩЕНИЯ) фраза MESSAGE TIME (ВРЕМЯ СООБЩЕ

НИЯ)........

фраза STATUS KEY (КЛЮЧ СОСТОЯНИЯ)

34

Страница 36

ГОСТ 225S8-89 С. 35

Уромн» 1

Эл«мент

Фраза SYMBOLIC TERMINAL (СИМВОЛИЧЕСКИЙ ТЕРМИНАЛ)......

X

X

ХХХХ XX ХХХХХ X X ХХХХХХХХХХ ххх+хх хххх . хххх

фраза TEXT LENGTH (ДЛИНА ТЕКСТА)

несколько имен данных......

Стак>и описания записи ....    .

РАЗДЕЛ ПРОЦЕДУР

Оператор ACCEPT MESSAGE COUNT (ПРИНЯТЬ ЧИСЛО СООБЩЕНИЙ! .... Оператор DISABLE (ЗАПРЕТИТЬ)

Араза INPUT (ВВОД)......

фраза TERMINAL (С ТЕРМИНАЛА) фраза I O TERMINAL (ВВОД-ВЫВОД С ТЕРМИНАЛА) .......

фраза OUTPUT (ВЫВОД) .... фраза WITH KEY (КЛЮЧ)

Оператор ENABLE (РАЗРЕШИТЬ)

фраза INPUT (ВВОД)......

фраза TERMINAL (С ТЕРМИНАЛА) фраза 1-0 TERMINAL (ВВОД-ВЫВОД С ТЕР

МИНАЛА).......

фраза OUTPUT (ВЫВОД).....

фраза WITH KEY (КЛЮЧ) .... Оператор PURGE (ОЧИСТИТЬ)    ...

Оператор RECEIVE (ПОЛУЧИТЬ) фраза MESSAGE (СООБЩЕНИЕ)    .    .

X

X

X

X

X

X

X

X

X

X

X

фраза SEGMENT (СЕГМЕНТ) .... фраза INTO идентификатор (В идентификатор) фраза NO DATA (НЕТ ДАННЫХ) .    .

фраза WITH DATA (ЕСТЬ ДАННЫЕ) фраза END RECEIVE (КОНЕЦ-ПОЛУЧИТЬ) Оператор SEND (ПОСЛАТЬ) .... FROM идентификатор (ИЗ ПОЛЯ кдентифи кэтор) (часть сообщения) .... FROM идентификатор (ИЗ ПОЛЯ идентнфнка гор) (полное сообщение) .... фраза WITH идентификатор (С идентификатор: фраза WITH ESI (С ИКС» фраза WITH EMI (С ИКЩ) фраза WITH EGI (С ИКГ) . фраза BEFORE/AFTER ADVANCING (ДО/ ПОСЛЕ ПРОДВИЖЕНИЯ) целое-1 LINE/LINES (целое-1 СТРОК) идентификатор LINE/LINES (идентификатор

СТРОК)......

мнемоннческое-нмя......

PAGE (СТРАНИЦЫ) ...

REPLACING LINE (ЗА.МЕНЯЯ СТРОКУ)

36

■2*

Страница 37

С 36 ГОСТ 225S&-89

2.11. Список элементов в модуле отладки

Элемент

Уровень 1

Уровень 2

ПОНЯТИЯ ЯЗЫКА

Зарезервированные слова Специальный регистр DEBUGITEM (ДАН-НЫЕ-ОТЛАДКИ)......

+

+

РАЗДЕЛ ОБОРУДОВАНИЯ

Секция конфигурации

Параграф SOURCE-COMPUTER (ИСХОДНАЯ МАШИНА)

Фраза WITH DEBUGGING MODE (В РЕЖИМЕ ОТЛАДКИ)........

+

+

РАЗДЕЛ ПРОЦЕДУР

Декларативные процедуры DECLARATIVES (ДЕКЛАРАТИВЫ)

END DECLARATIVES (КОНЕЦ ДЕКЛАРА-

ТИВ).........

Оператор USE FOR DEBUGGING (ИСПОЛЬЗОВАТЬ ДЛЯ ОТЛАДКИ).....

им я-процедуры.......

ALL PROCEDURES (ПРИ ВСЕХ ПРОЦЕДУРАХ) .........

ALL REFERENCES идентификатор-1 (ПРИ ВСЕХ ССЫЛКАХ идентификатор-1) .

нмя-коммуивкаини.......

имя-файла , . .

+

+

+

+

+

+

+

+

1114

+

+

+

+

2.12. Список элементов в модуле сегментации

Элемент

Уровень 1

Уювеиь 2

ПОНЯТИЯ ЯЗЫКА Слова, определенные пользователем

Номер сегмента..............+    +

РАЗДЕЛ ОБОРУДОВАНИЯ Параграф OBJECI-COMPLTER (РАБОЧАЯМА-ШИНА)

фраза SEGMENT LIMIT (ГРАНИЦА СЕГМЕН

ТОВ) ..................-    +

РАЗДЕЛ ПРОЦЕДУР Номера-сегментов от 0 до 49 для. постоянных сегментов ..................+    4*

Номера-еегменгов от 50 до 99 для независимых сегментов............■    +

Страница 38

ГОСТ 22558-89 G. 37

Элемент    Уровень    I    Vpcmbv    1

Все секции, имеющие одинаковый номер сегмента, должны быть смежными в исходной программе    +    —

Секции, имеющие одинаковый номер сегменга, могут быть несмежными в исходной программе .    —    4-

3. СПИСОК ЭЛЕМЕНТОВ ПО РАЗДЕЛАМ КОБОЛА 3.1. Общее описание

Ниже приводится список элементов стандарта Кобола соответственно разделам Кобола.

В столбце, озаглавленном «Модуль», указывается модуль ■ уровень этого модуля для элемента. Для указания модулей используются следующие обозначения:

Ядро

ЯДР

Последовательный ввод-вывод

ПОД

Относительный ввод-вывод

ОТД

Индексный ввод-вывод

ИПД

Межпрограммные связи

МПС

Сортировка-слияние

СРТ ' 1

Обработка исходных текстов

ОИТ

Генератор отчетов

гот 1 *.

Коммуникации

КОМ V

Отладка

отл

Сегментация

СНГ

Для каждого элемента указан модуль,

к которому он прннад-

лежит, и минимальный уровень сложности этого модуля, на котором допустим элемент. Например, 2 ЯДР указывает, что элемент допустим на уровне 2 ядра, а I ИПД указывает, что элемент допустим на уровне I модуля индексного ввода-вывода. Литера +, следующая за сокращенным обозначением модуля, обозначает, что элемент является устаревшим элементом языка и будет удален в следующей редакции стандарта.

Элемент    Модуль

3.2. Список элементов понятий языка

ПОНЯТИЯ ЯЗЫКА Набор дотер

Литеры, используемые для слов в английской нотации 0—9.

A—Z. (дефис) в русской нотации А—Я. D, F. G, I, J. L. N. Q.

R. S, U, V, W, Y, Z. 0-9. -(дефис)    )    ЯДР

Страница 39

С 38 ГОСТ 22558-89

Эле* СНГ    Модуль

Литеры, используемые для пунктуации »().,; пробел Литеры, используемые для пунктуации : (двоеточие)

1    ЯДР

2    ЯДР

1    ОЙТ

2    ЯДР 1 ЯДР

1 ЯДР

J ЯДР 1 ЯДР I ЯДР +

1    ЯДР

2    ЯДР

1 ЯДР

1    ЯДР

2    ОИТ I ЯДР 1 ПОД 1 отд I ИНД I СРТ

I ЯДР I ЯДР

I ком 1 гот I ЯДР I ЯДР + I ЯДР 1 ЯДР .1 ОИТ £ ЯДР 1 ПОД ! ОТД ! ИПД I СРТ : ГОТ 1 ЯДР I СЕГ +

1    ЯДР

2    ЯДР

1 ЯДР I ЯДР 1 ЯДР +

Литеры, используемые для пунктуации =

Литеры, используемые в арифметических операциях -{--• /

••

Литеры, используемые и отношениях •»><>•■< = Литеры, используемые в редактировании В +    -    .    ,    Z(II) •

; S (!Л I 0 CR(KP) DB<AB) /

Литеры, используемые при индексировании + —

Разрешена замена одной литерой Разрешена замена двумя литерами

Разделители

»().,; пробел ; (двоеточие)

Строка-литер

Слова Кобола Максимум 30 литер Слова, определенные пользователем имя алфавита имя-библиотеки имя данного имя записи

ими иидгкса

имя класса

ими коммуникации

ими отчета

ими параграфа

имя программного модуля

имя программы

ими секции

имя текста

имя условия

имя файла

мнемоническое имя номер сегмента номер уровня символическая литера Системные имсиз имя машины имя реализации имя языка

38

Страница 40

ГОСТ 2255Л-М С »

Элемент    МОЛУ»

Зарезервированные слова Обязательные слова    I ЯДР

Ключевые слова    1 ЯДР

Слова специальные литеры знаки арифметических операций -f — •/••    2    ЯДР

знаки арифметических операций при индексировании + —    1    ЯДР •

литеры отношении = ><>*-<»•    1    ЯДР

Необязательные слова    1    ЯДР

Слова специального назначения

Стандартные константы ZERO (НУЛЬ), ZEROS. ZEROES (НУЛИ). SPACE (ПРОБЕЛ). SPACES (ПРОБЕЛЫ). HIGH-VALUE (НАИБОЛЬШЕЕ-ЗНАЧЕНИЕ). HIGH-VALUES (НАИБОЛЬШИЕ-ЗНАЧЕНИЯ). LOWVALUE (НАИМЕНЬ-ШЕЕ-ЗНАЧЕНИЕ). LOW-VALUES (НАИМЕНЬШИЕ-ЗНА-ЧЕНИЯ). QUOTE (КАВЫЧКА). QUOTES (КАВЫЧКИ)    I    ЯДР

Стандартные константы:    символическая-литсра.    ALL    литерал

(ВСЕ литерал), ALL стандартная-канстанта (ВСЕ стандарт-ная константа), ALL символическая литера (ВСЕ символнче-ская-лнтера)    2    ЯДР

Специальные регистры LINAGE-COUNTER (СЧЕТЧИК ВЕРСТКИ)    2    ПОД

LINE*COUNTER (СЧЕТЧИК-СТРОК)    I    ГОТ

PAGE-COUNTER (СЧЕТЧИК-СТРАНИЦ)    I    ГОТ

DEBUG-[ТЕМ (ДАННЫЕ-ОТЛАДКИ)    1    ОТЛ    +

Литералы

Числовые литералы: от I до 18 цифр    •    ЯДР

Нечисловые литералы: от 1 до 160 литер    )    ЯДР    .

строка-литер (ШАБЛОН строка литер)    •    ЯДР

Статья-комментарий    I    ЯДР    +

Однозначность ссылки

Уточнение

уточнение недопустимо, имена должны быть однозначны при ссылке    •    ЯДР

50 уточнителей    2    ЯДР

Индексирование

3 уровня индексов    *    ЯДР    ! ,

7 уровней индексов    2    ЯДР

индексирование литералом    1    ЯДР

индексирование именем данною    •    ЯДР

индексирование именем индекса    I    ЯДР

относительное индексирование    *    ЯДР    .

Модификация ссылки    2    ЯДР

Формат представления

Порядковый номер    I    ЯДР    •

Продолжение строк продолжение нечисловых литералов    I    ЯДР    *'

продолжение слов Кобола, числовых литералов, строк-литер шаблона    2    ЯДР    '

Строки пробелов    I    ЯДР

Страница 41

С. «О ГОСТ 22558'-89

Элемент    Модул»

Строки комментария строки комментария со звездочкой ( •)    1    ЯДР

строки комментария с дробной чертой (/)    I    ЯДР

Отладочная строка с литерой D (Т) в поле индикатора    I    ЯДР

Структура исходной программы

Раздел Идентификации обязателен    1    ЯДР

Раздел (Оборудования необязателен    1    ЯДР

Раздел данных необязателен    1    ЯДР

1 Раздел процедур необязателен    1    ЯДР

Заголовок коица программы    2    ЯДР

Вложенные исходные программы    2    МПС

3.3.    Список элементов раздела идентификации РАЗДЕЛ ИДЕИТИФИКАЦИИ

Параграф PROGRAM-ID (ПРОГРАММА)    I    ЯДР

имя параграфа    1    ЯДР

фраза COMMON (ОБЩАЯ)    2    МПС

1 фраза INITIAL (НАЧАЛЬНАЯ)    2    МПС

Параграф AUTHOR (АВТОР)    I    ЯДР +

Параграф INSTALLATION (ПРЕДПРИЯТИЕ)    1    ЯДР +

Параграф DATE-WRITTEN (ДАТА-НАПИСАНИЯ)    I    ЯДР +

Параграф DATE COMPILED (ДАТА-ТРАНСЛЯЦИИ)    2    ЯДР +

Параграф SECURITY (ПОЛНОМОЧИЯ)    1    ЯДР +

Обработка исходных текстов в разделе идентификации

Оператор COPY (КОПИРОВАТЬ)    I    ОИТ

Or/IN ими библиотеки (ИЗ имя-библиотеки)    2    ОИТ

фр^а REPLACING (ЗАМЕНЯЯ)    2    ОИТ

псевдотекст    2    ОИТ

идентификатор    2    ОИТ

литерал    2    ОИТ

слово    :    ОИТ

Оператор REPLACE (ЗАМЕНИТЬ)    2    ОИТ

псевдотекст BY псевдотекст (псевдотекст НА псевдотекст)    2 ОИТ

OFF (ОТКЛЮЧИТЬ)    2    ОИТ

3.4.    Список элементов раздела оборудования РАЗДЕЛ ОБОРУДОВАНИЯ

ржиия конфигурации    1    ЯДР

Параграф SOURCE-COMPUTER (ИСХОДНАЯ-МАШИНА)    i ЯДР

имя-машины    | ЯДР

фраза WITH DEBUGGING MODE (В РЕЖИМЕ ОТЛАДКИ)    | ЯДР

I ОТЛ +

Параграф OBJECT COMPUTER (РАБОЧАЯ-МАШИНА)    1 ЯДР

имя-машнны    1 ЯДР

фраза MEMORY SIZE (РАЗМЕР ПАМЯТИ)    1 ЯДР +

фраза PROGRAM COLLATING SEQUENCE (ПРОГРАМ-МНЫП АЛФАВИТ)    I ЯДР

фраза SEGMENT L1MIT (ГРАНИЦА СЕГМЕНТОВ)    I СЕГ +

40

Страница 42

ГОСТ 2255£-89 С 4!

Элсмевт    Модул

Параграф SPEC1AL-NAMES (СПЕИИАЛЬНЫЕ-ИМЕНА)    Г    Я ЯР

фраза ALPHABET (АЛФАВИТ)    I    ЯДР

вариант STANDARD-1 (СТАНДАРТ-А)    1    ЯДР

вариант STANDARD-2 (СТАНДАРТА)    .    1 ЯДР

вариант NATIVE (ВНУТРЕННИЙ)    '    I ЯДР

вариант имя-реализации    |    ЯДР*'.

вариант литерал    2    ЯДР

фраза CLASS (КЛАСС)    1    ЯДР

фраза CURRENCY SIGN    (ВАЛЮТНЫЙ ЗНАК)    I    ЯДР

. фраза DECIMAL-POINT (ДЕСЯТИЧНАЯ ТОЧКА)    1    ЯДР

фраза нмя-реализаинн    |    ЯДР

вариант IS мнемоническое имя    ]    ЯДР

вариант ON STATUS IS имя-условия (ВКЛЮЧЕНО имя-условвя)    Г    ЯДР

вариант OFF STATUS IS имя-условия (ВЫКЛЮЧЕНО имя-условия)    1    ЯДР

фраза SYMBOLIC CHARACTERS (СИМВОЛИЧЕСКАЯ ЛИТЕРА)    2    ЯДР

Секция ввода-вывода    1    ПОД

I ОТД I ИПД I СРТ 1 ГОТ '

Параграф FILE-CONTROL (УПРАВЛЕНИЕ ФАЙЛАМИ)    I    ПОД

! ОТД I ИПД I СРТ 1 ГОТ

Статья управления файлом    j-    ПОД

I ОТЛ 1 ИПД 1 СРТ

фраза SELECT (ДЛЯ)    J    ПОД

I ОТД 1 ИПД

1    СРТ

вариант OPTIONAL (НЕОБЯЗАТЕЛЬНО)    2    ПОД

2    ОТЛ V ИПД t ГОТ

только входные, входные-выходные и дополняемые    2    ПОД

2 ОТД 2 ИПД

только дополняемые    I    гот

• фраза ACCESS MODE (ДОСТУП)

SEQUENTIAL (ПОСЛЕДОВАТЕЛЬНЫЙ)    1    ПОД

I ОТД I ИПД I ГОТ

41

Страница 43

С 42 ГОСТ 22558-89

Модуль

RANDOM (ПРОИЗВОЛЬНЫЙ)

1 ОТД

1    ИПД

2    ОТД 2 ИПД 1 ОТД

2 ИПД 2 ИПД 1 ПОД I ОТД I ИПД I СРТ I ГОТ

I под

I ОТД I ИПД I СРТ

I гот I ПОД I ОТД I ИПД I СРТ

1 гот

I ПОД I ОТД 1 ИПД

1 гот I под I гот

I ОТД

1    ИПД

2    ПОД

1    гот

2    ПОД I гот

1    ИПД

2    ПОД 2 ОТД 2 ИПД

1 гот I под

I ОТД 1 ИПД I СРТ

1    гот

2    ПОД + : гот +

I под + : гот +

DYNAMIC (ДИНАМИЧЕСКИ^

фра» RELATIVE KEY (ОТНОСИТЕЛЬНЫЙ КЛЮЧ) фраза ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ) фраза WITH DUPLICATES (С ДУБЛИРОВАНИЕМ) фраза ASSIGN (НАЗНАЧИТЬ)

■мя-р«алнзацим

дигсрал

фраза FILE STATUS (СОСТОЯНИЕ ФАЙЛА)

фраза ORGANIZATION (ОРГАНИЗАЦИЯ)

SEQUENTIAL (ПОСЛЕДОВАТЕЛЬНАЯ)

RELATIVE (ОТНОСИТЕЛЬНАЯ)

INDEXED (ИНДЕКСНАЯ) фраза PADDING CHARACTER (ЛИТЕРА ЗАПОЛНИТЕЛЬ)

, фраза RECORD DELIMITER (ОГРАНИЧИТЕЛЬ ЗАПИСИ)

фраза RECORD KEY (КЛЮЧ ЗАПИСИ) фраза RESERVE AREA (РЕЗЕРВИРОВАТЬ)

Параграф I О CONTROL (УПРАВЛЕНИЕ ВВОДОМ ВЫВОДОМ)

фраза MULTIPLE FILE ТАРЕ (НА ОДНОЙ КАТУШКЕ) фраза RERUN (ПЕРЕПРОГОН)

42

Страница 44

ГОСТ 22556 89 С. 43

Элемент

Модуль

' ".пд +

I* ПОД**5 ) отд ] ипд ;

1    гитЧ ;

Г8Г

2    ИПД 1 СРТ

I C.Pt

фраза'SAME AREA (ОБЩАЯ ОБЛАСТЬ)

фулаа SAME RECORD AREA (ОБЩАЯ

ОБЛАСТЬ ЗАПИ-

фрам SAME SORT/SORT-MERGE AREA (ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ/СОРТИРОВКИ СЛИЯНИЯ)

Обработка исходных текстов о разделе оГ*>рудовання

1    ОИТ

2    ОИТ 2 ОИТ 2 ОИТ 2 ОИТ 2 ОИТ 2 ОИТ 2 ОИТ 2 ОИТ 2 ОИТ

J ПОД 1 ОТД 1 ИПД 1 СРТ 1 ГОТ I ПОД 1 ОТД 1 ИПД

I гот

I ПОД 1 ОТД

1 ипд 1 гот

I под 1 отд I ипд

1    гот

2    ПОД 2 ОТД

1 ипд 1 гот I под

1 '. СП-

Оператор СОРУ (КОПИРОВАТЬ)

OF/IN им я-библиотеки (ИЗ кмл-библиогски)

фраза REPLACING (ЗАМЕНЯЯ)

псевдотекст

идентификатор

литерал

слово

Оператор REPLACE (ЗАМЕНИТЬ) псевдотекст BY псевдотекст (псевдотекст НА псевдотекст) OFF (ОТКЛЮЧИТЬ)

3.4. Список элементов раздела данных

РАЗДЕЛ ДАННЫХ Секция файлов

Статья описании файла

индикатор уровня FD (ОФ)

фраза В1.0СК CONTAINS (В БЛОКЕ) целое RECORDS/CHARACTERS (целое ЗАПИСЕП/ЛИ-ТЕР)

целое ! ТО целое-2 RECORDS/CHARACTERS (целое! ДО целое-2 ЗЛПИСЕП/ЛИТЕР)

фраза CODE-SET (АЛФАВИТ)

43

Страница 45

С 44 ГОСТ 1255S—89

Модг.1

фразл DATA RECORDS (ЗАПИСИ ДАННЫХ)

I ПОД + I ОТД +

1    ИПД +

2    МПС 2 МПС

I ПОД + 1 ОТД +

1 ИПД +

1    ГОТ+

2    ПОД

2    ПОД

3    ПОД 2 ПОД

1 ПОД 1 ОТД I ИПД

1    гот

2    ПОД 2 ОТД 2 ИПД

I ПОД I ОТД 1 ИПД I ГОТ I ГОТ

I под + I отд +

I ИПД + ! ГОТ +

I под + I отд + I ИПД +

1    гот +

2    ПОД + 2 ОТД + 2 ИПД +

1    ГОТ +

2    ПОД + г отд +

2 ИПД + I ГОТ +

1 СРТ

I СРТ 1 СРТ +

I СРТ I СРТ

I СРТ

фраза EXTERNAL (ВНЕШНЕЕ) фраза GLOBAL (ГЛОБАЛЬНОЕ) фраза LABEL RECORDS (МЕТКИ)

фраза LINAGE (ВЕРСТКА) фраза FOOTING (КОНЦОВКА) фраза ТОР (ВЕРХНЕЕ ПОЛЕ) фраза BOTTOM (НИЖНЕЕ ПОЛЕ) фраза RECORD (В ЗАПИСИ) целое I CHARACTERS (цслос-I ЛИТЕР)

фраза VARYING IN SIZE (ПЕРЕМЕННОЕ ЧИСЛО)

целое 4 ТО целое-5 CHARACTERS (це.ке-4 ДО целое-5 ЛИТЕР)

фраза REPORT (ОТЧЕТ) фраза VALUE ОН (ЗНАЧЕНИЕ) имя реализации литерал

\ • ими ргализации несколько литералов

Г !

• ими реализации имядамиого

чма-реализации несколько имей данных

Стать* описания сортируемого-сливаемого Файла

иидикзтор уровня SD (ОС) фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) фраза RECORD (В ЗАПИСИ) целое*I CHARACTERS (цел<*-1 ЛИТЕР) фраза VARYING IN SIZE (ПЕРЕМЕННОЕ ЧИСЛО) ц«лос-4 ТО цедос-5 CHARACTERS (целое-4 ДО целое-5 ЛИТЕР)

44

Страница 46

ГОСТ 225S8-89 С. 46

Модуль

Статья описании записи в секции файлов

I ПОД I ОТД I ИПД 1 СРТ I ЯДР

I ЯДР J ЯДР 1 МПС

I МПС 1 МПС 1 КОМ

I КОМ

I ком

1    ком

2    КОМ ! КОМ 1 КОМ I КОМ

1 ком 1 ком

1    ком

2    КОМ 2 КОМ 2 КОМ

1 ком

1    ком

2    ком I ком I ком

1    ком

2    кем

2 КОМ

i ком 1 ком 1 ком

I ком I ком

1    ком

2    КОМ

I ком I ком 1 ком I ком

I ком

Секция рабочей памяти

Ciaibn описании записи

Статья описания уровня 77 Секты гаязн

Статья описания записи

Статья описания утопия 77 Секция коммуникаций

Статья описания коммуникации индикатор уровня CD (OK) фраза FOR (NPUT (ДЛЯ ВВОДА) фраза INITIAL (НАЧАЛЬНОГО)

Фраза END KF.Y (КЛЮЧ КОНЦА) фраза MESSAGE COUNT {ЧИСЛО СООБЩЕНИЯ) фраза MESSAGE DATE (ДАТА СООБЩЕНИЯ) фраза MESSAGE TIME (ВРЕМЯ СООБЩЕНИЯ) фраза SYMBOLIC QUEUE (СИМВОЛИЧЕСКАЯ ОЧЕРЕДЬ)

фраза SYMBOLIC SOURCE (СИМВОЛИЧЕСКИИ ИСТОЧНИК)

фраза SYMBOLIC SUB-QUEUE-1 (СИМВОЛИЧЕСКАЯ ИОДОЧЕРЕДЫ)

фраза SYMBOLIC SUB-QUEUE-2 (СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-2)

фраза SYMBOLIC SUB-QUEL'E-З (СИМВОЛИЧЕСКАЯ ИОД ОЧЕРЕДЬ-3)

фраза STATUS KEY (КЛЮЧ СОСТОЯНИЯ) фраза TEXT LENGTH (ДЛИНА ТЕКСТА) несколько иыен-данных Фрззз FOR OUTPUT (ДЛЯ ВЫВОДА) фраза DESTINATION COUNT (ЧИСЛО АДРЕСАТОВ) должен бып. один дилжен быть один или несколько фраза DESTINATION TABLE (ТАБЛИЦА АДРЕСАТОВ) фраза INDEXED BY (ИНДЕКСИРУЕТСЯ) фраза ERROR KEY (КЛЮЧ ОШИБКИ) фраза SYMBOLIC DESTINATION (СИМВОЛИЧЕСКИИ АДРЕСАТ)

Ф;>азa STATUS KEY (КЛЮЧ СОСТОЯНИЯ) фраза TEXT LENGTH (ДЛИНА ТЕКСТА) фраза FOR 1-0 (ДЛЯ ВВОДА-ВЫВОДА) фриза INITIAL (НАЧАЛЬНОГО) фраза END KEY (КЛЮЧ КОНЦА) фраза MESSAGE DATA (ДАТА СООБЩЕНИЯ) фраза MESSAGE TIME (ВРЕМЯ СООБЩЕНИЯ)

Фраза STATUS KEY (КЛЮЧ СОСТОЯНИЯ)

фраза SYMBOLIC TERMINAL (СИМВОЛИЧЕСКИ!!

ТЕРМИНАЛ)

Страница 47

С. 46 ГОСТ 22558-89

Ллемеит    Модуль

фраза TIiXT LENGTH (ДЛИНА ТЕКСТА)    I    КОМ

несколько имен-данных    2    КОМ

Статья описания записи    1    КОМ

Сскпия отчетов    J    ГОТ

Статья описании отчета    ]    ГОТ

индикатор уровни RD (00)    I    ГОТ

фраза CODE (С КОДОМ)    1    ГОТ

фраза CONTROL (УПРАВЛЕНИЕ)    I    ГОТ

фраза GLOBAL (ГЛОБАЛЬНОЕ)    2    МНС

фраза PAGE (РАЗМЕР СТРАНИЦЫ)    I    ГОТ

Статья описания группы отчета    I    ГО'Г

Следующие фразы появляются в статье описания записи, статье описания данного, статье описания уровня 77 и в статье описания группы отчета:

Фраза BLANK WHEN ZERO (ПРОВЕЛ КОГДА НУЛЬ)    1    ЯДР

Фраза COLUMN NUMBER (НОМЕР СТОЛБЦА)    I    ГОТ

Фраза кмя-да иного    1    ЯДР

! ГОТ

Фраза EXTERNAL (ВНЕШНЕЕ)    -»    МПС

Фраза FILLER (ЗАПОЛНИТЕЛЬ»    ЯДР

Фраза GLOBAL (ГЛОБАЛЬНОЕ)    2    МПС

Фраза GROUP INDICATE (ОПРЕДЕЛЯЕТ ГРУППУ)    I    ГОТ

Фраза JUSTIFIED (СДВИНУТО)    j    ЯДР

Фраза номер-уровня    1    ЯДР

от 1)1 до 49. одна или две цифры    1    ЯДР

66    2    ЯДР

77    1    ЯДР

88    2    ЯДР

Фраза LINE NUMBER (НОМЕР СТРОКИ)    1    ГОТ

Фраза NEXT GROUP (СЛЕДУЮЩАЯ ГРУППА)    1    ГОТ

Фраза OCCURS (ПОВТОРЯЕТСЯ)    »    ЯДР

целое TIMES (целое РАЗ)    !    Я.1Р

фраза ASCENDING/DESCENDING KEY (ПО ВОЗРАСТАНИЮ/УБЫВАНИЮ КЛЮЧА)    ЯЛР

фраза INDEXED BY (ИНДЕКСИРУЕТСЯ)    I    ЯДР

фраза целое ( ТО целое-2 DEPENDING ON (целое-J ДО ue-дое-2 В ЗАВИСИМОСТИ ОТ)    2    ЯДР

Фраза PICTURE (ШАБЛОН)    ]    ЯДР

строка литер содержит не более 30 литер    I    ЯДР

литеры данных: X 9 A    I    ЯЛР

I ГОТ

операционные символы: S(3) V(Т) Р(М)    1    ЯДР

литеры фиксированной вставки В 4- — . .    .    ^(р)    i0    CR

КР) LB (ДВ) /    i    ЯДР

Страница 48

ГОСТ 22558-89 С. 47

Эмискт

литеры замещения или плавающей вставки $(в)

Модуль

I ГОТ + — t ЯДР I гот

1 ЯДР

1 гот

I ЯДР

I гот

I ЯДР

1    ЯДР

2    ЯДР 2 ЯДР I ЯДР

I гот I гот I гот I ЯДР 1 гот I ЯДР 1 гот

I ЯДР I ЯДР I ЯДР

I гот I ЯДР I ЯДР I ЯДР

I гот I ЯДР

1    гот

2    ЯДР 2 ЯДР 2 ЯДР

1    ОИТ

2    ОИТ 2 ОИТ 2 ОИТ 2 ОИТ 2 ОИТ 2 ОИТ 2 ОИТ 2 ОПТ 2 ОИТ

I ЯДР

г(П) •

замена валютного знака

замена десятичной точки

Фраза REDEFINES (ПЕРЕОПРЕДЕЛЯЕТ) не может быть вложенной может быть вложенной Фра» RENAMES (ПЕРЕИМЕНОВЫВАЕТ)

Фраза SIGN (ЗНАК)

Фраза SOURCE (ИСТОЧНИК)

Фраза SUM (СУММА)

Фра la SYNCHRONIZED (ВЫДЕЛЕНО)

Фраза TYPE (ТИП)

Фраза USAGE (об использовании)

l»INAR\ (ДВОИЧНОЕ)

COMPUTATIONAL (ДЛЯ ВЫЧИСЛЕНИИ)

DISPLAY (ДЛЯ ВЫДАЧИ)

INDEX (ДЛЯ ИНДЕКСА)

PACKED-DECIMAL (ДЕСЯТИЧНОЕ)

Фраза VALUE (ЗНАЧЕНИЕ)

литерал

несколько литералов

литерал-1 THROUGH литерал-2 (литерал-1 ПО литерал-2) несколько диапазонов литералов

Обработка исходных текстов а разделе данных

Оператор COPY (КОПИРОВАТЬ)

OF/IN има-библногски (ИЗ нмя-бнблиотски) фраза REPLACING (ЗАМЕНЯЯ) псевдотекст идентификатор литерал слово

Оператор REPLACE (ЗАМЕНИТЬ) псевдотекст BY псевдотекст (псевдотекст НА псевдотекст) ОГГ (ОТКЛЮЧИТЬ)

3.5 Список элементов раздела процедур

РАЗДЕЛ ПРОЦЕДУР Заголовок раздела процедур

47

Страница 49

С. 48 ГОСТ 22558- 89

Элемент    Моя? ль

Фраза USING (ИСПОЛЬЗУЯ)    !    МПС

разрешается по крайней мере 5 операндов    1    МПС

нет ограничения на число операндов    2    МПС

Декларативные процедуры    I    ПОД

] ИПД ] ГОТ I ОТЛ +

DECLARATIVES (ДЕКЛАРЛТИВЫ)    I    ПОД

1 ОТД I ИПД ! ГОТ I ОТЛ +

END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ)    I    ПОД

I ОТД J ИПД I ГОТ I ОТЛ +

Арифметические выражения    2    ЯДР

Знаки бинарных арифметических операций +    _»/*♦    2    ЯДР

Знаки унарных арифметических операций -f    —    2    ЯДР

Условные выражения    I    ЯДР

Простое условно    1    ЯДР

Условие отношении    3    ЯДР

Знаки операций отношения 1NOTI GREATER THAN (|НЕ1 БОЛЬШЕ)    1    ЯДР

рют| > flHEI >)    I    ялР

JNOTI LESS THAN |fHE| .МЕНЬШЕ)    !    ЯДР

IS’OTI < IIНЕ) <)    I    ЯДР

INOTI EQUAL ТО <(НЕ| РАВНО)    I    ЯДР

|NOT| = (|НЕ| -;)    I    ЯДР

GREATER THAN OR EQUAL TO (БОЛЬШЕ ИЛИ РАВНО)    1    ЯДР

LESS THAN OR EQUAL TO (МЕНЬШЕ ИЛИ РАВНО)    1    ЯДР

„ <“    1    ЯДР

Сравнение числовых операндов    1    ЯДР

Сравнение нечисловых операндов    !    ЯДР

Сравнение имен-индексов и(кли) индексных данных    I    ЯЛР

Условие класса    I    ЯДР

NUMERIC (ЧИСЛОВОЕ)    I    ЯДР

ALPHABETIC (БУКВЕННОЕ)    1    ЯДР

ALPHABETIC-LOWER (СТРОЧНЫЕ)    1    ЯДР

ALPHABETIC-UPPER (ПРОПИСНЫЕ)    t    ЯДР

имя-класса    I    ЯДР

Условие имени-условия    2    ЯДР

Условие знака    2    ЯДР

Условие состояния-переключателя    I    ЯДР

Сложное условие    2    ЯДР

Знаки логических операций AND (И) OR (ИЛИ) NOT (НЕ)    2 ЯДР

Отрицание условия    2    ЯДР

Комбинированное условие    2    ЯДР

Страница 50

ГОСТ 22558-89 С. 49

Элемект    Меду:

Условие в скобках    I    ЯДР

Сокращенные комбинированные условия отноихния    2    ЯДР

Арифметические операторы    1    ЯДР

Арифметические операнды имеют длину до 18 цифр    i    ЯДР

Композиция операндов содержит кс более 18 цифр    1    ЯДР

Оператор ACCEPT (ПРИНЯТЬ)    I    ЯДР

идентификатор    I    ЯДР

только одна передача данных    1    ЯЛР

число передач данных не ограничивается    2    ЯДР

фраза FROM мнемоиичсскос-нмя (С мнемоническое имя)    2    ЯДР

фраза FROM DATE/DAY/DAYOF-WEEK/TIME (ДАТУ/ ДЕНЬ/ДЕНЬ-НЕДЕЛИ/ВРЕМЯ)    2    ЯДР

Оиератоп ACCEPT MESSAGE COUNT (ПРИНЯТЬ ЧИСЛО СООБЩЕНИИ)    I    КОМ

Оператор ADD (СЛОЖИТЬ)    I    ЯДР

идентификатор/литерал    I    ЯДР

несколько идентификаторов/литералов    •    ЯДР

ТО идентификатор (С идентификатор)    '    ЯДР

ТО несколько идеитификаторов (С несколько идеитификато-ров)    •    ЯДР

ТО идентификатор/литерал GIVING идентификатор (С идеи-тификатор/литерал ПОЛУЧАЯ идентификатор)    1    ЯДР

ТО идентификатор/литерал GIVING несколько-идентифика-торов (С иаснтификагор/лнтерал ПОЛУЧАЯ несколько идентификаторов)    1    ЯДР

фраза ROUNDED (ОКРУГЛЯЯ)    I    ЯДР

Фрз-ja ON SIZE F.RROR (ПРИ ПЕРЕПОЛНЕНИИ)    1    ЯДР

фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ)    I    ЯДР

фраза END ADD (КОНЕЦ-СЛОЖИТЬ)    I    ЯДР

фраза CORRESPONDING (СООТВЕТСТВЕННО)    2    ЯДР

Оператор ALTER (ИЗМЕНИТЬ)    1    ЯДР

+ 4 +

юлько одно имя-процедуры    I    ЯДР

несколько имей процедур •    2    ЯДР

Оператор CALL (ВЫЗВАТЬ)    I    МПС

литерал    1    МПС

идентификатор    2    .411C

фраза USING (ИСПОЛЬЗУЯ)    1    МПС

идентификатор    1    МПС

разрешается по крайней мере 5 операндов    I    МПС

нет ограничения на число операндов    2    МПС

фраза BY REFERENCE (ССЫЛКУ)    2    МПС

фраза BY CONTENT (ЗНАЧЕНИЕ)    2    МПС

фраза ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ)    2    МПС

фраза ON EXCEPTION (ПРИ ОШИБКЕ)    2    .МПС

фраза NOT ON EXCEPTION (БЕЗ ОШИБКИ)    2    МПС

фраза END-CALL (КОНЕЦ-ВЫЗВАТЬ) (формат 1)    ]    МПС

фраза END CALL (КОНЕЦ-ВЫЗВАТЬ) (формат 2)    2    МПС

Оператор CANCEL (ОСВОБОДИТЬ)    2    МПС

литерал    2    МПС

идентификатор    2    МПС

49

Страница 51

С. 50 ГОСТ 225S8-89

Эх* «сиг

Оператор CLOSE (ЗАКРЫТЬ) имя-файла

Модуль

I ПОД I ОТД

1 ипа

! ГОТ I ПОД I ОТД I ИПД 1 ГОТ I ПОД ! ОТД I ИПД

I гот I под

1    гот

2    ПОД 2 ПОД

1    ГОТ

2    ПОД 2 ОТД

ИПД

ГОТ

ЯДР

ялр

ялр

ЯДР ЯДР ЯДР ЯЛР ) ЯЛР 1 ОТД J ИПД 1 ОТД ! ИПД I ОТ л

1    ИЩ ' от л : ипд с* КОМ

2    ком 2 КОМ

? ком

7 КОМ 2 КОМ + I Я ip

1    ЯДР

2    ЯЛР J ЯЛР

1    ЯЛР

2    ЯДР 2 ЯЛР I ЯЛР 1 ЯДР 1 ЯДР

несколько имен-файлов

фраза KEEL, UNIT (КАТУШКУ/ТОМ)

фраза FOR REMOVAL (С УДАЛЕНИЕМ) фраза WITH NO REWIND (БЕЗ ПЕРЕМОТКИ)

фраза WITH LOCK (С ЗАМКОМ)

Оператор COMPUTE (ВЫЧИСЛИТЬ) арифметическое выражение несколько ндситкфика торов фраза ROUNDED (ОКРУГЛЯЯ) фраза ON SIZE F.RROR (ПРИ ПЕРЕПОЛНЕНИИ) фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) фраза END COMPUTE (КОНЕЦ ВЫЧИСЛИТЬ)

Оператор CONTINUE (ПРОДОЛЖИТЬ)

Оператор DELETE (УДАЛИТЬ)

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА)

фраза NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА)

фраза END DELETE (КОНЕЦ-УДАЛИТЬ)

Оператор DISABLE (ЗАПРЕТИТЬ) фраза INPUT (ВВОД) фраза TERMINAL (С ТЕРМИНАЛА) фраза I-0-TERMINAL (ВВОД-ВЫВОД С ТЕРМИНАЛА) фраза OUTPUT (ВЫВОД) фру за WITH KEY (КЛЮЧ)

Опера гор DISPI AY (ВЫДАТЬ) только одна передача данных ограничений на число передач нет идентификатор, литерал несколько идентификаторов/литералов фраза UPON мкемоня>«?ское-нмя (НА мнемоническое имя) фраза WITH NO ADVANCING (БЕЗ ПРОДВИЖЕНИЯ) Оператор DIVIDE (РАЗДЕЛИТЬ)

В\ идентификатор/литерал (НА идентификатор/литерал) GIVING идентификатор (ПОЛУЧАЯ идентификатор)

Э)

Страница 52

ГОСТ 22553-89 С, 51

Элемент

GIVING несколько идентификаторов (ПОЛУЧАЯ несколько идентификаторов)

"/дуд

I ЯДР

1    ЯД?

2    ЯД?

I ЯДР I ЯДР

1    ЯДР КОМ КОМ КОМ КОМ КОМ

2    КОМ +

1    ЯДР +

2    ЯДР 2 ЯЛР 2 ЯД? а ЯДР 2 ЯДР 2 ЯДР 2 ЯДР 2 ЯДР 2 ЯДР 2 ЯДР I ЯДР 1 МПС I ГОТ

I ГОТ

] гот 1 ЯДР

1    ЯДР

2    ЯДР +

I ЯДР

1 ЯДР

1    ЯДР

2    ЯДР I ЯДР I ЯЛР

I ЯЛР I ЯДР

1    ЯДР

S яд? : ядр

2    ЯДР 2 ЯДР

I гот

1 ЯД?

1    ЯДР

2    ЯДР I ЯДР I ЯДР

Фраза ROUNDED (ОКРУГЛЯЯ)

фраза REMAINDER (ОСТАТОК)

фраза ON SIZE ERROR (ПРИ ПЕРЕПОЛНЕНИИ)

фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ)

фраза END-DIVIDE (КОНЕЦ-РАЗДЕЛИТЬ)

Оператор ENABLE (РАЗРЕШИТЬ) фраза INPUT (ВВОД) фраза TERMINAL (С ТЕРМИНАЛА) фраза 1 O TF.RMINAL (ВВОД ВЫВОД С ТЕРМИНАЛА) фраза OUTPUT (ВЫВОД) фраза WITH KEY (КЛЮЧ)

Оператор ENTER (ВОПТИ)

Оператор EVALUATE (ОЦЕНИТЬ) иденг ифнка тор/л итерал арифметическое выражение условное выражение TRUE/FALSE (ИСТ И НА-ЛОЖЬ) фраза ALSO (ТАКЖЕ) фраза WHEN (КОГДА 1 фраза ALSO (ТАКЖЕ) фраза WHEN OTHER (ИНАЧЕ) фраза END-ЕVALUAТЕ (КОНЕЦ-ОЦЕНИТЬ)

Оператор EXIT (ВЫПТИ)

Оператор EXIT PROGRAM (ВЫПТИ ИЗ ПРОГРАММЫ) Оператор GENERATE (ГЕНЕРИРОВАТЬ) имя-да иного имя-отчета Оператор GO ТО (ПЕРЕЙТИ) имя-процедуры обязательно имя-процедуры необязательно Фраза DEPENDING ON (В ЗАВИСИМОСТИ ОТ)

Оператор IF (ЕСЛИ) только повелительные операторы повелительна и (или) условные операторы вложенные операторы IF (ЕСЛИ) необязательное слови THEN (ТО)

фраза NEXT SENTENCE (СЛЕДУЮЩЕЕ ПРЕДЛОЖЕ-

фраза ELSE (ИНАЧЕ) фраза END IF (КОНЕЦ ЕСЛИ)

Оператор INITIALIZE (ИНИЦИИРОВАТЬ) несколько идентификаторов фраза REPLACING (ЗАМЕНЯЯ) несколько фраз REPLACING (ЗАМЕНЯЯ)

Оператор INITIATE (НАЧАТЬ)

Оператор INSPECT (ПРОСМОТРЕТЬ) на вхождение одной литеры на вхождение нескольких литер фраза TALLYING (СЧИТАЯ) фраза BEFORE/AFTER (ДО/ПОСЛЕ)

51

Страница 53

С 52 ГОСТ 22558-89

Элемент    Модуль

нисколько фраз BEFORE/AFTER (ДО/ПОСЛЕ)    > ЯЛР

нс-сколько фра.» TAI.LYING (СЧИТАЯ)    2 ЯДР

фраза REPLACING (ЗАМЕНЯЯ)    1 ЯДР

фраза BEFORE/AFTER (ДО/ПОСЛЕ)    1 ЯДР

несколько фраз BEFORE/AFTER (ДО/ПОСЛЕ)    2 ЯДР

несколько фраз REPLACING (ЗАМЕНЯЯ)    2 ЯДР

фразы TALLYING (СЧИТАЯ) к REPLACING (ЗАМЕНЯЯ) 1 ЯДР фраза CONVERTING (ПРЕВРАЩАЯ)    2 ЯДР

Оператор MERGF. (СЛИТЬ)    I СРТ

фраза ASCENDING/DESCENDING KEY (ПО ВОЗРАСТАНИЮ/УБЫВАНИЮ КЛЮЧА)    I    СРТ

фраза COLLATING SEQUENCE (АЛФАВИТ)    1    СРТ

фраза USING (ИСПОЛЬЗУЯ)    I    СРТ

фраза OUTPUT PROCEDURE (ПРОЦЕДУРА ВЫВОДА)    I    СРТ

ими пропедуры    !    СРТ

фраза GIVING (ПОЛУЧАЯ)    I    СРТ

Оператор MOVE (ПОМЕСТИТЬ)    «    ЯДР

ТО идентификатор (В идентификатор)    I    ЯДР

ТО несколько идентификаторов (В несколько идентификаторов)    I ЯДР

Фраза CORRESPONDING (СООТВЕТСТВЕННО)    2 ЯДР

дередахтировзнне цифровых редактируемых данных    2 ЯДР

Оператор MULTIPLY (УМНОЖИТЬ)    I ЯДР

BY идентификатор (НА идентификатор)    I ЯДР

BY несколько идентификаторов (НА несколько идентификаторов)    I    ЯДР

GIVING идентификатор (ПОЛУЧАЯ идентификатор)    I    ЯЛР

GIVING несколько идентификаторов (ПОЛУЧАЯ несколько ваевтяфикаторов)    I а-?р

Фраза ROUNDED (ОКРУГЛЯЯ)    Я1Р

фраза ON SIZE ERROR (ПРИ ПЕРЕПОЛНЕНИИ)    ■    аДР

фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ)    j    aqp

фраза END-MULTI PLY (КОНЕЦ-УМНОЖИТЬ)    ]    SjP

Оператор OPEN (ОТКРЫТЬ)    j    ПОД

1 ОТД 1 ИПД 1 rOT

имя-файла    ;    ПОЛ

I ОТЛ ! НПЧ 1 ГСТ

несколько амен файлов    I    лсд

I 01Д I НПЧ

фраза INPUT (ВХОДНОЙ)    j    род

1 01Л

фраза WITH NO REWIND (БЕЗ ПЕРЕМОТКИ)    о    ПОТ

фраза REVERSED (РЕВЕРСНО)    2    ПОД +

62

Страница 54

ГОСТ 22558-89 С. 53

фраза OUTPUT (ВЫХОДНОЙ)    1    ПОД

I ОТД I ИПД I ГОТ

WITH NO REWIND (БЕЗ ПЕРЕМОТКИ)    2    ПОД

I ГОТ

фраза 1-0 (ВХОДНОИ-ВЫХОДНОИ)    I    ПОД

I ОТД

1    ИПД

фраза EXTEND (ДОПОЛНЯЕМЫЙ)    2    ПОД

2    ОТД 2 ИПД I ГОТ

несколько фраз INPUT (ВХОДНОЙ). OUTPUT (ВЫХОДНОЙ). 1-0 (ВХОДНОИ-ВЫХОДНОИ)    I    ПОД

I ОТД

1    ИПД

несколько фраз EXTEND (ДОПОЛНЯЕМЫЙ)    2    ПОД

2    ОТД 2 ИПД

Оператор PERFORM (ВЫПОЛНИТЬ)    1    ЯДР

имя-процедуры необязательно    1    ЯДР

фраза THROUGH имя-процедуры (ПО имя-процедуры)    1    ЯДР

варнан? повелнтелъный-оператор    1    ЯДР

фраза END-PERFORM (КОНЕЦ-ВЫПОЛНИТЬ)    I    ЯДР

фраза TIMES (РАЗ)    I    ЯДР

фраза UNTIL (ДО)    1    ЯДР

фраза TEST BEFORE/AFTER (С ПРОВЕРКОЙ В НАЧАЛЕ/ В КОНЦЕ)    2    ЯДР

фраза VARYING (МЕНЯЯ)    2    ЯДР

фраза TEST BEFORE/AFTER (С ПРОВЕРКОЙ В НАЧАЛЕ/ В КОНЦЕ)    2    ЯДР

фраза AFTER (ЗАТЕМ)    2    ЯДР

допускаются по крайней мере 6 фраз AFTF.R (ЗАТЕМ) 2    ЯДР

Оператор PURGE (ОЧИСТИТЬ)    2    КОМ

Оператор READ (ЧИТАТЬ)    I    ПОД

1    ОТД

фраза NEXT (СЛЕДУЮЩУЮ)    2    ПОД

2    ОТД 2 ИПД

фраза INTO (В)    1    ПОД

1 ОТД

Фраза AT END (В КОНЦЕ)    !    ПОД

I ОТД

фраза NOT AT END (НЕ В КОНЦЕ)    !    ПОД

I ОТД

фраза KEY (КЛЮЧ)    2    ИПД

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА)    ]    ОТД

I ИПД

фраза NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА)    1    ОТД'

1 ИПД

53

Страница 55

С. 54 ГОСТ 22558-89

Ммфль

фраза END READ (КОНЕЦЧПТАТЬ)

I ПОД I ОТД

I ИПД

1 КОМ 1 КОМ 1 КОМ

1 ком 1 ком ] ком 1 ком

I СРТ I СРТ I СРТ I СРТ 1 СРТ I СРТ 1 СРТ

I под

I ОТД I ИПД

1 под I ОТЛ I ИПД 1 ОТД I ИПД 1 ОТД I ИПД

1 отд

1    ИПД

2    ЯДР 2 ЯДР 2 ЯДР 2 ЯДР 2 ЯДР 2 ЯДР 2 ЯДР 2 ЯДР 2 ЯДР 2 ЯЛР

1    ком

2    КОМ

1    КОМ

2    КОМ 2 КОМ 2 КОМ 2 КОМ

I КОМ I КОМ 1 КОМ

Оператор RECEIVE (ПОЛУЧИТЬ) фраза MESSAGE (СООБЩЕНИЕ) фраза SEGMENT (СЕГМЕНТ) фраза INTO идентификатор (В идентификатор) фраза NO DATA (НЕТ ДАННЫХ)

Фраи WITH DATA (ЕСТЬ ДАННЫЕ) фраза END-RECEIVE (КОНЕЦ-ПОЛУЧИТЬ)

Оператор RELEASE (ПЕРЕДАТЬ) фраза FROM (ИЗ ПОЛЯ)

Оператор RETURN (ВЕРНУТЬ) фраза INTO (В) фраза AT F.ND (В КОНЦЕ) фраза NOT AT END (НЕ В КОНЦЕ) фраза END-RETIJRN (КОНЕЦВЕРНУТЬ)

Оператор REWRITE (ОБНОВИТЬ)

фраза FROM (ИЗ ПОЛЯ)

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА)

фраза NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА)

фраза END REWR1TE (КОНЕЦ ОБНОВИТЬ)

Оператор SEARCH (ИСКАТЬ)

Фраза VARYING (МЕНЯЯ)

фраза AT END <В КОНЦЕ)

фраза WHEN (КОГДА)

несколько фраз WHEN (КОГДА)

фраза END SEARCH (КОНЕЦИСКАТЬ)

Оператор SL ARCH ALL (ИСКАТЬ ОСОБО) фраза ЛТ END (В КОНЦЕ) фраза WHEN (КОГДА) фраза END SEARCH (КОНЕЦ ИСКАТЬ)

Оператор SEND (ПОСЛАТЬ) фраза FROM идентификатор (ИЗ ПОЛЯ идентификатор) Масть сообщения)

фраза FROM идентификатор (ИЗ ПОЛЯ идентификатор) (йодное сообщение)

фрс,за WITH идентификатор (С идентификатор) фраза WITH ESI (С ИКС) фраза WITH EMI (С ИКЩ) фраза WITH EGI (С ИКГ)

фраза BEFORE/AFTER ADVANCING (ДО/ПОСЛЕ ПРОДВИЖЕНИЯ) целое LINE/LINES (целое СТРОК) идентификатор LINE/LINES (идентификатор СТРОК)

54

Страница 56

ГОСТ 22658-89 С. 55

Элемент    Модули

мнемоническое-имя    2    КОМ

PAGE (СТРАНИЦЫ)    1    КОМ

фраза REPLACING LINE (ЗАМЕНЯЯ СТРОКУ)    2    КОМ

Оператор SET (УСТАНОВИТЬ)    !    ЯДР

имяинлекса/идентификатор ТО (НА)    I    ЯДР

имя-индекса UP BY/DOWN BY (имя-индскса ПРИБАВЛЯЯ/ ВЫЧИТАЯ)    I    ЯДР

миемоннческое-имя ТО ON/OFF (инемоннчсскоенмя НА ВКЛЮЧЕНО/ВЫКЛЮЧЕНО)    I    ЯДР

имя-условия ТО TRUE (имя-условия НА ИСТИНА)    2    ЯДР

Оператор SORT (СОРТИРОВАТЬ)    I    СРТ

фраза ASCENDING/DESCENDING KEY (ПО ВОЗРАСТАНИЮ/УБЫВАНИЮ КЛЮЧА)    I    СРТ

фраза DUPLICATES (С ДУБЛИРОВАНИЕМ)    I    СРТ

фрала COLLATING SEQUENCE (АЛФАВИТ)    »    СРТ

фраза INPUT PROCEDURE (ПРОЦЕДУРА ВВОДА)    I    СРТ

НМЯ-ПРОЦСДУОМ    I    СРТ

фраза USING (ИСПОЛЬЗУЯ)    I    СРТ

фраза OUTPUT PROCEDURE (ПРОЦЕДУРА ВЫВОДА|    1    СРТ

имя-процедуры    1    СРТ

фраза GIVING (ПОЛУЧАЯ)    '    СРТ

Оператор START (ПОДВЕСТИ)    2    ОТД

фраза KEY (КЛЮЧ)    2    ОТД

2 ИНД

EQUAL ТО (РАВНО)    2    ОТД

2 ИПД

=    2    ОТД

2 ИПД

GREATER THAN (БОЛЬШЕ)    2    ОТД

2 ИПД

>    2    ОТД

2 ИПД

NOT LESS THAN (НЕ МЕНЬШЕ)    2    ОТД

2 ИПД

NOT < (НЕ <)    2    ОТД

2 ИПД

GREATER THAN OR EQUAL TO (БОЛЬШЕ ИЛИ PAB

НО)    2    ОТД

2 ИПД 2 ОТД 2 ИПД

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА)    2    ОТД

<2 ИПД

фраза NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА)    2    ОТД

2 ИПД

фраза END START (КОНЕЦ-ПОДВЕСТИ)    2    ОТД

? ИПД I ЯДР I ЯДР

Оператор STOP (ОСТАНОВИТЬ) STOP (РАБОТУ)

литерал    1 ЯДР    +

Оператор STRING (СОБРАТЬ)    2 ЯДР

несколько DELIMITED BY (ОГРАНИЧИВАЯСЬ)    2 ЯДР

55

Страница 57

С. 56 ГОСТ 22*58- 89

Элсисят    Модуль

фраза WITH POINTER (УКАЗАТЕЛЬ)    2    ЯДР

ippasa ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ)    2    ЯЛР

♦раза NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ)    2    ЯЛР

фраза END STRING (КОНЕЦ СОБРАТЬ)    2    ЯЛР

Оператор SUBTRACT (ОТНЯТЬ)    •    1 ЯДР

идситификзтор/лнтерал    1    ЯЛР

несколько идентификаторов/литералов    1    ЯЛР

FROM идентификатор (ОТ идентификатор)    1    ЯЛР

FROM несколько идентификаторов (ОТ несколько идентификаторов)    I    ЯЛР

GIVING идентификатор (ПОЛУЧАЯ идентификатор)    1    ЯЛР

GIVING несколько идентификаторов (ПОЛУЧАЯ несколько идентификаторов)    1    ЯЛР

фраза ROUNDED (ОКРУГЛЯЯ)    1    ЯЛР

фраза ON SIZE ERROR (ПРИ ПЕРЕПОЛНЕНИИ)    I    ЯЛР

фраза NOT ON SIZE ERROR (ЬЕЗ ПЕРЕПОЛНЕНИЯ)    I    ЯЛР

фраза END-SUBTRACT (КОНЕЦ-ОТНЯТЬ)    I    ЯЛР

фраза CORRESPONDING (СООТВЕТСТВЕННО)    2    ЯЛР

Оператор SUPPRESS (ПОДАВИТЬ)    1    ГОТ

Оператор TERMINATE (ЗАКОНЧИТЬ)    I    ГОГ

Оператор UNSTRING (РАЗОБРАТЬ)    2    ЯДР

фраза DELIMITED BY (ОГРАНИЧИВАЯСЬ)    2    ЯЛР

фраза.DELIMITER IN (ОГРАНИЧИТЕЛЬ В)    2    ЯДР

фраза COUNT IN (СЧЕТ В)    2    ЯДР

фраза WITH POINTER (УКАЗАТЕЛЬ)    2    ЯДР

фраза TALLYING (СЧИТАЯ)    2    ЯЛР

фраза ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ)    2    ЯДР

фраза NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ)    2    ЯЛР

■фраза ENDUNSTR1NG (КОНЕЦ-РАЗОБРАТЬ)    2    ЯДР

Оператор USE (ИСПОЛЬЗОВАТЬ)    I    ПОД

I ИПД I ГОТ I ОТЛ +-

фраза EXCEPTION/ERROR PROCEDURE (ПРОЦЕДУ-    ]    ПОД

РЫ ОШИБКИ)    1    ОТД

1 ИПД 1 ГОТ

фраза GLOBAL (ГЛОБАЛЬНО)    2    МПС

ON ним файла (ДЛЯ ихя файла)    I    ПОД

1 ОТД I ИПД

1    ГОТ

ON несколько имен фэйлов (ДЛЯ несколько имен-файлов)    2    ПОД

2    ОТД 2 ИПД I ГОТ

ON INPUT (ДЛЯ ВХОДНЫХ)    I    ПОД

1 ОТД 1 ИПД

56

Страница 58

ГОСТ 22559-89 С. 57

Элемент

Модуль

ON OUTPUT (ДЛЯ ВЫХОДНЫХ)

I ПОД I ОТД,, 1 ИПД 1 ГОТ I ПОД I ОТД

1    ИПД

2    ПОД •2 ОТД 7 ИПД I ГОТ

1    ГОТ

2    МПС 1 ОТЛ ! ОТЛ

1    О ГЛ

2    ОТЛ + 2 ОТЛ + 2 ОТЛ + I ПОД

! ОТД ИПД

: под I отд I ипд

I пол I под

1    под

2    ПОД

1    под

2    ПОД 2 ПОД

I отд I ипд I отд

1    ипд

2    ПОД 2 ОТД 2 ИПД

1 СЕГ +

I СЕГ +

1    СЕГ +

2    СЕГ +

ON 1-0 (ДЛЯ входных выходных»

ON EXTEND (ДЛЯ ДОПОЛНЯЕМЫХ)

фраза BEFORE REPORTING (ДО ВЫДАЧИ) фраза GLOBAL (ГЛОБАЛЬНО) фраза FOR DEBUGGING (ДЛЯ ОТЛАДКИ) имя-процедуры

++4-

ALL PROCEDURES (ПРИ ВСЕХ ПРОЦЕДУРАХ)

ALL REFERENCES OF идентификатор-1 (ПРИ ВСЕХ ССЫЛКАХ НА идентификатор-!) имя-коммуникации имя-файла Оператор WRITE (ПИСАТЬ)

фраза FROM (ИЗ ПОЛЯ)

фраза BEFORE/AFTER ADVANCING (ДО/ПОСЛЕ ПРОДВИЖЕНИЯ) мам LINE/LINES (целое СТРОК) идентификатор LINE/LINES (идентификатор СТРОК) мксмоикчсское-имя PAGE (СТРАНИЦЫ) фззза AT END-OF PAGE/EOP (В КОНЦЕ СТРАНИЦЫ) фраза NOT AT END-OF-PAGE/EOP (НЕ В КОНЦЕ СТРАНИЦЫ)

фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) фраза NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) фраза END-WRITE (КОИЕЦ-ПИСАТЬ)

Сггментация

Номера-ссгментов от 0 до 49 для постоянных сегментов Номера-сегментов от 50 до 99 для независимых сегментов Все секции, имеющие одинаковый номер-сегмента, дмжкы быть смежными в исходной программе Секции, имекицие одинаковый номер-сегмента, могут быть несмежными в исходной программе Обработка исходных текстов в разделе процедур Оператор COPY (КОПИРОВАТЬ)

1 ОИТ

57

Страница 59

С. 58 ГОСТ 22558-89

Эл*м«.ч1    MOAVW-

Jpara OF/IN нмя-библиотски (ИЗ имя-библиотски)    2 ОПТ

раза REPLACING (ЗАМЕНЯЯ)    2 ОИТ

псевдотекст    2 ОИТ

идектпфикатор    2 ОИТ

литерал    2 ОИТ

слово    2 ОИТ

Оператор REPLACE (ЗАМЕНИТЬ)    2 ОИТ

псевдотекст BY псевдотекст (псевдотекст НА    псевдотекст) 2 ОИТ

OFF (ОТКЛЮЧИТЬ)    2 ОИТ

Часть 2. КОНЦЕПЦИИ И СРЕДСТВА ЯЗЫКА

I. ВВЕДЕНИЕ

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

2. ФАЙЛЫ

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

Используются следующие соглашения при описании возможностей Кобол программ для манипулирования файлами. Термин «имя-файла» обозначает определенное пользователем слово, используемое н исходной Кобол-программе для ссылки на файл. Термины «файл, на который ссылается имя-файла» и «файл* обозначают физический файл независимо от имени-файла, используемого в Кобол-программе. Термин «определитель файла» обозначает объект, содержащий информацию относительно файла. Все доступы к физическим файлам осуществляются через определитель файла. В различных реализациях определитель файла может быть таблицей информации о файле, блоком управления файлом и т. п.

2.1. Свойства файла

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

58

Страница 60

ГОСТ 2255S—89 С. 59

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

2.1 1. Последовательная организация

Последовательные файлы организованы так. что каждая запись. за исключением последней, имеет единственную последующую запись; каждая запись, за исключением первой, имеет единственную предшествующую запись. Отношение «предшественник-преемник* устанавливается порядком выполнения оператора WRITE (ПИСАТЬ) при создании файла. Установленный порядок предшествования не изменяется за исключением случая, когда записи добавляются в конец файла.

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

2.1.2.Относительная организация

Файл с относительной организацией • это файл массовой памя-ти. доступ к записям которого осуществляется по значению относительного номера записи.

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

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

2 1.3. Индексная организация

Файл с индексной организацией — это файл массовой памяти, доступ к записям которого осуществляется заданием значения оп-

59

Страница 61

С. 60 ГОСТ 22558-89

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

Каждый индексный файл имеет основной индекс, представляющий основной ключ записи каждой записи в файле. Каждая запись помещается в файл, изменяется или удаляется из файла только на основании значения ее основного ключа записи. Основной ключ каждой записи в файле должен быть однозначным (уникальным) и не должен изменяться при обновлении записи. Основной ключ записи объявляется в фразе RECORD KEY (КЛЮЧ ЗАПИСИ) статьи управления файлом для данного файла.

Дополнительные ключи записи обеспечивают дополнительные способы извлечения записей файла. Такие ключи называются в фразах ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ) статьи управления файлом. Значение отдельного дополнительного ключа в каждой записи не обязательно должно быть однозначным. В случае, когда значения могут быть неоднозначными, в фразе ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ) должен быть указан вариант DUPLICATES (С ДУБЛИРОВАНИЕМ).

2.1.4. Л or и ч е с к и е записи

Логическая запись — это порция данных, которую мож..о поместить в файл или извлечь из него. Количество записей, содержащихся в файле, ограничивается только возможностью запоминающей среды. Имеются два типа записей: запись фиксированной длины и запись переменной длины. При создании файла объявляется, какой тип записей он будет содержать. В любом случае содержимое области записи не отражает никакой информации, которую реализация может добавлять к записи в физической памяти (например, заголовок длины записи); длина записи, использ>емаи программистом в Коболе, также не отражает таких добавлений.

2 1.4.1. Записи фиксированной длины

Записи фиксированной длины должны содержать одно и то же количество позиций литер во всех записях файла. Все операции ввода-вывода могут обрабатывать записи только такого размера. Записи фиксированной длины можно определить явно форматом 1 фразы RECORD (В ЗАПИСИ) статьи описания файла независимо от индивидуальных описаний записи.

2.1.4.2. Записи переменной длины

Записи переменной длины могут содержать различное количс-cibo позиций литер в записях файла. Лая явного определения записей переменной длины можно указать вариант VARYING (ПЕРЕМЕННОЕ ЧИСЛО ЛИТЕР) фразы RECORD (В ЗАПИСИ)

fiO

Страница 62

ГОСТ 22558-89 С. 61

статьи описания файла. Длина записи зависит от данного, на которое имеется ссылка в варианте DEPENDING ON (В ЗАВИСИМОСТИ ОТ) фразы RECORD (В ЗАПИСИ) или в варианте DEPENDING ON (В ЗАВИСИМОСТИ ОТ) фразы OCCURS (ПОВТОРЯЕТСЯ), или от длины записи статьи описания записи в файле.

2.1.4.3. Типы записей, определяемые реализацией

Если в статье описания файла не указана фраза RECORD (В ЗАПИСИ) для файла или если фраза RECORD (В ЗАПИСИ) определяет диапазон позиций литер, реализация определяет, какой получается тип записей — переменной длины или фиксированной длины.

2 2. Обработка файлов

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

2.2.1.Операции над записями

Фраза ACCESS (ДОСТУП) статьи описания файла указывает способ, которым объектная программа оперирует записями в файле. Доступ может быть последовательным, произвольным и динамическим.

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

Дня выходного отчета его содержимое, организация и формат могут быть определены при использовании средств генератора отчетов (ч. 2. п. 3.1).

2.2.1.1. Последовательный доступ

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

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

При относительной организации порядок последовательного доступа возрастающий по значению относительных номеров записи. Доступны только записи, существующие в текущий момент в файле. Для установления начальной точки следующих друг за другом последовательных извлечений может быть использован оператор START (ПОДВЕСТИ).

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

61

Страница 63

с. 62 ГОСТ 225ЗД 89

новлек в качестве ключа ссылки во время обработки файла. Порядок извлечения из набора записей, имеющих дублирующиеся значения ключа ссылки, является первоначальным порядком занесения >гих записей в набор. Для установления начальной точки в индексном файле для ряда следующих друг за другом последовательных извлечений может быть использован оператор START (ПОДВЕСТИ).

2 2 1.2. Произвольный доступ

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

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

2 2.1.3. Динамический доступ

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

2 2.! .4. Режим открытия

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

для ввода — для извлечения записей;

для вывода — для занесения записей в файл;

яг.л дополнения — для добавления записей к существующему файлу;

для ввода-вывода — для извлечения и обновления записей.

Режим открытия определяется оператором OPEN (ОТКРЫТЫ.

Если файл открыт для ввода, возможен доступ к файлу по оператору READ (ЧИТАТЬ). Для файлов с индексной или относительной организацией, для которых указан последовательный или динамический доступ, может быть также использован оператор START (ПОДВЕСТИ).

Если файл открыт для вывода, записи помещаются в файл выполнением операторов GENERATE (ГЕНЕРИРОВАТЬ). TERMINATE (ЗАКОНЧИТЬ) или WRITE (ПИСАТЬ).

Если файл открыт для дополнения, новые записи добавляются в логический конец файла выполнением операторов GENERATE

Страница 64

ГОСТ 22558 -89 С. 63

(ГЕНЕРИРОВАТЬ), TERMINATE (ЗАКОНЧИТЬ) или WRITE (ПИСАТЬ).

В режиме открытия для ввода-вывода можно обращаться только к файлам массовой памяти. Дополнительные возможности устройств массовой памяти позволяют обновление записей на месте, таким образом, всегда могут быть использованы операторы READ (ЧИТАТЬ) и REWRITE (ОБНОВИТЬ). Файлы массовой памяти могут быть обновлены таким же образом, как и файлы в последовательной запоминающей среде, перезаписыванием файла полностью в другой файл (возможно в другой участок массовой памяти), используя операторы READ (ЧИТАТЬ) и WRITE (ПИСАТЬ). Тем не менее, иногда более эффективно обновлять файлы массовой памяти на месте. При такой методике обработки файла массовой памяти оператор REWRITE (ОБНОВИТЬ) используется для возврата иа то же место запоминающей среды только тех записей, которые были изменены. Операторы READ (ЧИТАТЬ) и REWRITE (ОБНОВИТЬ) являются единственными операторами, использование которых допускается во время обновления па месте последовательных файлов. Для индексных и относительных файлов применяются следующие дополнительные функции: оператор START (ПОДВЕСТЙ) может быть использован при последовательном или динамическом доступе для изменения последовательности извлечения записей; оператор DELETE (УДАЛИТЬ) может быть использован при любом доступе для логического удалении записи из файла; оператор WRITE (ПИСАТЬ) можел быть использован при произвольном или динамическом доступе для вставки новой записи в файл.

2.2.1.5.    Указатель текущего тома

Указатель текущего тома -- логическое понятие, используемое и этом документе для облегчения точного определения текущего физического тома последовательного файла. На состояние указателя текущего тома влияют операторы CLOSE (ЗАКРЫТЬ), OPEN (ОТКРЫТЬ), WRITE (ПИСАТЬ) и READ (ЧИТАТЬ)

2.2.1.6.    Индикатор позиции файла

Индикатор позиции файла — логическое понятие, используемое в этом документе для облегчения точного определения следующей записи в данном файле, которая станет доступной в конкретной последовательности операций ввода-выиода. На установку индикатора позиции файла влияют только операторы START 1ПОЛ-ВЕСТИ), OPEN (ОТКРЫТЬ) и READ (ЧИТАТЬ). Понятие индикатора позиции файла не имеет смысла для файлов, открытых для вывода или дололнения.

2.2.1.7.    Понятие верстки

При определении выходного отчета может быть использована фраза LINAGE (ВЕРСТКА). Она облегчает определение логиче-

Страница 65

С. ГОСТ 225&S—«9

ской страницы и размещение на логической странице верхнего г нижнего полей и области концовки. Использование фразы LINAGP (ВЕРСТКА) неявно определяет соответствующий специальны! регистр LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ), которьи действует как указатель строки в теле страницы.

2,2.2. Операции над файлами

Несколько операторов Кобола обрабатывают файлы как единое целое или как набор записей. Это операторы CLOSE (ЗАКРЫТЬ), OPEN (ОТКРЫТЬ), MERGE (СЛИТЬ) и SORT (СОРТИРОВАТЬ).

2.2.2.1.    Сортировка и ыияние

2.2.2.1.1.    Сортировка

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

В процедуре ввода для создания сортируемого файла используется оператор RELEASE (ПЕРЕДАТЬ). Это значит, что по завершении выполнения процедуры ввода те записи, которые обработаны посредством оператора RELEASE (ПЕРЕДАТЬ) (а не оператором WRITE (ПЙСАТЬ)), составляют сортируемый файл, доступ к которому возможен только по оператору SORT (СОРТИРОВАТЬ). Выполнение оператора SORT (СОРТИРОВАТЬ) упорядочивает весь набор записей в сортируемом файле соответствен-, но ключам, указанным в операторе SORT (СОРТИРОВАТЬ).

К отсортированным записям сортируемого файла возможен j доступ посредством оператора RETURN (ВЕРНУТЬ) во время вы- , полнения процедуры вывода.

Для сортируемого файла нет процедур обработки меток, которыми мог бы управлять программист, и правила блокирования п и распределения внутренней памяти определяются оператором ' SORT (СОРТИРОВАТЬ). Операторы RELEASE (ПЕРЕДАТЬ) и RETURN (ВЕРНУТЬ) ничего не предполагают относительно бу- i ферных полей, блоков или катушек. Следовательно, сортируемый 1 файл можно рассматривать как внутренний файл, созданный (one-*

€4

Страница 66

ГОСТ 22558— R9 С. 65

;i«тором RELEASE (ПЕРЕДАТЬ)) из входного файла, обработанной (оператором SORT (СОРТИРОВАТЬ)) н затем доступный :оператором RETURN (ВЕРНУТЬ)) выходному файлу. Обращение и доступ к самому сортируемому файлу возможны только в операторе SORT (СОРТИРОВАТЬ). Описание сортируемого-сливаемого файла можно рассматривать как особый тип описания файла. То есть, сортируемый файл, как и любой файл, является набором записей.

2 2.2.1.2. Слияние

При использовании слияния бывает необходимо применить специальную обработку содержимого слипаемого файла. Специальная обработка может заключаться в добавлении, удалении, изменении, редактировании либо каких-либо других модификациях отдельных записей в файле. Средства слияния в Коболе позволяют пользователю задать процедуру вывода, которая должна выполняться при создании выходного результата слияния. Сливаемые записи становятся доступными из сливаемого файла при использовании оператора RETURN (ВЕРНУТЬ) в процедуре вывода.

Для сливаемого файла нет процедур обработки меток, которыми мог бы управлять программист, и правила блокирования и распределения внутренней памяти определяются оператором MERGE (СЛИТЬ). Оператор RETURN (ВЕРНУТЬ) ничего не предполагает относительно буферных полей, блоков или катушек.

Сливаемый файл, таким образом, можно рассматривать как внутренний файл, созданный из входных файлов их комбинацией (оператором MERGE (СЛИТЬ)) и доступный затем (по оператору RETURN (ВЕРНУТЬ)) выходному файлу. Обращение и доступ к самому сливаемому файлу возможны только в операторе MERGE (СЛИТЬ). Описание сортируемого-сливаемого файла можно рассматривать как особый тип описания файла. То есть, сливаемый файл, как и любой файл, является набором записей.

2.2.3. О б р а 6 о т к а особых ситуаций

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

2.2.3.1. Состояние ввода-вывода

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

На установку сосгоиння ввода-вывода влияют только операторы CLOSE (ЗАКРЫТЬ). DELETE (УДАЛИТЬ). OPEN (ОТКРЫТЬ), READ (ЧИТАТЬ), REWRITE (ОБНОВИТЬ), START (ПОДВЕСТИ) и WRITE (ПИСАТЬ).

3 Зак 254

С5

Страница 67

С. 66 ГОСТ 22558-69

Значение состояния ввода-вывода для данного файла доступно-программе только посредством икени-данного, указанного в фразе-FILE STATUS (СОСТОЯНИЕ ФАЙЛА) статьи управления файлом для этого файла. Значение состояния ввода-вывода помещается н это данное во время выполнения оператора ввода-вывода и до выполнения любого повелительного оператора, связанного с этим оператором ввода-вывода, или до выполнения декларативы ошибки.

2.2.3.2.    Декларативы ошибки

Если для файла указана процедура USE AFTER EXCEPTION (ИСПОЛЬЗОВАТЬ ПОСЛЕ ОШИБКИ), процедура выполняется каждый раз, когда возникают условия ввода или вывода, приводящие к неуспешной операции ввода-вывода. Однако декларати-вз ошибки не выполняется, если имеется условие неверного ключа и указана фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА), или при наличии условия конца и указанной фразе AT END (В КОНЦЕ).

2.2.3.3.    Необязательные фразы

Фразы INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) могут быть указаны в операторах DELETE (УДАЛИТЬ), READ (ЧИТАТЬ), REWRITE (ОБНОВИТЬ), START (ПОДВЕСТИ) или WRITE (ПИСАТЬ). Некоторые из условий, приводящие к условию ошибки ключа, возникают, когда запрашиваемый ключ не существует в файле (операторы DELETE (УДАЛИТЬ), READ (ЧИТАТЬ) или START (ПОДВЕСТИ)); когда ключ уже есть в файле и дублирования не разрешаются (оператор WRITE (ПИСАТЬ)); когда ключа в файле нет или когда ключ не является последним прочитанным ключом (оператор REWRITE (ОБНОВИТЬ)).

Если условие ошибки ключа возникает во время выполнения оператора, для которого указана фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА), выполняется оператор, определяемый этой фразой INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА).

В операторе READ (ЧИТАТЬ) может быть указана фраза АТ' END (В КОНЦЕ). Условие «в конце» возникает:

в файле с последовательным доступом, когда в файле не существует следующей логической записи;

когда число значащих цифр в относительном номере записи больше размера данного — относительного ключа;

когда необязательный файл отсутствует;

при попытке выполнения оператора READ (ЧИТАТЬ) при уже существующем условии «в конце». Если во время выполнения оператора, для которого указана фраза AT END (В КОНЦЕ), возникает условие «в конце», выполняется оператор, определенный фразой AT END (В КОПИЕ).

66

Страница 68

ГОСТ 22558-89 С. 67

3. ГЕНЕРАТОР ОТЧЕТОВ

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

3.1. Секция отчетов

Секция отчетов в разделе данных содержит одну или несколько статей описания отчета RD (00), каждая из которых представляет полное описание отчета.

Отчет, имя которого указано в статье описания отчета, не относится прямо к выходному файлу. Вместо этого он связан с именем* файла в секции файлов и это имя файла связывается с файлом, когда выполняется оператор OPEN (ОТКРЫТЬ), указывающий имя-файла. С одним и тем же именем файла может быть связано несколько отчетов и чтобы отличить отчеты друг от друга, используется фраза CODH (С КОДОМ). Для внешнего определителя файла, соотнесенного имени-файла, отдельно компилируемые программы могут указывать различные отчеты для одного н того же имени-файла. Статья описания файла, к которому откосится отчет, ке может содержать статей описания записей, описывающих записи данных. Эта статья описания файла должна указывать имя статьи описания отчета для каждого отчета, связанного с этим именем-фзйла в данной программе.

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

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

67

3

Страница 69

С. 68 ГОСТ 22558-89

целое. Группа отчета, которую нужно напечатать, печатается целиком на одной логической странице; группа никогда не разбивается при переходе на следующую страницу.

3.2. Структура отчета

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

3.2.1. Вертикальное позиционирование

Средства генератора отчетов позволяют пользователю описывать группы отчета, содержанте множество строк. Вертикальное позиционирование строк на странице определяется фразой LINE NUMBER (НОМЕР СТРОКИ), связанной с каждой строкой. Фраза NEXT GROUP (СЛЕДУЮЩАЯ ГРУППА) указывает, сколько строк следует пропустить после представления последней строки группы. Первая фраза LINE NUMBER (НОМЕР СТРОКИ) следующей группы определяет дополнительную информацию о пропуске строк, которую нужно использовать при позиционировании этой группы.

3.2.2] Горизонтальное позиционирование

Генератор отчетов позволяет пользователю позиционировать поля данных в строке отчета посредством фразы COLUMN NUMBER (НОМЕР СТОЛБЦА). Система управления генератором отчетов обеспечивает заполнение пробелами промежутка между всеми определяемыми полями.

3.2.3, Манипулирование данными

При использовании средств генератора отчетов перемещением данных в группу отчета управляют фразы секции отчетов, а не операторы раздела процедур. Фразы секции отчетов, осуществляющие манипулирование данными, следующие: SOURCE (ИСТОЧНИК). SUM (СУММА) и VALUE (ЗНАЧЕНИЕ).

Фраза SOURCE (ИСТОЧНИК) определяет посылаемое данное неявного оператора MOVE (ПОМЕСТИТЬ). Принимающее печатаемое данное определяется описанием данного группы отчета, в котором появляется фраза SOURCE (ИСТОЧНИК).

Фраза SUM (СУММА) приводит к автоматическому учреждению счетчика суммы. Объект фразы SUM (СУММА) называет данное (данные), которое прибавляется к счетчику суммы при выполнении оператора GENERATE (ГЕНЕРИРОВАТЬ). Пересылка содержимого счетчика суммы в принимающее печатаемое данное, определенное описание данного группы отчета, в которой имеется фраза SUM (СУММА), совершается автоматически при представлении этой группы отчета.

Фраза VALUE (ЗНАЧЕНИЕ) указывает литерал, который появляется в печатаемом данном группы отчета каждый раз при представлении группы отчета.

68

Страница 70

ГОСТ 22558-89 С. 69

Итак, данное в группе отчета представляется, если оно сопровождается фразой COLUMN NUMBER (НОМЕР СТОЛБЦА), указывающей, где оно должно быть представлено. Значение, помещаемое в печатаемое данное, определяется фразами VALUE (ЗНАЧЕНИЕ). SOURCE (ИСТОЧНИК) или SUM (СУММА), находящимися в описании группы отчета. Ни при каких обстоятельствах печатаемое данное группы отчета не может получить значение непосредственно от оператора раздела процедур.

3.2.4.    Подразделения отчета

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

3.2.4.!.    Физическое подразделение отчета

Длина страницы, размер полей заголовка и концовки, размер поля, в котором будут располагаться строки фрагментов, определяется фразой PAGE (РАЗМЕР СТРАНИЦЫ). Система управления генератором отчетов использует фразы LINE NUMBER (НОМЕР СТРОКИ) и NEXT GROUP (СЛЕДУЮЩАЯ ГРУППА) для размещения этих групп отчета, и, если необходимо, для перехода на нов\ю страницу с автоматическим воспроизведением групп отчета PAGE HEADING (ЗАГОЛОВОК СТРАНИЦЫ) и 'PAGE FOOTING (КОНЦОВКА СТРАНИЦЫ).

3.2.4.2. Логическое подразделение отчета

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

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

Во время выполнения оператора GENERATE (ГЕНЕРИРОВАТЬ) система управления генератором отчетов использует иерархию управления для автоматической проверки прерывания управления. Если имеет место прерывание управления, считается, что для всех младших управляющих данных в иерархии управления также имеет место прерывание управления, даже если в действительности их значения не изменились. Распознавание прерывания управления вызывает следующую последоватььность действий:

(1)    представляются все группы управляемой концовки от младшей до уровня, на котором произошло прерывание управления, включая его;

(2)    представляются все группы управляемого заголовка от

69

Страница 71

С. 70 ГОСТ 22556—8Э

уровня, соответствующего прерыванию управления, до самого младшего;

(3) представляется группа фрагмента отчета, имя которого указано в операторе GENERATE (ГЕНЕРИРОВАТЬ).

3.3. Операторы раздела процедур генератора отчетов

Операторы раздела процедур генератора отчетов следующие: INITIATE (НАЧАТЬ), GENERATE (ГЕНЕРИРОВАТЬ), TERMINATE (ЗАКОНЧИТЬ), SUPPRESS (ПОДАВИТЬ) и USE BEFORE REPORTING (ИСПОЛЬЗОВАТЬ ДО ВЫДАЧИ).

Оператор INITIATE (НАЧАТЬ) приводит к автоматическому выполнению ряда инициирующих действии системой управления генератором отчетов. Отчет должен быть инициирован прежде, чем можно будет выполнять для него детальную обработку.

Оператор GENERATE (ГЕНЕРИРОВАТЬ) с операндом имя-данного приводит к форматизации и записи на устройство вывода указанной группы отчета типа DETAIL (ФРАГМЕНТ). Кроме того, система управления генератором отчетов настраивается на выполнение ряда неявных действий, описанных в п. 3.2 настоящей •части.

Оператор GENERATE (ГЕНЕРИРОВАТЬ) с операндом имя-отчета обеспечивает средства генерации итогов. В отчете, производимом оператором данного типа, автоматически подавляется печать всех строк фрагментов и отчет состоит только нз суммарных итогов, накопленных во время обработки групп отчета типа DETAIL (ФРАГМЕНТ). Действия, производимые системой управления генератором отчетов по оператору GENERATE имя-отчета (ГЕНЕРИРОВАТЬ имя-отчета), аналогичны действиям, производимым по оператору GENERATE нмя-дапного (ГЕНЕРИРОВАТЬ нмя-данного), за исключением того, что в первом случае подавляется печать строк фрагмента.

Оператор TERMINATE (ЗАКОНЧИТЬ) вызывает выполнение системой управления генератором отчетов всех автоматических функций, связанных с завершением отчета. Оператор TERMINATE (ЗАКОНЧИТЬ) должен быть выполнен до закрытия файла, содержащего отчет.

Оператор SUPPRESS (ПОДАВИТЬ) обеспечивает средства подавления печати целой группы отчета во время выполнения программы.

Вариант BEFORE REPORTING (ДО ВЫДАЧИ) оператора USE (ИСПОЛЬЗОВАТЬ) обеспечивает механизм, при помощи которого в автоматических процедурах, выполняемых системой управления генератором отчетов, в отдельных случаях могут быть выполнены операторы раздела процедур. Операторы процедуры USE BEFORE REPORTING (ИСПОЛЬЗОВАТЬ ДО ВЫДАЧИ) могут изменять содержимое данных, имена которых указаны во

70

Страница 75

С. 74 ГОСТ 225»—М

ДЛЯ ОТЛАДКИ) и SEARCH (ИСКАТЬ), ссылка должка указывать, какое именно вхождение предполагается. Для доступа к одномерной таблице достаточно одного номера вхождения требуемого элемента. Для таблиц размерности больше единицы номер вхождения должен быть указан для каждой размерности таблицы. Таким образом, в примере 5 ссылка па четвертый DEPARTMENT (ЦЕХ) или четвертый FIO (ФИО) будет полной, в то время как ссылка на четвертый N-ROOM (N-КОМНАТЫ) полной не будет. Для ссылки на N-ROOM (N-КОМНАТЫ), который является элементом двумерной таблицы, пользователь должен указать, например, четвертый элемент N-ROOM (N-КОМНАТЫ) в пятом элементе DEPARTMENT (ЦЕХ).

4 4. Индексирование

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

Яндексом может быть либо целое, либо имя-даиного, относящееся к целому числовому элементарному данному, либо имя-индекса. связанное с таблицей. За нменем-данного или именем-ин-дскса может следовать знак операции + или — и целое, используемое соответственно как приращение или уменьшение. Допустимо одновременное использование целых, имен-данных и имен-индексов.

Индексы, заключенные в круглые скобки, записываются непосредственно за уточнением имени элемента таблицы. Количество индексов в такой ссылке должно равняться размерности таблицы, в которую входит данный элемент. Таким образом, каждой фразе OCCURS (ПОВТОРЯЕТСЯ) в иерархии, содержащей имя-дан-ного, включая и само имя данного, должен быть соотнесен индекс.

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

В ссылке на данное нельзя использовать индексирование, если данное не является табличным элементом или данным или име* нем-условия в табличном элементе.

Наименьший допустимый номер вхождения равняется единице. Наибольший допустимый номер вхождения в каждом отдельном случае равняется максимальному числу вхождений данного, определяемому фразой OCCURS (ПОВТОРЯЕТСЯ).

4.4.1. Индексирование с помощью целого или и м е н и-д а и и о г о

74

Страница 76

ГОСТ 22.ЫЯ-8') с. 75

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

4.4.2. Индексирование с помощью имени-индекса

Для облегчения операции поиска в таблице и манипулирования отдельными данными допускается индексирование с помощью имени индекса. Чтобы использовать это средство, программист соотносит одно или несколько имен-индексов данному, в статье описания которого имеется фраза OCCURS (ПОВТОРЯЕТСЯ). Значение имени индекса соответствует номеру вхождения для данного. с котоэым связано имя индекса.

Фраза INDEXED BY (ИНДЕКСИРУЕТСЯ), посредством кото-рой идентифицируется имя индекса и соотносится определенной таблице, является необязательной частью фразы OCCURS (ПОВТОРЯЕТСЯ). В Коболе нет отдельной статьи для описания имени-индекса. поскапьку его определение патностью зависит от оборудования. Во время выполнения значение имени-индекса будет соответствовать номеру вхождения для той конкретной размерности таблицы, с которой было связано имя-индекса: способ соответствия определяется реализацией. Начальное значение имени-индекса во время выполнения не определено, то есть начальное значение нужно установить перед использованием.

Начальное значение имени-индекса присваивается оператором PERFORM (ВЫПОЛНИТЬ) с фразой VARYING (.МЕНЯЯ), оператором SEARCH ALL (ИСКАТЬ ОСОБО) или оператором SET (УСТАНОВИТЬ).

Использование целого или именн-данного в качестве индекса для ссылки на табличный элемент или данное в табличном элементе не вызывает изменений значения имени-индекса, связанного с этой таблицей.

Имя-индекса может быть использовано для ссылки только на ту таблицу, которой оно соотнесено фразой INDEXED BY (ИНДЕКСИРУЕТСЯ).

Операции поиска данных, организованных в таблицы, обеспечиваются в Коболе оператором SEARCH (ИСКАТЬ), позволяющим осуществлять последовательный или непоследовательный (например, бинарный) поиск. Оператор используется для поиска в таблице элемента, удовлетворяющего определенному условию, и для установки значения соответствующего имени-индекса для указания этого табличного элемента.

75

Страница 77

С. 76 ГОСТ 22558-89

Относительное индексирование является дополнительным вариантом для ссылок на табличные элементы или на данное в табличном элементе. Когда за именем табличного элемента еле-дует индекс в виде (имя-индекса -+- или — целое), номер вхождение, требуемый для завершенной (полной) ссылки, такой же. как если бы перед ссылкой имя-индекса было увеличено или уменьшено на целое посредством оператора SET (УСТАНОВИТЬ). Использование относительного индексирования не изменяет значения имени-индекса.

Значение имени-индекса может быть сделано доступным объектной программе путем его запоминания в индексном данном. Индексные данные описываются в программе статьей описания данного, содержащей фразу USAGE IS INDEX (ДЛЯ ИНДЕКСА). Значение имени-индекса помешается в индексное данное выполнением оператора SET (УСТАНОВИТЬ).

4.4.3. Примеры индексирования

Предполагая следующее описание данных:

02 ANK...

02 А1 OCCURS 20 TIMES INDEXED BY A1 INDEX ...

03 Bl ...

03 B2 OCCURS 5 TIMES ...

04 Cl...

88 MAX VALUE IS ...

04 C2...

05 DI OCCURS 10 TIMES...

06 El ...

06 E2 ...

02 AHK ...

02 AI ПОВТОРЯЕТСЯ 20 РАЗ ИНДЕКСИРУЕТСЯ

AI-ИНДЕКС...

03 В1 ...

03 В2 ПОВТОРЯЕТСЯ 5 РАЗ ...

04 CI ...

88 МАХ ЗНАЧЕНИЕ...

04 С2 ...

05 DI ПОВТОРЯЕТСЯ 10 РАЗ ...

06 EI...

06 Е2...

в ссылках на А! и В! требуется только один индекс, в ссылках на В2, С1, МАХ и С2 требуются два индекса, и в ссылках на D1, Е1 и Е2 требуются трн индекса.

Проиллюстрируем требования указания индексов п порядке от старшего к младшим:

Е1 (18, 2, 7) значит EI в седьмом DI, во втором В2 и в восемнадцатом А1.

76

Страница 78

ГОСТ 22558-89 С. 77

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

El (AI-1NDEX, 4, ANK +5).

(EI(А1-ИНДЕК.С, 4, АНК+5)).

5. ОБЩАЯ ОБЛАСТЬ ПАМЯТИ

Это средство в основном ориентировано на экономию памяти в объектной программе, так как позволяет нескольким файлам иметь одну и ту же область файла и области ввода-вывода.

Если использована фраза SAME RECORD (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ), общей является только область записи, а области ввода-вывода для каждого файла остаются независимыми. В этом случае любое количество файлов, имеющих общей одну и ту же область записи, могут быть активными одновременно. Этот фактор может дать экономию времени при выполнении объектной программы.

Проиллюстрируем это. Если программист назначил одну и ту же область записи и старому, и новому файлам, он не только сэкономил память в объектной программе, но поскольку эта техника исключает пересылку каждой записи из области нвода в область вывода, получит в результате экономию и во времени. Кроме того, при использовании этой техники программисту нет необходимости определять в деталях запись и старого, и нового файлов. Вместо этого он полностью определяет запись в одном случае, и просто включает статью с номером уровня 01 в другом. Поскольку эти области записей фактически являются одной и той же областью, один набор имен достаточен для всех потребностей обработки без необходимости уточнения.

Если используется фраза SAME {ОБЩАЯ ОБЛАСТЬ) без варианта RECORD (ЗАПИСИ), общими являются не только области файла, ио и области ввода-вывода.

В результате только один из файлов, разделяющих один и тот же набор общих областей, может быть активным в определенное время. Эта форма фразы предназначена для применения, когда ряд файлов исиользуется на разных фазах объектной программы. В этих случаях фраза SAME (ОБЩАЯ ОБЛАСТЬ) позволяет программисту экономить память.

6. ОРГАНИЗАЦИЯ ПРОГРАММ И ПРОГРАММНЫХ СВЯЗЕЙ

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

77

Страница 79

С. 78 ГОСТ 225S8-89

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

6,1. Понятие программы и единицы исполнения

Имеются два уровня компьютерных программ в Коболе: исходный уровень и объектный уровень.

На исходном уровне наиболее объемлющей единицей компьютерной программы является исходная программа. Исходная программа можег содержать другие исходные программы. Исходная программа — синтаксически правильный набор операторов Кобола, по определению настоящего документа состоящий из раздела идентификации, за которым необязательно следуют раздел оборудования и (или) раздел данных, и (или) раздел процедур. Исходная программа, не содержащаяся в другой исходной программе, может быть преобразована компилятором в объектную программу. которая можег быть выполнена либо одна, либо вместе с другими объектными программами.

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

Раздел процедур исходной программы организован как последовательность процедур двух типов. Декларативные процедуры, обычно именуемые декларативами, — это процедуры, которые будут выполняться только при появлении специальных условий во время выполнения программы. Недекларативные процедуры процедуры, выполняемые соответственно нормальному ходу управления в программе. Декларативы могут содержать недекларативные процедуры, но последние будут выполняться только во время выполнения декларатив, в которых они содержатся. Нелекла-ративные процедуры могут содержать другие недекларативные процедуры, но не должны содержать декларативы. Ни декларативы, ни недекларативные процедуры не могут содержать в себе программы. Другими словами, в Коболе термины «процедура» и «программа» не являются синонимами.

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

78

Страница 80

ГОСТ 22558-89 С. 79

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

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

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

6.2. Доступные данные и файлы

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

6.2.1. Имена

Имя-данного именует данное, Имя-файла именует определитель файла. Эти имена классифицируются как глобальные или локальные.

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

Локальное имя можно использовать для ссылки на объект, которому оно соотнесено, только из программы, в которой локальное имя объявлено. Некоторые имена всегда глобальны, некоторые — всегда локальны, а некоторые являются либо локальными, либо глобальными в зависимости от спецификаций программы, в которой имена объявлены.

Имя-записи глобально, если указана фраза GLOBAL (ГЛОБАЛЬНОЕ) в статье описания записи, объявляющей это имя, или в случае статьи описания записи в секции файлов, если фраза GLOBAL (ГЛОБАЛЬНОЕ) указана в описании файла для имени-файла. связанного с описанием записи. Имя-данного глобально, если фраза GLOBAL (ГЛОБАЛЬНОЕ) указана либо в статье описания данного, объявляющей это имя-данного, либо в другой статье, которой подчинена упомянутая статья описания данного. Имя-условия, объявленное в статье описания данного, глобально, если эта статья подчинена другой статье, в которой указана фраза

79

Страница 81

С 80 ГОСТ 22558-89

GLOBAL (ГЛОБАЛЬНОЕ). Однако иногда особые правила запрещают указание фразы GLOBAL (ГЛОБАЛЬНОЕ) для определенных статей описания данных, описания файла или описания записи.

Имя-файла глобально, если фраза GLOBAL (ГЛОБАЛЬНОЕ) указана в соответствующей ему статье описании файла.

Если имя-данного, имя-файла или имя-условия, объявленное в описании данного, не глобально, имя является локальным.

Глобальные имена транэитнвны в программах, содержащихся в других программах.

6.2.2. Объекты

Для обеспечения доступности данных обычно требуется сохранение в памяти определенных представлений данных. Определители файлов также требуют сохранения в памяти определенной информации, относящейся к файлу. Память, соотнесенная данному или определителю файла, может быть внешней или внутренней по отношению к программе, в которой объект объявлен.

6.2.2.1.    Типы объектов

6.2.2.1.1.    Записи рабочей памяти.

Записи рабочей памяти — это участки памяти, удовлетворяющие статьям описания записей в секции рабочей памяти.

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

6.2.2.1.2.    Определители файлов

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

6.2.2.1.3.    Области записи для файлов

Считается, что никакая отдельная статья описания записи в секции файлов не объявляет область памяти для записи. Область памяти — это скорее максимально требуемая память для удовлетворения соответствующих статей описания записей. Статьи могут описывать записи фиксированной или переменной длины. В этом представлении статьи описания записи считаются соотпетствую-щими в двух случаях. Во-первых, когда описания записи подчинены одной и той же статье описания файла, они всегда соответствующие. Во-вторых, когда описания записи подчинены различным статьям описания файлов и на эти статьи описания файлов имеется ссылка в« фразе SAME RECORD (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ), описания записей соответствующие.

Все соответствующие статьи описания записи являются переопределениями одной и той же области памяти.

80

Страница 82

ГОСТ 22558-89 С «1

6.2.2.1.4. Другие объекты

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

6.2.2.2. Свойства объектов

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

Объект является внутренним, если память, связанная с этим объектом, связана только с программой, описывающей этот объект.

Внешние н внутренние объекты могут иметь либо глобальные, либо локальные имена.

6.2.2.2.1.    Записи рабочей памяти

Записи данных, описанной в секции рабочей памяти, присваивается свойство внешней посредством фразы EXTERNAL {ВНЕШНЕЕ) в статье описания записи. Каждое данное, описанное статьей описания данного, подчиненной статье, описывающей внешнюю запись, также получает свойство внешнего.

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

6.2.2.2.2.    Определители файла

Определителю файла придается свойство внешнего посредством фразы EXTERNAL (ВНЕШНЕЕ) в соответствующей статье описания файла. Если определитель файла не обладает свойством внешнего, он является внутренним для программы, в которой описано соответствующее имя-файла.

6.2.2.2.3.    Области записи для файлов

Записи данных, описанные как подчиненные статье описания файла, не содержащей фразу EXTERNAL (ВНЕШНЕЕ), или статье описания сортируемого-сливаемого файла, так же как и любые данные, описанные как подчиненные статьям описания данных для таких записей, всегда внутренние для программы, описывающей имя-файла. Если фраза EXTERNAL (ВНЕШНЕЕ) включена в статью описания файла, записи данных и данные получают свойство ннешннх.

6.2.2.2.4.    Другие объекты

Записи данных, подчиненные данные и разнообразная соответствующая управляющая информация, описанная в секциях свя-

•I

Страница 83

С. Ы ГОСТ 22558-89

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

6.2.3.    Разрешение имени

Если программы, содержащиеся в других программах, присваивают одни и те же имена данным, условиям и определителям файла, применяются определенные соглашения. Рассмотрим ситуацию, когда программа А содержит программу В1, которая в свою очередь содержит программу С!; кроме того, программы А и BI (но не CI) содержат статьи раздела данных для имени условия, имени данного или имени файла с одинаковым именем DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ):

<1) если каждое из имен DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ) относится к внутреннему объекту, существуют два разных, дотя и с идентичными именами, объекта; если оба имени относятся к внешнему объекту, существует один объект;

(2)    ссылки программы А на DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ) — всегда ссылки на объект, объявляемый ею. Ссылки программы В1 на DUPLICATE -NAME (ИМЯ-ДУБЛИКАТ) -всегда ссылки на объект, объявляемый программой ВI;

(3)    если DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ) - локаль-ное имя в обеих программах А и ВI. программа С1 не может ссылаться на это имя:

(4)    если DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ) в програм-ме В1 - глобальное имя, объект, именованный нм. доступен программе С1 посредством ссылки на имя в программе BI. независимо от того, является ли DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ) глобальным именем в программе А;

(5)    если DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ» в программе А глобальное имя, а в программе В1 — локальное, ссылка программы CI на DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ) является ссылкой на объект с именем, объявленным в программе А.

6.3.    Классы программ

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

6.3.1.Общие программы

Общая программа — это программа, которая, несмотря на iu, что непосредственно содержится в другой объемлющей программе. может быть вызвана любой программой, прямо или косвенно содержащейся в этой объемлющей программе. Свойство «общая» присваивается указанием фразы COMMON (ОБЩАЯ) в разделе

82

Страница 84

ГОСТ 22658-89 С- S3

идентификации программы. Фраза COMMON (ОБЩАЯ) облегчает написание подпрограмм, которые предназначены для использования всеми программами, содержащимися в программе.

6.3.2. Начальные программы

Начальная программа — это программа, состояние которой инициируется при вызове программы. Таким образом, когда бы начальная программа ни вызывалась, ее состояние всегда такое же, каким оно было, когда программа была вызвана первый раз в этой единице исполнения, Во время инициации начальной программы инициируются все внутренние данные этой программы; следовательно, каждому из внутренних данных программы, имеющему в своем описании фразу VALUE (ЗНАЧЕНИЕ), присваивается указанное для него значение, для данных, в статье описания которых нет фразы VALUE (ЗНАЧЕНИЕ), устанавливаются неопределенные значения. Файлы с внутренними определителями файла, связанные с программой, не находятся в режиме открытия Механизмы управления для всех содержащихся в программе операторов PERFORM (ВЫПОЛНИТЬ) устанавливаются в начальные состояния. Свойство «начальная» устанавливается указанием фразы INITIAL (НАЧАЛЬНАЯ) в разделе идентификации программы.

6 4. Межпрограммные связи

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

6.4 I. П с р е д а ч а управления

Оператор CALL (ВЫЗВАТЬ) обеспечивает возможность передачи управления or одной программы другой программе в единице исполнения. Вызываемая программа в свою очередь может содержать операторы CALI. (ВЫЗВАТЬ). Когда управление передается вызываемой программе, выполнение продолжается от оператора к оператору, начиная с первого недекларатнвного оператора. Если управление достигает оператора STOP RUN (ОСТАНОВИТЬ РАБОТУ), это означает логический конец единицы исполнения. Если управление достигает оператора EXIT PROGRAM

83

Страница 85

с. Я ГОСТ 2-2558 -89

(ВЫЙТИ ИЗ ПРОГРАММЫ), это означает логический конец только вызываемой программы, затем управление возвращается следующему в вызывающей программе после оператора CALL (ВЫЗВАТЬ) выполнимому оператору. Таким образом, оператор EXIT PROGRAM (ВЫИТИ ИЗ ПРОГРАММЫ) завершает выполнение только той программы, в которой он имеется, в то время как оператор STOP RUN (ОСТАНОВИТЬ РАБОТУ) завершает выполнение единицы исполнения.

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

6.4.1.1.    Имена программ

Чтобы вызвать программу, оператор CALL (ВЫЗВАТЬ) идентифицирует имя программы. Имена, присваиваемые программам, непосредственно или косвенно содержащимся в других программах, должны быть однозначными (уникальными).

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

6.4.1.2.    Область действия оператора CALL (ВЫЗВАТЬ)

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

(1) любая вызывающая программа может вызвать любую отдельно компилируемую программу в единице исполнения;

12) вызывающая программа может вызвать любую программу, непосредственно содержащуюся в вызывающей программе;

(3)    любая вызывающая программа может вызвать любую программу, обладающую свойством «общая» и содержащуюся непосредственно в программе, которая косвенно или непосредственно содержит вызывающую программу, если только вызывающая программа сама не содержится в программе, обладающей свойством «общая»;

(4)    вызывающая программа может вызвать программу, не обладающую свойством «общая» и не компилируемую отдельно, тогда и только тогда, когда эта программа непосредственно содержится в вызывающей программе.

Страница 86

ГОСТ 22558-89 С. 85

6.4.1.3. Область действия имен программ

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

Рассмотрим случай, когда программа А содержит программу BI и программу DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ), программа BI содержит программу ВВ и программа DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ) содержит программу DD.

Имя DUPLICATE-NAME (ИМЯ ДУБЛИКАТ) также указано для отдельно компилируемой программы.

(1)    Если программа А, но ни одна из программ, содержащихся в ней, вызывает программу DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ), активируется программа, содержащаяся в программе А.

(2)    Если программу DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ) вызывает программа В1 или ВВ, то:

а)    если программа DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ), содержащаяся в программе А, обладает свойством «общая», то вызывается она;

б)    если программа DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ), содержащаяся в программе А, не обладает свойством «общая», вызывается отдельно компилируемая программа.

(3)    Если программа DD или программа DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ), содержащаяся в программе А, вызывает программу DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ), вызываемой программой является отдельно компилируемая программа.

(4)    Если любая отдельно компилируемая программа в единице исполнения или любая другая программа, содержащаяся в такой программе, вызывает программу DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ), вызываемой программой является отдельно компилируемая программа, именуемая DUPLICATE-NAME (ИМЯ-ДУБЛИКАТ).

6.4.2. II е р е д а ч а параметров программам

Программа вызывает другую программу, чтобы вызванная программа выполнила от имени вызывающей программы некоторую часть решения проблемы обработки данных. В большинстве случаев необходимо, чтобы вызывающая программа определила вызываемой программе точную часть решения проблемы, задавая определенные значения данных, требующихся вызываемой программе и доступных ей. Одним из методов обеспечения доступности значении данных является передача параметров программе, описываемая в данном пункте. Другой метод — использование общих данных (п. 6.4.3 настоящей части). Значения данных, передаваемых в качестве параметров, также идентифицируют некото-

SS

Страница 87

С. 8ё ГОСТ 22558 «9

рые данные для совместного использования; следовательно, два метода не являются взаимно независимыми.

6.4.2.1.    Идентификация параметров

Данные, передаваемые вызывающей программой в качестве параметров другой программе, должны быть доступны для вызывающей программы, и данные, получающие передаваемые данные, должны быть объявлены в разделе данных вызываемой программы. В вызываемой программе требуемые параметры идентифицируются списком ссылок на параметры заголовка раздела процедур этой программы с помощью имен, присвоенных параметрам в статьях описания данных этой программы. В вызывающей программе значения параметров, передаваемых вызываемой программе, идентифицируются списком ссылок в операторе CALL (ВЫЗВАТЬ), используемом для вызова этой программы. Для этих списков во время выполнения устанавливается позиционное соответствие между значениями их элементов, как они известны каждой программе, то есть, первому параметру в одном списке соответствует первый параметр в другом списке, второму — второй и т. д. Так, например, программа, которую может вызвать другая программа, может включать строки:

PROGRAM-ID. EXAMPLE.

PROCEDURE DIVISION USING NUM. PCODE, COST.

ПРОГРАММА. ПРИМЕР.

РАЗДЕЛ ПРОЦЕДУР ИСПОЛЬЗУЯ НОМ, РКОД, СТОИМ.

и может быть вызвана выполнением оператора

CALL “EXAMPLE'* USING NBR. PTYPE, PRICE.

ВЫЗВАТЬ “ПРИМЕР" ИСПОЛЬЗУЯ ЧИС, РТИП, ЦЕНА.

При этом устанавливается следующее соответствие:

Вызываемая поогрэмма    Вызывающая программа

NUM (НОМ)    NBR (ЧИС)

PCODE (РКОД)    PTYPE (РТИП)

COST (СТОИМ)    PRICE (ЦЕНА)

Существенны только позиции нмен-данных, но не сами имена.

6.4.2.2.    Значения параметров

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

Отдельные параметры, на которые имеются ссылки в фразе USING (ИСПОЛЬЗУЯ) оператора CALL (ВЫЗВАТЬ), можно передавать как значение или ссылку.

Вызываемая программа может использовать и изменять значение данного, упомянутого в операторе CALL (ВЫЗВАТЬ) вызывающей программы в качестве параметра, передаваемого как

Страница 88

ГОСТ 22558-89 С. 87

•ссылка. Вызываемой программе запрещено обращаться и изменять данное вызывающей программы, если оно указано в операторе CALL (ВЫЗВАТЬ) в качестве параметра, передаваемого как значение. Значение параметра вычисляется при выполнении оператора CALL (ВЫЗВАТЬ) и предоставляется вызываемой программе. Это значение может быть изменено вызываемой программой во время ее выполнения, но значение соответствующего данного в вызывающей программе не изменяется. Таким образом, параметр, передаваемый как ссылка, может использоваться вызываемой программой для возврата значения вызывающей программе. в то время как параметр, передаваемый как значение, не может быть так использован.

Параметры, ссылки на которые указаны в заголовке раздела процедур вызываемой программы, должны быть описаны в секции связи раздела данных этой программы.

6.4.3.    Общие данные

Две программы в единице исполнения могут ссылаться на общие данные в следующих случаях:

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

(2)    если программа содержится в другой программе, обе программы могут ссылаться на данные, обладающие свойством «глобальное» либо в содержащей программе, либо в любой программе, которая непосредственно или косвенно содержит содержащую программу (см. п. 6.2.1 настоящей части);

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

6.4.4.    Общие файлы

Две программы в единице исполнения могут ссылаться на общие определители файла при следующих обстоятельствах:

(1)    на внешний определитель файла можно ссылаться из любой программы, описывающей этот определитель файла (см. п. 6.2.2 настоящей части);

(2)    если программа содержится в другой программе, обе программы могут ссылаться на общий определитель файла, используя соответствующее глобальное имя-файла либо в содержащей программе, либо в любой программе, которая непосредственно пли косвенно содержит содержащую программу (см. п. 6.2.1 настоящей части).

6.5. Внутрипрограммные связи

Процедуры, составляющие раздел процедур программы, со-

87

Страница 89

С. И ГОСТ 22558-89

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

6.5.1.    П е р с д а ч а управления

Имеются четыре способа передачи управления в программах:

(1)    Оператор GO ТО (ПЕРЕЙТИ К).

(2)    Оператор PERFORM (ВЫПОЛНИТЬ).

(3)    Процедура ввода, связанная с оператором SORT (СОРТИРОВАТЬ), или процедура вывода, связанная с оператором SORT (СОРТИРОВАТЬ) или MERGE (СЛИТЬ).

(4)    Декларативная процедура, которая активируется при возникновении определенных условий, включая условия ошибки.

Процедуру ввода-вывода можно рассматривать как неявный оператор PERFORM (ВЫПОЛНИТЬ), который выполняется совместно с оператором MERGE (СЛИТЬ) или SORT (СОРТИРОВАТЬ); по этой причине ограничения на оператор PERFORM (ВЫПОЛНИТЬ) относятся в равной степени к процедурам ввода-вывода

К декларативным процедурам применяются более строгие ограничения, чем ограничения для оператора PERFORM (ВЫПОЛНИТЬ).

6.5.2.    Общие данные

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

6.6. Сегментация

Средства сегментации дают возможность пользователю физически подразделять на более мелкие части раздел процедур объектной Кобол-программы. Все исходные параграфы, которые содержат одинаковые номера сегментов в заголовках их секций, будут рассматриваться во время выполнения как единый сегмент. Так как номера сегментов могут принимать значения от 00 до 99, то объектная программа может быть разделена максимум на 100 сегментов.

Сегменты программы могут быть трех типов: фиксированные постоянные (неперекрываемые), фиксированные перекрываемые и независимые. Тип задается номерами сегментов.

Фиксированные неперекрываемые сегменты находятся всегда в памяти во время выполнения всей программы; они не могут перекрываться в памяти, за исключением того случая, когда система выполняет другую программу; в таком случае фиксированные сегменты могут быть временно «свернуты».

Фиксированные перекрываемые сегменты могут перекрываться в памяти во время выполнения программы, но такое перекры-

S3

Страница 90

ГОСТ 22358-89 С 89

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

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

7. СРЕДСТВА КОММУНИКАЦИИ

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

7.1. Система управления сообщениями

Реализация средств коммуникации в программах на Коболе требует наличия системы управления сообщениями в операционной среде объектной Кобол-программы.

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

(1)    осуществляет связь между объектной Кобол-программой и сетью коммуникационных устройств, подобно тому как операционная система осуществляет связь между объектной программой Кобола и такими устройствами, как устройства ввода перфокарт, устройства печати, магнитные ленты и устройства массовой па* мята;

(2)    поддерживает порядок на линии, выполняя вызов адресата, упорядочение передач сообщений по каналам связи и синхронизацию;

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

Первая функция — связь между объектной программой Кобола и коммуникационными устройствами — наиболее очевидна для пользователя. О наличии двух других функций пользователь может и не знать. Сообщения от коммуникационных устройств помещаются системой управления сообщениями во входные очереди в ожидании передачи объектной Кобол-программе. Выходные сообщения объектной Кобол-программы помещаются системой управления сообщениями в выходные очереди в ожидании передачи на коммуникационные устройства. Структура, форматы и символические имена очередей определяются для системы управления

89

Страница 91

С- 90 ГОСТ 22538- 89

сообщениями пользователем до выполнения объектной программы. До выполнения программы определяются также символические имена источников сообщений и адресатов. В программе на Коболе могут использоваться только символические имена, известные системе управления сообщениями.

Во время выполнения объектной программы система управления сообщениями выполняет все необходимые действия по обновлению различных очередей.

7.2. Объектная программа Кобола

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

7.3 Связь программы на Коболе с системой управления сообщениями и коммуникационными устройствами

Взаимосвязь с коммуникационными устройствами устанавливается в Коболе посредством статьи описания коммуникации CD (OK) в секции коммуникаций раздела данных.

Различают два вида связи:

(1)    между объектной программой и системой управления сообщениям»;

(2)    между системой управления сообщениями и коммуникационными устройствами.

Для управления связью с системой управления сообщениями н исходной программе на Коболе используют три оператора:

(1)    RECEIVE (ПОЛУЧИТЬ), который вызывает передачу объектной программе данных из очереди:

(2)    SEN'D (ПОСЛАТЬ), который вызывает передачу данных из объектной программы в одну или более очередей;

(3)    ACCEPT MESSAGE COUNT (ПРИНЯТЬ ЧИСЛО СООБЩЕНИИ), который указывает системе управления сообщениями, что она должна сообщить объектной программе число полных сообщений в данной структуре очереди.

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

(I) ENABLE (РАЗРЕШИТЬ), который устанавливает логическую связь между системой управления сообщениями и одним или несколькими заданными коммуникационными устройствами;

9)

Страница 92

ГОСТ 2255Д—89 С 9!

(2) DISABLE (ЗАПРЕТИТЬ), который разрывает логическую связь между системой управления сообщениями и одним или несколькими заданными коммуникационными устройствами.

На рис. 1 показана взаимосвязь программы на Коболе с коммуникационными устройствами (п. 7.5.2 настоящей части).

«rmwurmftr

J yOJCSUf.-uv COJtfujlvuft^u | ИМяутгеОЩ», иГОМЫДОи* JS/PMil

-

fWHwir»'

it'll-( л


=□

=□

=o

e/nirc -

A

(C«h Minty кдемо* v rwr<w •*л> jnWMWK* сотАитим»


C$r:u nrtwwtfu fveto*•«* «м&деш*

м/ «■ k^vvvvaOuupi-•*K"u


(тммн


Г-c. J

7.3.1. Вызов объектной программы Кобола Существуют два метода вызова объектной программы Кобола, использующей средства коммуникаций: запланированный запуск и вызов системой управления сообщениями.

Разница между этими методами заключается только в том, как производится заполнение некоторых областей в указанной статье CD (OK).

91

Страница 93

С. 92 ГОСТ 225М-89

7.3.1.1.    Запланированный запуск объектной программы Кобола

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

(1) оператор ACCEPT MESSAGE COUNT (ПРИНЯТЬ ЧИСЛО СООБЩЕНИЙ);

(2)    оператор ACCEPT (ПРИНЯТЬ) с вариантом NO DATA (НЕТ ДАННЫХ);

(3)    оператор ACCEPT (ПРИНЯТЬ) без варианта NO DATA (НЕТ ДАННЫХ). В этом случае подразумевается, что программа переходит в состояние ожидания, если нет доступных данных.

7.3.1.2.    Вызов объектной программы Кобола системой управления сообщениями

Иногда желательно вызвать для выполнения объектную программу, использующую средства коммуникаций, только тогда, когда для нее имеется требуемая информация. Такой вызов осуществляется системой управления сообщениями, когда она определяет, что требуется объектная программа для обработки имеющегося сообщения. Каждая объектная программа, вызываемая системой управления сообщениями, создает единицу исполнения. До начала выполнения объектной программы система управления сообщениями помещает имена символических очередей и подоче-редей в области данных, определенные статьей описания коммуникаций с фразой FOR INITIAL INPUT (ДЛЯ НАЧАЛЬНОГО ВВОДА), или система управления сообщениями помешаег символическое имя терминала в область данных, определенную статьей описания коммуникации с фразой FOR INITIAL 1-0 (ДЛЯ НАЧАЛЬНОГО ВВОДА-ВЫВОДА).

В результате выполнения последующего оператора RECEIVE (ПОЛУЧИТЬ), связанного с данной статьей описания коммуникации, имеющееся сообщение будет передаваться объектной программе.

7.3.1.3.    Определение метода вызова

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

(1) исходная программа должна содержать одну статью описания коммуникации, содержащую фразу FOR INITIAL INPUT (ДЛЯ НАЧАЛЬНОГО ВВОДА) или FOR INITIAL 1-0 (ДЛЯ НАЧАЛЬНОГО ВВОДА ВЫВОДА);

92

Страница 94

ГОСТ 22558--89 С. 93

(2)    если программа содержит статью описания коммуникации с фразой FOR INITIAL INPUT (ДЛЯ НАЧАЛЬНОГО ВВОДА), в разделе процедур могут содержаться операторы для проверки начального значения имени символической очереди в этой статье описания коммуникации. Если оно заполнено пробелами, использованы операторы управления заданием для вызова объектной программы. Если не заполнено пробелами, объектную программу вызвала система управления сообщениями и инициировала данное с символическим именем очереди, содержащей сообщение для обработки;

(3)    когда программа содержит статью описания коммуникации с фразой FOR INITIAL I О (ДЛЯ НАЧАЛЬНОГО ВВОДА-ВЫВОДА), в разделе процедур могут содержаться операторы для проверки начального значения символического имени терминала в данной статье CD (OK). Если оно заполнено пробелами, ис-лользованы операторы управления заданием для вызова объектной программы. Если око не заполнено пробелами, система управления сообщениями вызвала объектную программу и инициировала данное с символическим именем коммуникационного терминала. который является источником сообщения, подлежащего обработке.

7.4. Понятие сообщений и сегментов сообщения

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

Сообщения могут логически делиться на меньшие единицы данных, называемые сегментами сообщений. Внутри сообщения сегменты разграничиваются посредством индикаторов конца сегмента ESI (ИКС). Сообщение, состоящее из одного или более сегментов, отделяется от следующего сообщения посредством индикатора конца сообщения EMI (ИК1Ц). Аналогично, группа из нескольких сообщений может быть логически отделена от следующих сообщений посредством индикатора конца группы EGI (ИКГ). Когда программа на Коболе получает сообщение или его сегмент, область описания коммуникации обновляется системой управления сообщениями так, что она указывает, какой индикатор, если он имеется, связан с текстом, переданным при выполнении оператора RECEIVE (ПОЛУЧИТЬ). При выводе индикатор, связанный с текстом, передаваемым системе управления сообщениями через оператор SEND (ПОСЛАТЬ), определяется в операторе SEND (ПОСЛАТЬ). Таким образом, существование логических индикаторов распознается и задается как системой управления сообщениями, так и объектной программой Кобола. Од-

93

Страница 95

С 94 ГОСТ 22558-89

нахо индикаторы не включаются в тексты сообщений, обрабатываемые программами Кобола.

Между индикаторами EGI, EMI, ESI (ИКГ, ИКЩ и ИКС)

существует отношение предшествования. EGI (ИКГ) является наиболее объемлющим индикатором, a ESI (ИКС) — наименее объемлющим. Наличие некоторого индикатора, связанного с текстом сообщения, предполагает существование всех менее объемлющих индикаторов, связанных с этим текстом. Например, наличие индикатора EGI (ИКГ) предполагает наличие EMI (ИКЩ) и ESI (ИКС).

7.5. Понятие очередей

Следующие рассуждения применимы только в том случае, когда коммуникационное оборудование устанавливается посредством описания коммуникации без фразы FOR 1-0 (ДЛЯ ВВОДА-ВЫВОДА).

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

Система управления сообщениями логически помещает в очереди или извлекает из них только полные сообщения. Части сообщений логически не помещаются в очередь, пока системе не будет доступно полное сообщение, то есть система управления сообщениями не передает сегмент сообщения объектной программе, пока все сегменты сообщения не будут во входной очереди, даже если используется оператор RECEIVE (ПОЛУЧИТЬ) с вариантом SEGMENT (СЕГМЕНТ). Для выходных сообщений система не посылает ни одного сегмента сообщения, пока все сегменты не будут в выходной очереди. Запрос о глубине очереди или числе сообщений данной очереди отражает только число полных сообщений, существующих в ней.

Пооцесс помещения сообщений в очередь называется постановкой в очередь, а процесс получения из очереди — извлечением из очереди.

7.5.1. Независимые постановка в очередь и извлечение из очереди

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

94

Страница 96

ГОСТ 2255$—89 С. 95

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

а)    когда запретен обмен данными между заданной выходной очередью и ее адресатом;

б)    когда объектная программа создает выходные очереди быстрее, чем адресат может их принять.

7.5.2.    Разрешение и запрещение очередей

Обычно система управления сообщениями разрешает или запрещает очереди, основываясь на времени дня, активности сообщений или других факторах, не связанных с программой Кобола. Однако программа Кобола может выполнить эти функции сама с помощью операторов ENABLE (РАЗРЕШИТЬ) и DISABLE (ЗАПРЕТИТЬ).

7.5.3.    Методы постановки в очередь п извлечения из очереди

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

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

7.5.4.    Иерархия очередей

Для более гибкого управления сообщениями, помещаемыми в очередь и извлекаемыми из очереди, можно определить в системе управления сообщениями иерархию входных очередей, то есть очереди, состоящие из очереден. Пользователю Кобола доступны 4 уровня очередей. В порядке уменьшения значимости уровни очередей названы так: очередь, подочередь-1, подочередь-2 и подоче-редь-3. Иерархия очередей показана на рис. 2.

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

а) сообщение помещается в очередь в соответствии со значением некоторого данного в каждом сообщении;

95

Страница 97

С. 96 ГОСТ 22558 -89

А, Б.....П — очереди в подочереда: Cl, .... Р1.    Т1.    ...    —

сеоСщсияй.->^01ягче»ише » соответствии с их источником н порндкоаим номером

Рж. 2

б) если на некотором уровне подочередь не задана, то при вы* полнении оператора RECEIVE (ПОЛУЧИТЬ) система управления сообщениями выберет подочередь этого уровня в алфавитном порядке. Например, если пользователем не задана подочередь-1, система управления сообщениями выберет сообщение из подоче-реди-1, обозначенной буквой Б.

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

Пример 1

В статье описания коммуникации задана очередь А. При выполнении оператора RECEIVE (ПОЛУЧИТЬ) для данного нме-ни-коммуникацин система управления сообщениями передаст программе сообщение TI.

Пример 2

В статье описания коммуникации заданы очередь Л и подочередь-1 В. При выполнении оператора RECEIVE (ПОЛУЧИТЬ) для данного имени-коммуникации система управления сообщениями передает программе сообщение С7.

Пример 3

В статье описания коммуникации заданы: очередь А, подочередь 1 Б, подочсредь-2 Д. При выполнении оператора RECEIVE (ПОЛУЧИТЬ) для данного имени-коммуникации система управления сообщениями передает программе сообщение Р1.

96

Страница 98

ГОСТ 22558-89 С. 97

Пример 4

В статье описания коммуникации заданы: очередь А, подоче-рель-1 В, подочередь-2 Ж и подочередь-3 О. При выполнении оператора RECEIVE (ПОЛУЧИТЬ) для данного имени-коммуникации система управления сообщениями передает программе сообщение Рб.

Если требуется получить следующее сообщение очереди, независимо от того, в какой подочереди оно находится, в статье описа-•ия коммуникации необходимо указать только имя очереди. При передаче сообщения система управления сообщениями сообщит объектной программе Кобола имя соответствующей подочереди через данное в статье описания коммуникации. Если требуется получить следующее сообщение в дайной подочереди, в статье описании коммуникации необходимо указать имя очереди и имена подочередей.

Для вывода пользователь Кобола указывает только адресат .ообщенни, а система управления сообщениями помещает сообщение в подходящую выходную очередь.

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

7.6. Понятие коммуникации транзакций

В противоположность вышеизложенному механизму очередей, некоторые применения требуют прямого диалога между коммуин-каинонным устройством и объектной программой. В этом случае нет необходимости создания очередей сообщений, поскольку сообщения обрабатываются безотлагательно. В Коболе возможно определить такого рода обработку использованием в статье CD (OK) фразы FOR 1-0 (ДЛЯ ВВОДЛ-ВЫВОДЛ). Описание коммуникации. содержащее фразу FOR 1-0 (ДЛЯ ВВОДА-ВЫВОДА), может поддерживать связь только с одним терминалом: тем не менее единица исполнения может содержать более одного описания коммуникации с фразой FOR 1-0 (ДЛЯ ВВОДА-ВЫВОДА) и эти описания коммуникаций могут поддерживать связь с одним и тем же терминалом или с различными терминалами. Если указана фраза FOR INITIAL 1-0 (ДЛЯ НАЧАЛЬНОГО ВВОДА-ВЫВОДА), программа должна быть вызвана системой управления сообщениями.

4 Зак. 254

97

Страница 99

С. 9В ГОСТ 22558—S3

Часть 3. ГЛОССАРИИ I. ВВЕДЕНИЕ

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

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

2. ОПРЕДЕЛЕНИЯ

Адресат— символическое обозначение получателя передач из очереди.

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

Арифметический оператор — оператор, вызывающий выполнение арифметической операции. Арифметическими операторами являются ADD (СЛОЖИТЬ). COMPUTE (ВЫЧИСЛИТЬ). DIVIDE (РАЗДЕЛИТЬ). .MULTIPLY (УМНОЖИТЬ) и SUBTRACT (ОТНЯТЬ).

Арифметическое выражение — идентификатор элементарного числового данного, числовой литерал или идентификаторы и литералы. разделенные знаками арифметических операций, или два арифметических выражения, разделенные знаком арифметической операции, или арифметическое выражение, заключенное в скобки.

Библиотечный текст — последовательность слов текста, строк комментария разделителя пробел или разделителя ограничитель псевдотекста в библиотеке Кобола.

Блок - физическая порция данных, которая обычно состоит и» одной или нескольких логических записей. Для файлов массовой памяти блок может содержать часть логической записи. Размер блока не зависит ни от размера файла, внутри которого он содержится. ни от размера логической записи (записей), которая либо содержится в блоке, либо перекрывает блок (ч. 4. п. 4.3.1.2). Термин является синонимом термина физическая запись.

Буква — в русской нотации литера, принадлежащая одному и? следующих двух множеств:

1) прописные буквы: Б. Г. Д. Ж. 3. И. И. Л, П. У, Ф. Ц. Ч, Ш, Щ, Ы, Ь. Э. Ю. Я. А. В. С, D, Е, F, G, Н,

Страница 100

ГОСТ    2255Я-89    С 99

1Г    J, К. L,    М.    N.    О, Р,    Q, R, S.    Т, и.    V, W,    X. Y.

7.\

2) строчные буквы: б. в. г. д. ж. з. и. й. к. л. м, н. гт, т, ф, ц, ч, ш, ш, ы, ь, э, ю, я, а, Ь, с, d, е, i, g. h, i, j, k. I, tn, n, o, p, q, Г, S, t, U, V. W, X. y. z.

В английской нотации литеры русского алфавита не являются буквами.

Буквенная литера — буква или пробел.

Буквенно-цифровая литера — любая литера из набора литер машины.

Валютный    знак    —    литера    Sfc)    нз набора литер    Кобо

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

Коболе.

Валютный символ литера, определенная фразой CURRENCY SIGN' (ВАЛЮТНЫЙ ЗНАК) в параграфе SPECIAbNAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) для представления символа валютной единицы. Если в исходной Кобол-программе нет фразы CURRENCY SIGN (ВАЛЮТНЫЙ ЗНАК), валютный символ идентичен валютному знаку.

Вариант — упорядоченный набор из одной или более строк литер Кобола, образующий часть оператора    Кобола    или часть фра

зы Кобола

Верхнее поле — пустое поле, предшествующее телу страницы.

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

Внешние данные — данные, описанные в программе как внешние данные, и внешние определители файлов.

Внешний определитель файла — определитель файла, доступный одной или нескольким объектным программам единнаы исполнения.

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

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

Внутреннее данное — данное, описанное только в одной программе единицы исполнения. Внутреннее данное может иметь глобальное имя.

Страница 101

С. 100 ГОСТ 22558- 89

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

Внутренний набор литер — определенный реализацией набор литер, допустимых для машины, указанной в параграфе OBJECT-COMPUTER «РАБОЧАЯ МАШИНА).

Внутренний определитель файла — определитель файла, доступный только одной объектной программе единицы исполнения.

Внутренняя основная последовательность — определенная реализацией основная последовательность, принятая для машины, указанной в параграфе OBJF.CT-COMPUTER (РАБОЧАЯ-МАШИНА).

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

Время выполнения — время, в которое происходит выполнение объектной программы.

Время компиляции — время, в которое происходит компиляция исходной Кобол-программы в объектную программу.

Входной файл — файл, открытый в режиме ввода.

Входной-выходной файл — файл, открытый в режиме ввода-вывода.

Вызываемая программа — программа, являющаяся объектом оператора CALL (ВЫЗВАТЬ), объединяемая во время выполнения с вызывающей программой для образования единицы исполнения.

Вызывающая нр01рамма — программа, выполняющая оператор CALL (ВЫЗВАТЬ» по отношению к другой программе.

Выражение — арифметическое или условное выражение.

Выходной файл — файл, открытый в режиме вывода или в режиме дополнения

Глагол — слово обозначающее действие, которое нужно произвести компилятору Кобола или объектной программе.

Глобальное имя — имя. объявленное только в одной программе, но на которое можно ссылаться из этой программы и из любой программы. содержащейся в ней. Глобальными именами могут быть имена-условий, имена-данных, имена-файлов, имена-записей, нме-иаотчетов и некоторые специальные регистры (ч. 10. пп. 1.3.8.2, 4.2.4. 4.4.4».

Группа отчета — порция отчета, описанная в секции отчетов раздела данных статьей с номером уровня 01 и подчиненными ей статьями.

Группа тела отчета — общее имя для группы отчета тина DETAIL (ФРАГМЕНТ), CONTROL FOOTING (УПРАВЛЯЕМАЯ

100

Страница 102

ГОСТ 22558-8» С. 101

КОНЦОВКА) ИЛИ CONTROL HEADING (УПРАВЛЯЕМЫЙ ЗАГОЛОВОК).

Групповое данное — данное, состоящее из подчиненных данных.

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

Данное источник — данное, идентификатор которого указан во фразе SOURCE (ИСТОЧНИК) и которое поставляет значение печатаемого данного.

Декларативное предложение — управляющее компиляцией предложение, состоящее нз единственного оператора USE (ИСПОЛЬЗОВАТЬ). который заканчивается точкой с последующим пробелом.

Декларатнвы — набор нз одной или более секций специального назначения, записанных в начале раздела процедур; первой из этих секций предшествует ключевое слово DECLARATIVES (ДЕ-КЛАРАТИВЫ), а за последней из них следуют ключевые слова END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ). Каждая из этих секций определяется заголовком секции, за которым следует управляющий компиляцией оператор USE (ИСПОЛЬЗОВАТЬ) и далее нуль, один или несколько параграфов.

Дередактирование — логическое удаление всех литер редактирования нз числового редактируемого данного с тем. чтобы получить это значение как числовое нередактируемое.

Динамический доступ — метод доступа, при котором отдельные логические записи могут быть получены из файла или помещены в файл массовой памяти непоследовательным образом и могут быть получены из файла последовательным образом в области действия одного н того же оператора OPEN (ОТКРЫТЬ) (см. произвольный доступ; последовательный доступ).

Дополнительный ключ записи — ключ, отличный от основного ключа записи, значение которого идентифицирует запись в индексном файле.

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

Заголовок конца программы — комбинация слов, заканчивающаяся разделителем точка и указывающая конец исходной Кобол-программы. Заголовок конца программы имеет вид:

END PROGRAM имя-программы.

КОНЕЦ ПРОГРАММЫ имя-программы.

Заголовок отчета — группа отчета, которая представляется только в начале отчета.

Заголовок параграфа — зарезервированное слово, за которым непосредственно следует разделитель точка и которое указывает

101

Страница 103

С. 102 ГОСТ 225S8 89

начало параграфа в разделах идентификации и оборудования. Допустимыми заголовками параграфом являются:

а)    в разделе идентификации

PROGRAM-ID. (ПРОГРАММА.)

AUTHOR (АВТОР.)

INSTALLATION. (ПРЕДПРИЯТИЕ.)

DATE-WRITTEN. (ДАТА-НАПИСАНИЯ)

ДАТЕ-COM PILED. (ДАТА-ТРАНСЛЯЦИИ.)

SECURITY. (ПОЛНОМОЧИЯ.)

б)    в разделе оборудования

SOURCE-COMPUTER. (ИСХОДНАЯ-МАШИНА.) OBJECT-COMPUTER. (РАБОЧАЯ-МАШИНА.) SPECIAL-NAMES. (СПЕЦИАЛЬНЫЕ-ИМЕНА.)

FILE CONTROL. (УПРАВЛЕНИЕ-ФАИЛАМИ.) 10-C0NTR0L. (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ.) Заголовок раздела — комбинация слов, оканчивающаяся разделителем точка и указывающая начало раздела. Заголовки разделов Кобол-программы следующие:

IDENTIFICATION DIVISION.

ENVIRONMENT DIVISION.

DATA DIVISION.

PROCEDURE DIVISION [USING {имя-данного-l}.. .J. РАЗДЕЛ ИДЕНТИФИКАЦИИ.

РАЗДЕЛ ОБОРУДОВАНИЯ.

РАЗДЕЛ ДАННЫХ.

РАЗДЕЛ ПРОЦЕДУР (ИСПОЛЬЗУЯ (и м я-да иного-1>...]. Заголовок секции комбинация слов, за которыми следует разделитель точка: эта комбинация указывает начало секции в разделах оборудования, данных и процедур. Допустимые заголовки секций следующие:

а)    в разделе оборудования configurati6n SECTION.

(СЕКЦИЯ КОНФИГУРАЦИИ.)

INPUT-OUTPL'T SECTION.

(СЕКЦИЯ ВВОДА-ВЫВОДА )

б)    в разделе данных:

FILE SECTION.

(СЕКЦИЯ ФАЙЛОВ)

WORKING-STORAGE SECTION.

(СЕКЦИЯ РАБОЧЕЙ-ПАМЯТИ.)

LINKAGE SECTION.

(СЕКЦИЯ СВЯЗИ )

COMMUNICATION SECTION.

(СЕКЦИЯ КОММУНИКАЦИЙ )

Страница 104

ГОСI 225:8-89 С. 103

REPORT SECTION.

(СЕКЦИЯ ОТЧЕТОВ.)

н) в разделе процедур заголовок секции состоит из зарезервированного слова SECTION (СЕКЦИЯ), перед (за) которым следует имя секции, далее номер сегмента (необязательно) и. наконец. разделитель точка.

Заголовок страницы группа отчета, которая представляется в начале страницы отчета, как это определено системой управления генератором отчетов.

Запись — наиболее объемлющее данное. Номер уровня записи равен 01. Запись может быть элементарным или групповым данным. Термин является синонимом термина логическая запись.

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

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

Зарезервированное слово — слова Кобола из фиксированного списка слов, которые могут быть использованы в исходных Кобол-программах только в определенном смысле и которые не могут использоваться как слова, определенные пользователем, или как системные имена.

Знак арифметической операции — одна литера или фиксированная двухлитерная комбинация, которая принадлежит следующему множеству:

Знак    Операция

+    сложение

—    вычитание

•    умножение

/    деление

**    возведение в степень

Знак логической операции — одно из зарезервированных слов: AND (И). OR (ИЛИ) или NOT (НЕ). При формировании условий оба или любое из AND (И) или OR (ИЛИ) могут использоваться как логические связки. NOT (НЕ) может использоваться для логического отрицания.

Знак операции отношения — зарезервированное слово, литера отношения, группа последовательных зарезервированных слов или группа последовательных зарезервированных слов и литер отношения. используемые при построении условий отношении. Допустимыми знаками операций отношения являются:

103.

Страница 105

С. 104 ГОСТ 22558 89

Знак

IS [NOT] GREATER THAN <[HE) БОЛЬШЕ)

Операция

Больше чем или не больше чем

Меньше чем или не меньше чем

Равно или не равно

Больше чем или равно

Меньше чем или равно

IS [NOT] >

([HE]»

IS NOT LKSS THAN ([HLl Л\1£НЬШ1-)

IS [NOT)<

((HE]<)

IS NOT EQUAL TO ([HE] РАВНО)

IS NOT ■

[HE] —)

IS GREATER THAN OR

EQUAL TO (БОЛЬШЕ ИЛИ РАВНО) IS> —

(>-)

IS LESS THAN OR

EQUAL TO (МЕНЬШЕ ИЛИ РАВНО)

IS<-

«-)

Знак унарной операции — плюс (+) или минус (—). находящийся перед переменной или левой скобкой арифметического выражения и который равносилен умножению выражения на +1 или — 1 соответственно.

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

Значение истинности — представление результата вычисления условного выражения в терминах одного из двух значений: «истина» или «ложь».

Идентификатор — синтаксически правильная комбинация име-ни-данного и его уточнителей, индексов и модификаторов ссылки, если они требуются для однозначности ссылки, именующая данное. Тем не менее правила для «идентификатора» в общих форматах в особых случаях могут запрещать уточнение, индексирование или модификацию ссылок.

Идентификатор результата — определенное пользователем данное для хранения результата арифметической операции.

101

Страница 106

ГОСТ 22358-80 С. 106

Иерархия управления — определенная последовательность подразделов отчета, указанная порядком перечисления варианта FINAL (ПО КОНЦУ) к имен данных во фразе CONTROL (УПРАВЛЕНИЕ).

Имя алфавита — определенное пользователем слово в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) раздела обо-ру.ювання. которое именует определенный набор литер и (или) основную последовательность (ч. 6. п. 4.5).

Имя библиотеки — определенное пользователем слово, которое именует библиотеку Кобола, используемую компилятором при компиляции данной исходной программы.

Имя данною — определенное пользователем слово, которое именует данное, описанное в статье описания данного. В общих форматах «нмяданного» представляет слово, которое не может ни уточняться ни индексироваться, ни быть модифицированной ссылкой. если в правилах для jtojo формата нет специального разрешения

Имя записи — определенное пользователем слово, которое именует запись, описанную статьей описания записи в разделе данных Кобол-программы.

Имя индекса — определенное пользователем слово, именующее позицию или регистр памяти, связанные с лонкретной таблицей.

Имя класса — слово, определенное пользователем в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) раздела оборудования. предоставляющее имя выражению, для которого может быть определено значение истинности того, что данное состоит исключительно из тех литер, которые указаны в определении имени-класса.

Имя коммуникации — определенное пользователем слово, именующее область взаимодействия с системой управления сообщениями и описанное в статье описания коммуникации в секции коммуникаций раздела данных.

Имя машины — системное имя, идентифицирующее машину, на которой должна компилироваться или исполняться программа.

Имя отчета — определенное пользователем слово, которое именует отчет, описываемый статьей описания отчета в секции отчетов раздела данных.

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

Имя параграфа — определенное пользователем слово, которое идентифицирует и начинает параграф в разделе процедур.

Имя программы — определенное пользователем слово, которое идентифицирует исходную КоГюл-прогрзмму в разделе идентификации и заголовке конца программы.

105

Страница 107

С. 106 ГОСТ 22W8-S9

Имя программною модуля или имя модуля — определенное пользователем слово, которое идентифицирует процедуру, записанную на языке, отличном от Кобола.

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

Имя реализации — системное имя. относящееся к определенным особенностям, имеющимся в распоряжении вычислительной системы данной реализации.

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

Имя текста — определенное пользователем слово, которое именует библиотечный текст.

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

Когда используется «имя-условия* в общих форматах, оно представляет уникальную ссылку на данное, состоящую из синтаксически правильной комбинации имени-условия вместе с уточнителями или индексами, как того требует однозначность ссылки.

Имя файла — определенное пользователем слово, которое именует определитель файла, описываемый статьей описания файла или сортируемого-елнваемого файла в секции файлов раздела данных.

Имя языка — системное ими. указывающее определенный язык программирования.

Индекс — номер вхождения, идентифицирующий отдельный элемент таблицы. Индекс может быть представлен целым, именем данного. за которым может следовать целое со знаком -f или —, или нменем-индекса. за которым может следовать целое со знаком + или —.

Индексируемое имя данного — идентификатор, состоящий из имени данного, за которым следует един или несколько индексов, заключенных в скобки.

Индексная организация — постоянная логическая структура файла, при которой каждая запись идентифицируется значением едкого или Солее ключей внутри этой записи.

Индексное данное — данное, в котором в определенной реализацией форме может запоминаться значение, связанное с именем индекса.

Индексный файл — файл с индексной организацией.

|0С

Страница 108

ГОСТ 22558-89 С. 107

Индикатор уровня — лес* буквенные литеры, определяющие специальный тип файла или позицию в иерархии. Иншкаторами уровня в разделе данных являются FD (ОФ), CD (OK). RD (00), SD (ОС).

Индикаторы сообщения. EGI (ИКГ) — индикатор конца группы. EMI (ИKill) — индикатор конца сообщения н ESI (ИКС) — индикатор конца сегмента являются логическими индикаторами, указывающими системе управления сообщениями на определенное условие (конца группы, конца сообщения, конца сегмента).

В иерархии EGI (ИКГ). ЕМ! (ИК1Ц) и ESI (ИКС) логически EGI (ИКГ) является эквивалентом ESI (ИКС), EMI (ИКШ.) и EG1 (ИКГ). Логически EMI (ИКЩ) эквивалентно ESI (ИКС) и ЕМ1 (ИК1Д). Таким образом, сегмент может заканчиваться ESI (ИКС), ЕМ1 (ИКЩ) или EGI (ИКГ). Сообщение может заканчиваться ЕМ1 (ИКШ) или EGI (ИКГ).

Источник - символическое обозначение инициатора передачи сообщения в очерсль.

ИСХОДНДЯ-МАШИНД    имя параграфа в разделе оборудо

вания. описывающего компьютерную среду, в которой компилируется исходная программа.

Исходная программа — синтаксически правильный набор операторов Кобола, начинающийся с раздела идентификации, оператора COPY (КОПИРОВАТЬ) или оператора REPLACE (ЗАМЕНИТЬ). Кобол-программ а заканчивается заголовком конца программы, если он определен, или отсутствием дальнейших строк исходной программы.

Катушка — отдельная часть запоминающей среды, размеры которой определяются реализацией, содержащая часть файла, файл или несколько файлов. Термин является синонимом тома и устройства.

Ключ — данное, идентифицирующее местоположение записи, или набор данных, идентифицирующих упорядоченность данных.

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

Ключ ссылки — ключ, основной или дополнительный, используемый для доступа к записям индексного файла в текущий момент времени выполнения.

Ключевое слово — зарезервированное слово, вхождение которого в формат, содержащий это слово, обязательно при использовании этого формата в исходной программе.

Комбинированное условие — условие, полученное посредством связывания двух или более условий при помощи знаков логических операций AND (И) или OR (ИЛИ).

107

Страница 109

С. 108 ГОСТ 2*558 81

Коммуникационное устройство — механизм (оборудование или оборудование н системные программы), обеспечивающий отправку данных н очередь сообщений и (или) получение данных из этой очереди. Эти функции может выполнять как вычислительная машина. так и периферийное устройство. Одна или несколько программ некоторой вычислительной машины, содержащих статьи описания коммуникации, определяют один или несколько таких механизмов.

Конец младшего порядка — самая правая литера строки литер.

Конец раздела процедур — физическая позиция в исходной Кобол-программе. за которой не следуют никакие процедуры.

Конец старшего порядка — самая левая литера в строке литер.

Концовка отчета — группа отчета, которая представляется только в конце отчета.

Концовка страницы — группа отчета, которая представляется в конце страницы отчета, как это определено системой управления генератором отчетов.

Литера — основная неделимая единица языка.

Литера заполнитель — литера, используемая для заполнения неиспользуемых позиций литер в физической записи.

Литера отношения — литера, которая принадлежит следующему множеству:

Литера    Значение

>    больше

<    меньше

равно

Литера пунктуации — литера, которая принадлежит следующему набору литер:

Значение

Литера

запятая двоеточие точка с запятой точка кавычки

левая круглая скобка правая круглая скобка пробел равно

(

)

Литера редактирования — отдельная литера или двухлитерная комбинация в строке литер шаблона, принадлежащая следующему набору литер:

Страница 110

ГОСТ 22538-89 С. 109

Литера


Значение


пробел

нуль

плюс

минус

кредит

дебет

подавление нулей зашита чека

запятая (десятичная точка) точка (десятичная точка)


валютный знак


дробная черта


о

+

CR (КР) DB (ДБ) Z (П)

%(*)


Литерал — строка литер, значение которой определяется упорядоченным набором литер, составляющих эту строку.

Логическая запись — наиболее объемлющее данное. Номер уровня записи равен 01. Запись может быть элементарным или групповым данным. Термин является синонимом записи.

Логическая запись генератора отчетов — запись, состоящая из печатаемой генератором отчета строки и соответствующей управляющей информации, необходимой для ее отбора и вертикального позиционирования.

Логическая страница — логическое понятие, состоящее из верхнего поля, тела страницы л нижнего поля.

Массовая память — среда памяти, в которой данные могут быть организованы и сохраняемы как в последовательной, так и в непоследовательной форме.

Метод доступа — метод обращения к записям в файле.

Мнемоническое имя—определенное пользователем слово, соотнесенное в разделе оборудования указанному имени реализации.

Модификатор ссылки — самая левая позиция литеры и длина, используемые для образования данного и ссылки на него (ч. 4. п. 4.3.8.3).

Набор литер Кобола — полный набор литер Кобола состоит из перечисленных ниже литер:

для англпйской :>отацнч:

Литера    Значение

0. 1.2. 3. 4. 5. 6. 7. 8. 9    цифра

А, В. С. D. 0. F. G. Н.    I.    буква прописная

.1. К. L.M.N.O, P. Q, R, S.T

U. V. W, X. Y. Z

а, Ь. с, d, е, f, g. h, i, j, k,    буква    строчная

1. m. n. o. p, q. r. s, 1. u, v, w, sc. y. 2

109

Страница 111

С. 110 ГОСТ 22558 —84

пробел

плюс

минус

звездочка

дробная черта

равно

запятая (десятичная точка) точка с запятой точка (десятичная точка) кавычки

левая круглая скобка правая круглая скобка больше меньше


валютный знак


+

*

1

(

)

>

<

$(°)


двоеточие

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

Б. Г, Д. Ж. 3, И. Й, Л,    П.    буква    прописная

У, Ф, Ц, Ч. Ш. Щ. Ы. Ь. Э.    Ю.

Я

б, в. г, д. ж. з. и. й. к. л.    м. • буква    строчная

н. п. т. ф. ц. ч. ш. щ. ы, ь. э,    ю,

я

Начальная программа — программа, которая приводится в изначальное состояние каждый раз при вызове ее в единице исполнения.

Начальное состояние — состояние программы при нервом вызове ее в единице исполнения (Ч. 10, п. 2.4).

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

Необязательный файл — файл, который не обязательно должен иметься в наличии но нремя выполнения объектной программы. Объектная программа производит запрос о наличии или отсутствии файла.

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

Неуспешное завершение — попытка выполнить оператор, н результате которой выполняются не все действия, определенные этим

МО

Страница 112

ГОСТ 2-2558-8» С. Ill

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

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

Нечисловой литерал — строка литер, ограниченная слева и справа кавычками. Строка литер может включать любую литеру из набора литер машины.

Неявный ограничитель области действия — разделитель точка, заканчивающая область действия предшествующего незавершенного оператора, или фраза оператора, указывающая на конец области действия любого оператора, содержащегося в предыдущей фразе.

Нижнее поле — пустое поле, следующее за телом страницы.

Номер записи — порядковый номер записи в файле с последовательной организацией.

Номер сегмента — определенное пользователем слово, которое классифицирует секции в разделе процедур для целей сегментации. Номера сегмента могут состоять только из цифр О, I, .... 9 и могут быть выражены одной или двумя цифрами.

Номер строки — целое, обозначающее вертикальную позицию строки отчета на странице.

Номер уровня — определенное пользователем слово, состоящее «з одной или двух цифр, которое указывает позицию данного в иерархической структуре логической записи или специальные свойства статьи описания данного. Номера уровней в диапазоне от 1 до 49 указывают позицию данного в иерархической структуре логической записи. Номера уровней от 1 до 9 могут быть представлены одной цифрой или цифрой с предшествующим нулем. Номера уровней 66. 77 и 88 идентифицируют специальные свойства статьи описания данного.

Область записи — область памяти, отведенная для целей обработки записи, описанной в статье описания записи секции файлов раздела данных. Текущее число позиций литер в области записи определяется явной или иеявиой фразой RECORD (В ЗАПИСИ) в секции файлов.

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

Объект статьи — набор операндов и зарезервированных слов в

lit

Страница 113

С. 112 ГОСТ 22358-89

статье раздела данных Кобол-программы, следующий непосредственно за субъектом статьи.

Объектная программа — совокупность выполнимых машинных команд и других средств, предназначенных для взаимодействия с данными, обеспечивающая решение проблемы. Объектная программа обычно является результатом обработки исходной программы компилятором Кобола. Там. где нет опасности неоднозначности. слово «объектная программа» может заменяться словом «программа».

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

Ограничитель псевдотекста — две последовательные литеры — (равно), используемые для ограничения псевдотекста.

Операнд — компонента, над которой производится действие. В настоящем документе любое слово (или слова), записанное строчными буквами в формате оператора или статьи, рассматривается как операнд н как таковой представляет ссылку на данное, указанное операндом.

Оператор синтаксически правильная комбинация слов, литералов н разделителей, начинающаяся глаголом и записанная в исходной Кобол-программе.

Оператор ввода вывода оператор, побуждающий к обрабог-ке файлов выполнением операций над отдельными записями или над всем файлом. Операторы ввода-вызода: ACCEPT (ПРИМЯТЬ) — с вариантом идентификатор. CLOSE (ЗАКРЫТЬ). DELETE (УДАЛИТЬ). DISABLE (ЗАПРЕТИТЬ). DISPLAY (ВЫДАТЬ). ENABLE (РАЗРЕШИТЬ). OPEN (ОТКРЫТЬ). PURGE (ОЧИСТИТЬ). READ (ЧИТАТЬ). RECEIVE (ПОЛУЧИТЬ). REWRITE (ОБНОВИТЬ). SEND (ПОСЛАТЬ). SET (УСТАНОВИТЬ) — с вариантом ТО ON (ВКЛЮЧЕНО) или ТО OFF (ВЫКЛЮЧЕНО). START (ПОДВЕСТИ) и WRITE (ПИСАТЬ).

Оператор ветвления процедуры — оператор, совершающий явную передачу управления не следующему выполнимому оператору в последовательности операторов исходной программы. Операторы ветвления процедур: ALTER (ИЗМЕНИТЬ), CALL (ВЫЗВАТЬ), EXIT (ВЫЙТИ). EXIT PROGRAM (ВЫЙТИ ИЗ ПРОГРАММЫ). GO ТО (ПЕРЕЙТИ К). MERGE (СЛИТЬ) - с вариантом OUTPUT PROCEDURE (ПРОЦЕДУРА ВЫВОДА). PERFORM (ВЫ-ПОЛНИТЬ) н SORT (СОРТИРОВАТЬ) - с вариантом INPUT PROCEDURE (ПРОЦЕДУРА ВВОДА) или OUTPUT PROCEDURE (ПРОЦЕДУРА ВЫВОДА).

112

Страница 114

ГОСТ 22538-89 С 113

Оператор с ограничителем области действия — любой оператор. включающий явный ограничитель области действия (ч. 4. п. 44.3).

Оператор, управляющий компиляцией — оператор, вызывающий выполнение компилятором специальных действий во время компиляции.

Описание записи — совокупность статен описания данных, относящихся к отдельной записи. Термин является синонимом термина статья описания записи.

Определенное пользователем слово —слово Кобола, которое должно быть задано пользователем в соответствии с форматом фразы или оператора.

Определитель файла — область памяти, содержащая информации» о файле и используемая для связи между нменем-файла и физическим файлом и между именем-файла н соответствующей областью записи.

Организация файла — постоянная логическая структура файла, устанавливаемая при создании файла.

Основная последовательность — последовательность, в которой воспринимаемые машиной литеры упорядочены для целей сортировки. слияния или сравнения и для последовательной обработки индексных файлов.

Основной ключ записи — ключ, содержимое которого однозначно идентифицирует запись в индексном файле.

Отдельно компилируемая программа — программа, компилируемая со всеми содержащимися в ней программами отдельно от всех остальных программ.

Отладочная секция — секция Кобол-программы, содержащая оператор USE FOR DEBUGGING (ИСПОЛЬЗОВАТЬ ДЛЯ ОТЛАДКИ).

Отладочная строка - строка Кобол-программы, содержащая литеру D(T) в поле индикатора строки.

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

Относительный ключ — ключ, значение которого идентифицирует логическую запись в относительном файле.

Относительный номер записи — порядковый номер записи и файле с относительной организацией Этот номер рассматривается как числовой литерал, являющийся целым.

Относительный файл — файл с относительной организацией.

Отношение. Термин является синонимом знака операции отношения.

113

Страница 115

С. 114 ГОСТ 22568-89

Отрицание комбинированного условия — знак логической операции NOT (ПН), непосредственно за которым следует в скобках комбинированное условие.

Отрицание простого условия ~ знак логической операции NOT

(НЕ), непосредственно за которым следует простое условие.

Очередь — логический набор сообщений, ожидающих передачи или обработки.

Параграф — и разделе процедур это имя параграфа, за которым следует разделитель точка и нуль, одно или несколько предложений. В разделе идентификации и разделе оборудования — это заголовок параграфа, за которым следует нуль, одна или несколько статен.

Переменная — данное, значение которого может изменяться при выполнении объектной программы. Переменные, используемые в арифметическом выражении, должны быть числовыми элементарными данными.

Переменно повторяющееся данное — переменно повторяющееся данное является табличным элементом, повторяющимся переменное число раз. В статье описания такого данного должна содержаться фраза OCCURS DEPENDING ON (ПОВТОРЯЕТСЯ В ЗАВИСИМОСТИ ОТ) или оно должно входить в другое данное с такой статьей описания.

Печатаемая группа — группа отчета, содержащая по крайней мере одну печатаемую строку.

Печатаемое данное — данное, размер и содержимое которого указаны элементарной статьей отчета, содержащей фразы COLUMN NUMBER (НОМЕР СТОЛБЦА). PICTURE (ШАБЛОН), а также SOURCE (ИСТОЧНИК). SUM (СУММА) или VALUE (ЗНАЧЕНИЕ).

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

Подочередь — логическое иерархическое подразделение очереди.

Подпрограмма — программа, являющаяся объектом оператора CALL (ВЫЗВАТЬ), объединяемая в рабочее время с вызывающей программой для образования единицы исполнения Термин является синонимом термина вызываемая программа.

Подразумеваемая десятичная точка — позиция десятичной точки в данном, которой не соответствует явное физическое представление литеры точки

Позиция литеры — объем физической памяти, необходимый для хранения одной литеры стандартного формата данных, описанных

114

Страница 116

ГОСТ 22538-89 С. 115

DISPLAY (ДЛЯ ВЫДАЧИ). Более подробные характеристики физической памяти определяются реализацией.

Позиция цифры — объем физической памяти, необходимый для хранения одной цифры. Этот объем может изменяться в зависимости от фразы об использовании в статье описания данного, определяющей данное. Если в статье описания данного указана фраза DISPLAY (ДЛЯ ВЫДАЧИ), позиция цифры является синонимом позиции литеры. Более подробные характеристики физической памяти определяются реализацией.

Поле концовки — позиция тела страницы, примыкающая к нижней границе.

Последовательная организация — постоянная логическая структура файла, при которой записи идентифицированы отношением «предшественник-преемник», установленным при занесении записи в файл.

Последовательный доступ — метод доступа, при котором логические записи извлекаются из файла или разметаются в нем в последовательности, упорядоченной отношением «предшественник-преемник», установлнваемым прн создании файла.

Последовательный файл — файл с последовательной организацией.

Предложение — последовательность из одного или нескольких операторов, последний из которых заканчивается разделителем точкой.

Прерывание управления -- изменение значения данного, указанного во фразе CONTROL (УПРАВЛЕНИЕ), используемое для управления иерархической структурой отчета.

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

Простое условие любое одиночное условие, принадлежащее следующему множеству: условие отношения; условие класса; условие имени условия; условие состояния переключатели; условие знака;

(простое условие).

Процедура — параграф или группа логически последовательных параграфов либо секция или группа логически последовательных секций о роз челе процедур

Процедура ввода — набор операторов, которому передается \„рпьление по время выполнения оператора SORT (СОРТИРОВАТЬ) для управления передачей сортируемых записей.

115

Страница 117

С 116 ГОСТ 125М--89

Процедура вывода — набор операторов, которым передается управление во время выполнения оператора SORT (СОРТИРОВАТЬ) после завершения функции сортировки или во время выполнения оператора MERGE (СЛИТЬ) после завершения функции слияния

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

OBJECT-COMPUTER (РАБОЧАЯ МАШИНА) — имя параграфа в разделе оборудования, описывающего конфигурацию машины. на которой следует выполнять объектную программу.

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

Разделитель — литера или две последовательные литеры, используемые для ограничения строк литер.

Режим ввода — состояние файла после выполнения оператора OPEN (ОТКРЫТЬ), указанного с вариантом INPUT (ВХОДНОЙ). для этого файла и до выполнения оператора CLOSE (ЗАКРЫТЬ) без варианта REEL (КАТУШКУ) или UNIT (ТОМ) для этого файла.

Режим ввода-вывода — состояние файла после выполнения оператора OPEN (ОТКРЫТЬ), указанного с вариантом 1-0 (ВХОДНОЙ ВЫХОДНОЙI. для этого файла и до выполнения оператора CLOSE (ЗАКРЫТЬ) без варианта REEL (КАТУШКУ) или UNIT (ТОМ) для этого файла.

Режим вывода — состояние файла после выполнения оператора OPEN (ОТКРЫТЬ) для этого файла с вариантом OUTPUT (ВЫХОДНОЙ) или EXTEND (ДОПОЛНЯЕМЫЙ) и до выполнения оператора CLOSE (ЗАКРЫТЬ) без варианта REEL (КАТУШКУ) или UNIT (ТОМ) для этого файла.

Режим дополнения — состояние файла после выполнения для него оператора OPEN (ОТКРЫТЬ), указанного с вариантом EXTEND (ДОПОЛНЯЕМЫЙ) и до выполнения оператора CLOSE (ЗАКРЫТЬ) для этого же файла.

Режим открытия — состояние файла после выполнения оператора OPEN (ОТКРЫТЬ) для этого файла и до выполнения оператора CLOSE (ЗАКРЫТЬ) без варианта REEL (КАТУШКУ) или UNIT (ТОМ) для этого файла. Определенный режим открытия определяется в операторе OPEN (ОТКРЫТЬ) вариантом INPUT

Мб

Страница 118

ГОСТ 225SS-S9 С. 117

(ВХОДНОЙ), OUTPUT (ВЫХОДНОЙ), 1-0 (ВХОДНОЙ-ВЫ-ХОДНОЙ) или EXTEND (ДОПОЛНЯЕМЫЙ) соответственно как режим открытия для ввода, вывода, ввода-вывода или дополнения.

Ресурс — возможность или средство, управляемые операционной системой, которые могут быть использованы выполняющейся программой.

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

Сегмент сообщения — логическое подразделение сообщения, обычно связанное с индикатором конца сегмента (см. индикаторы сообщения).

Секция — набор из нуля, одного или нескольких параграфов или статей, называемый телом секции, которому предшествует заголовок секции Каждая секция состоит из заголовка секции и относящегося к нему тела секции.

Секция ввода-вывода — секция раздела оборудования, которая называет файлы и внешнюю среду, требуемые для объектной программы. и которая задает информацию, необходимую для передачи и обработки данных в процессе выполнения объектной программы,    4

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

Секция конфигурации — секция раздела оборудования, которая описывает общие спецификации исходной н рабочей программ.

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

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

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

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

Символическая литера — определенное пользователем слово, указывающее определенную пользователем стандартную константу.

117

Страница 119

с Ш ГОСТ 22558—м

Система управления генератором отчетов (СУГО) — обеспечиваемая реализацией система управления, которая осуществляет построение отчетов во время выполнения.

Система управления массовой памятью (СУМП) — система управления вволом-выводом. которая управляет обработкой файлов в массовой памяти,

Система управления сообщениями — система управления коммуникациями. которая поддерживает обработку сообщений.

Системное имя — слово Кобола, используемое для связи с операционной средой.

Следующая запись — запись, которая логически следует за текущей записью файла.

Следующее выполнимое предложение — следующее предложение. которому будет передано управление после завершения выполнения текущего оператора (ч. 4, п. 4.4.2).

Следующий выполнимый оператор — следующий оператор, которому будет передано управление после завершения выполнения текущего оператора (ч. 4, п. 4.4.2).

Сливаемый файл — совокупность записей, подлежащих слиянию посредством выполнения оператора MERGE (СЛИТЬ). Сливаемый файл создастся и может использоваться только при выполнении функции слияния.

Слово - строка литер, состоящая не более чем из 30 литер и образующая определенное пользователем слово, системное ими или зарезервированное слово (ч. 4. n. 4.2.2.1).

Слово Кобола — строка литер, состоящая не более чем из 30 литер и образующая определенное пользователем слово, системное имя или зарезервированное слово (ч. 4. п. 4.2.2.1).

Слово-специальная литера — зарезервированное слово, являющееся знаком арифметической операции или литерой отношения.

Слово текста — литера или непрерывная последовательность литер между полем А и полем R в библиотеке Кобола, исходной программе или в псевдотексте.

Словом текста являются:

(1)    разделитель за исключением пробела, ограничителя псевдотекста. открывающего и закрывающего ограничителя нечислового литерала. Правая и левая скобки, независимо от контекста в библиотеке, исходной программе или псевдотексте, всегда рассматриваются как олова текста;

(2)    нечисловой литерал вместе с ограничивающими его открывающими и закрывающими кавычками или числовой литерал;

(3)    любая другая непрерывная последовательность литер Кобола. за исключением строк комментария и слова COPY (КОПИРОВАТЬ) . ограниченная разделителями и не являющаяся разделителем или литералом.

118

Страница 120

ГОСТ 22558-89 С. П9

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

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

Сообщение — данные, с которыми связан индикатор конца сообщения или индикатор конца группы (см. индикаторы сообщения).

Сортируемый файл — совокупность записей, подлежащих сортировке посредством оператора SORT (СОРТИРОВАТЬ). Сортируемый файл создается и может быть использован только функцией сортировки.

Состояние ввода-вывода. Логический объект, содержащий двухлитерное значение, указывающее заключительное состояние операции ввода-вывода. Это значение, однако, доступно программе при использовании фразы FILR STATUS (СОСТОЯНИЕ ФАЙЛА) и статье управления файлами.

Специальная литера — литера, которая принадлежит следующему набору литер:

Литера    Значение

+    плюс

*

/

(

)

>

<


минус звездочка дробная черта равно

запятая (десятичная точка) точка с запятой точка (десятичная точка) кавычки

левая круглая скобка правая круглая скобка больше меньше


валютный знак-

двоеточие

SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) — имя параграфа раздела оборудования, в котором имена реализации соотнесены с мнемоническими именами, определенными пользователем.

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

I I О

Страница 121

С. 120 ГОСТ 22558-89

запоминания служебной информации при выполнении специфических функций Кобола.

Стандартная константа — генерируемое компилятором значение. на которое ссылаются посредством определенных зарезервированных слов (ч. 4. п. 4.2.2.2.3).

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

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

Статьи имени программы — статья параграфа PROGRAM-ID (ПРОГРАММА) раздела идентификации, содержащая фразы, которые определяют имя программы и назначают программе избранные свойства.

CraibH исходной машины — статья параграфа SOURCE-COM-PUTKR (ИСХОДНАЯ-МАШИНА) в разделе оборудования, содержащая фразы с описанием компьютерной среды, в которой будет компилироваться исходная программа.

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

Ста1ья описании iруппы отчета — статья в секции отчетов раздела данных, состоящая из номера уровня 01. необязательного имени данного, фразы TYPE (ТИП) и необязательного набора фраз отчета.

Статья описания данного — статья в разделе данных, состоящая из номера уровня, за которым следует, если требуется, имя данного, а затем, если требуется, набор фраз данных определенного вида.

Статья описания записи — совокупность статей описания данных. содержащихся в записи. Термин является синонимом термина описание записи.

Статьи описании коммуникации — статья секции коммуникаций раздела данных, состоящая из индикатора уровня CD (OK), за которым следует имя коммуникации и. если требуется, ряд фраз описания. Эта статья описывает интерфейс между системой управления сообщениями и Кобол-программой.

Статья описания отчета — статья в секции отчетов раздела данных, состоящая из индикатора уровня RD (00), за которым следует имя отчета и затем, если это требуется, набор фраз отчета.

Страница 122

ГОСТ 22538-8» С 12!

Статья описания сортируемого-сливаемого файла — статья в секции файлов раздела данных, которая состоит из индикатора уровня SD (ОС.), за которым следует имя файла, а затем набор фраз файла.

Статья описания уровня 77 — статья описания данного в секции рабочей памяти, описывающая несвязанное данное с номером уровня 77.

Статья описания файла — статья в секции файлов раздела данных. состоящая из индикатора уровня FD (ОФ), за которым следует имя файла и затем набор требуемых фраз.

Статья объектной машины — статья параграфа OBJECT-COM-PLTER (РАБОЧАЯ-МАШИНА) раздела оборудования, содержащая фразы, которые описывают компьютерную среду, в которой будет выполняться объектная программа.

Статья специальных имен — статья параграфа SPECIAL-NA-MES (СПЕЦИАЛЬНЫЕ-ИМКНА) в разделе оборудования, обеспечивающая средства определения валютного знака; выбора десятичной точки; определения символических литер; установления соответствия между именами реализации и мнемоническими именами. определяемыми пользователем; установления соответствия между именами алфавитов и наборами литер или основными последовательностями и установления соответствия между именами классов и наборами литер.

Статья управления вводом-выводом — статья параграфа 10— CONTROL (УПРАВЛЕНИЕ ВВОДОМ ВЫВОДОМ) в разделе оборудования, содержащая фразы с информацией, необходимой для передачи и обработки данных названных файлов во время выполнения программы.

Статья управления файлом — фраза SELECT (ДЛЯ) в разделе оборудования и все подчиненные ей фразы, которые объявляют соответствующие физические свойства файла.

Столбец — позиция лигеры в печатаемой строке Номера столбцов начинаются с единицы, определяющей самую левую позицию литеры в печатаемой строке, и увеличиваются на единицу при продвижении к самой правой позиции в этой строке.

Страница — вертикальное подразделение данных отчета, базирующееся на внутренних требованиях выдачи и (или) внешних характеристиках носителя отчета.

Строка — часть страницы, представляющая одни горизонтальный ряд позиций литер. Каждая позиция литеры строки отчета выровнена по вертикали с соответствующей позицией литеры строки отчета, находящейся нал ней. Строки отчета нумеруются от J. изменяясь на I. начиная сверху. Термин является синонимом строки отчета.

121

Страница 123

С. 122 ГОСТ 22658-89

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

Строка литер — последовательность смежных литер, образуйся слово Кобола, литерал, строку литер шаблона или статью-комментарий (ч. 4. п. 4.2.2.!).

Строка отчета — часть страницы, представляющая один горизонтальный ряд позиций литер. Каждая позиция литеры строки отчета выровнена по вертикали с соответствующей позицией литеры строки отчета, находящейся над ней. Строки отчета нумеруются от 1, изменяясь на 1, начиная сверху. Термин является синонимом строки.

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

Субъект статьи — операнд или зарезервированное слово, указанное непосредственно после индикатора уровня или номера уровня в статье раздела данных.

СУГО - система управления генератором отчетов; обеспечиваемая реализацией система управления времени выполнения, ко-юрая осуществляет построение отчетов.

СУМП — система управления массовой памятью; система управления вводом-выводом, которая управляет обработкой файлов и массовой памяти.

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

LINAGE COUNTER (СЧЕТЧИК-ВЕРСТКИ) — специальный регистр, значение которого указывает текущую позицию в теле страницы.

Счетчик суммы ~ числовое данное со знаком, учреждаемое фразой SUM (СУММА) н секции отчетов раздела данных. Счетчик суммы используется системой управления генератором отчетов для хранения результатов операций суммирования, производимых при генерации отчета.

122

Страница 124

ГОСТ 22558- 89 С- 123

Таблица — набор логически следующих друг за другом данных. которые определены и разделе данных Кобол-программы с помощью фразы OCCURS (ПОВТОРЯЕТСЯ).

Текущая запись -- запись, доступная в области записи, соответствующей файлу.

Тело страницы — часть логической страницы, в которой могут быгь представлены печатаемые строки и (илн) оставлены пустые строки (ч. 7. п. 3.7).

Терминал — источник передачи в очередь или получатель передачи из очереди.

Том — отдельная часть запоминающей среды, размеры которой определяются реализацией и которая может содержать часть файла. весь файл или несколько файлов Термин является синонимом термина катушка.

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

Указатель позиции файла — логическое ноннтне. содержащее значение текущего ключа в ключе ссылки для индексного файла, илн номер текущей записи для последовательного файла, или относительный номер текущей записи для относительного файла, или указывающее, что следующей логической записи не существует, пли что число значащих цифр в относительном номере записи больше размера относительного ключа, или что необязательный входной файл отсутствует, или что уже существует условие AT END (В КОНЦЕ), или что не установлена существующая следующая запись.

Указатель текущего тома — логическое понятие, указывающее текущий том последовательного файла.

I-O-CONTROL (УПРАВЛ ЕНИЕ-ВВОДОМ-ВЫВОДОМ) _ имя параграфа раздела оборудования, в котором указаны требования рабочей программы к точкам перепрогона, совместному использованию общих областей несколькими файлами и размещению нескольких файлов на одном устройстве ввода-вывода.

FILE-CONTROL (УПРАВЛ ЕНИЕ-ФАИЛАМИ) — имя параграфа раздела оборудования, в котором объявляются имена файлов данных дли конкретной исходной программы.

Управляемая группа — набор групп тела отчета, представляемый дли данного значения управляющего данного илн в конце отчета FINAL (ПО КОНЦУ). Каждая управляемая группа может начинаться группой управляемый заголовок, заканчиваться группой управляемая концовка и содержать в себе группы фрагмент.

Управляемая концовка — группа отчета, представляемая в конце управляемой группы, в которую она входит

Страница 125

С. 124 ГОСТ 22S58—89

Управляемый заголовок — группа отчета, представляемая в начале управляемой группы, в которую она вхолит.

Управляющее данное — данное, изменение значения которого вызывает прерывание управления.

Управляющее имя данного — имя данного, указанное во фразе CONTROL (УПРАВЛЕНИЕ) и относящееся к управляющему данному.

Уровень прерывания управления — относительная позиция в иерархии управления, на которой встретилось самое старшее из обнаруженных прерываний управления.

Условие — состояние программы во время се выполнения, для которого можно определить значение истинности. Термин «условие* (условие-1. условие-2. ...), появляющийся в спецификациях языка или в ссылках общего формата, соответствует условному выражению. для которого может быть определено значение истинности и которое состоит нз простого условия или комбинированных условий, представляющих синтаксически правильные комбинации простых условии, знаков логических операций и скобок.

Условие «в конце» — условие, имеющее место:

(1)    если при выполнении оператора READ (ЧИТАТЬ) для файла с последовательным доступом не существует следующей логической записи в файле или если количество значащих цифр в относительном номере записи больше размера относительного ключа, или отсутствует входной необязательный файл;

(2)    если при выполнении оператора RETURN (ВЕРНУТЬ) для соответствующего сортируемого или сливаемого файла не существует следующей логической записи;

(3)    если при выполнении оператора SEARCH (ИСКАТЬ) операция поиска заканчивается и ни одно из условий, указанных н соответствующих вариантах WHEN (КОГДА), не удовлетворяется.

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

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

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

Условие конфликтных свойств файла — имела место неуспешная попытка выполнить операцию ввода-вывода для файла и ука-

124

Страница 126

ГОСТ 22S58-89 С. 125

занные в программе свойства этого файла не совпадают с фиксированными свойствами файла.

Условие отношения — выражение, для которого может быть оп-ределеио значение истинности того, что значение арифметического выражения, данного нечислового литерала или имени-индекса находится в определенном отношения со значением другого арифметического выражения, данного, нечислового литерала или имени-индекса (см. знак операции отношения).

Условие INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) — условие, возникающее во время выполнения, если значение ключа, соотнесенного индексному или относительному файлу, определяется как ошибочное.

Условие состояния переключателя — выражение, для которого может быть определено значение истинности того, что определенный реализацией переключатель, который может находиться в одном из состояний «включено» или «выключено*, установлен в определенное состояние

Условная переменная — данное, одному или нескольким значениям которого соотнесено имя условия.

Условная фраза — условная фраза; определяет действие, которое должно быть выполнено при определении значения истинности условия, получаемого в результате выполнения условного оператора.

Условное выражение — простое или сложное условие, указанное в операторах EVALUATE (ОЦЕНИТЬ). IF (сСЛИ), PERFORM (ВЫПОЛНИТЬ) или SEARCH (ИСКАТЬ) (см. простое условие; сложное условие).

Условный оператор — оператор, указывающий, что должно быть определено значение истинности условия и что последующие действия рабочей программы зависят от этого значения истинности. Условные операторы приведены в ч. 4. п. 6.4.2.

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

Уточненное ими данного — идентификатор, состоящий из имени данного, за которым следует одна или более пар из связки OF или IN (ИЗ) и последующего уточнителя имени данного.

Уточнитель:

(1)    Имя-данного или имя, связанное с индикатором уровня, которое используется в ссылках либо вместе с другим нменем-дан-ного. подчиненным уточнителю, либо вместе с именем-условня.

(2)    Имя секции, которое указывается в ссылках на имя параграфа. содержащееся ы этой секции.

(3)    Имя-библиотеки, используемое в ссылках на имя текста, связанного с чтой библиотекой (ч. 4. п. 4.3.8.1).

125.

Страница 127

С 126 ГОСТ 22558 -89

Файл — совокупность логических записей.

Файл массовой памяти — совокупность записей, соотнесенных к среде массовой памяти.

Файл отчетов — выходной файл, статья описания которого содержит фразу REPOKT (ОТЧЕТ). Файл отчетов состоит из записей. записанных под управлением системы управления генератором отчетов.

Физическая запись — термин является синонимом блока.

Физическая страница — понятие, зависящее от устройства оборудования и определяемое реализацией.

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

Формат — определенное упорядочение набора данных.

Формат представления -• формат, который обеспечивает стандартный способ описания исходных Кобол-программ.

Фраза -- упорядоченный набор последовательных строк литер Кобола, описывающих свойства r статье или часть оператора Кобола.

Фраза данных - фраза статьи описания данного раздела данных, описывающая определенное свойство данного.

Фраза оборудования — фраза, которая указана как часть статьи раздела оборудования.

Фраза отчета — фраза в секции отчетов раздела данных, которая указана в статье описания отчета или статье описания группы ■отчета.

Фраза файла — фраза, указанная в разделе данных как часть статьи описания файла и статьи описания сортируемого-сливаемого файла.

Целое — числовой литерал или числовое данное, которое не содержит ни одной позиции литеры справа от подразумеваемой десятичной точки. Термин «целое», указанный в общих форматах, не должен представлять числовое данное или значение, имеющее знак или равное нулю, если это не оговорено явно правилами данного формата.

Цифровая литера — лнгера, принадлежащая следующему набору цифр: 0. 1.2, 3. 4. 5. 6. 7. 8. 9.

Число сообщений — счетчик числа завершенных сообщений, имеющихся в указанной очереди сообщений.

426

Страница 128

ГОСТ 22558-89 С. 127 i

Числовое данное данное, описание которого ограничивает представление его значения литерами цифр; данное со знаком может содержать также +. - или другое представление знака числа.

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

Элемент таблицы — одно из набора повторяющихся данных, составляющих таблицу.

Элементарное данное — данное, которое рассматривается как логически неделимое.

Явная десятичная точка — физическое представление позиции десятичной точки в данном, использующее одну из литер, обозначающих десятичную точку в Коболе: «.» (точку) или «,* (запятую).

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

Часть 4. ОСНОВНЫЕ ПОНЯТИЯ I. ВВЕДЕНИЕ

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

2. ОБОЗНАЧЕНИЯ. ИСПОЛЬЗУЕМЫЕ В ФОРМАТАХ И ПРАВИЛАХ

2.1. Определение общего формата

Общий формат — это определенное упорядочение элементов фразы или оператора. Элементы фразы или оператора определяются ниже. В настоящем документе формат рассматривается в связи с информацией, определяющей фразы Или операторы. Если

127

Страница 129

С I-'8 ГОСТ 22558-89

допускается более* одного определенного упорядочения, обший формат разделяется на перенумерованные форматы. Фразы должны записываться в последовательности, указываемой общими форматами. Если используются необязательные фразы, они должны подчиняться указанной последовательности. В определенных случаях, явно устанавливаемых правилами, фразы могут записываться о последовательности, отличной от указанной соответствующим форматом. Применение, требования или ограничения формулируются в виде правил.

2.1.1.    Элементы

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

2.1.2.    Слова

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

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

2.1.3.    Номера уровней

Если определенные номера уровней входят в форматы статей раздела данных, то именно они должны быть использованы в соответствующих статьях в Кобол-программе. В этом документе пары цифр 01, 02..... 09 используют для задания номеров уровня

от 1 до 9.

2.1.4.    К в а д р а т н ы е. фигурные скобки и указатели выбора

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

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

Если выражение в фигурных скобках содержит только зарезервированные слова, не являющиеся ключевыми, то такой вариант

<28

Страница 130

ГОСТ 2?338—89 С. 1W

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

Указатели выбора {| |). заключающие часть общего формата, означают, что должен быть сделан выбор одного или нескольких из заключенных в них вариантов, но каждый из вариантов можег быгь указан только один раз.

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

2.1.5.    М и о г о т о ч и с

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

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

если в формате встречается многоточие, берется непосредственно слева от многоточия скобка ], } или |} и при продолжении просмотра справа налево определяется логически соответствующая (. { или {|; многоточие относится к части формата между определенной таким образом парой ограничителей.

2.1.6.    Пунктуация в формате

Разделительная запятая и точка с запятой могут использоваться везде, где используется разделительный пробел в форматах (п. 4.2.1 настоящей части). В исходной программе эти разделители взаимозаменяемы.

Разделительная точка, используемая в форматах, имеет статус зарезервированного слова.

2.! .7. Использование с л о в-с п е ц и а л ь н ы х литер в форматах

Слова-спсцнальные лигеры -К —,    <, =. > -*, <— в фор

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

3. ПРАВИЛА

3.1. Синтаксические правила

Синтаксическими правилами являются такие правила, которые определяют нлн объясняют порядок расположения слов или элементов при образовании более крупных языковых конструкций,

129

5 Зах 251

Страница 131

С, 1Э0 ГОСТ 22558-89

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

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

3.2. Общие правила

Общими правилами являются такие правила, которые определяют или объясняют смысл элементов или их взаимосвязь; они используются для определения или объяснения семантики операторов и действий, оказываемых ими на выполнение или компиляцию.

/    4.    ПОНЯТИЯ    ЯЗЫКА

4.1.    Набор литер

Основной и неделимой единицей языка является литера. Набор литер, используемых при образовании строк литер Кобола и разделителей, определен в глоссарии (см. ч. 3). Для нечисловых литералов, статей-комментариев и строк комментария набор литер расширяется и включает весь набор литер машины.

Литеры, допустимые для каждого типа строк литер и в качест* ве разделителей, определены в п. 4.2 настоящей части.

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

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

4.2.    Структура языка

Отдельные литеры языка связываются в строки литер и разделители. Разделители определяют границы строк литер. Допускается несколько идущих подряд разделителей. Последовательность строк литер и разделителей образует текст исходной программы.

4.2.1. Разделители

Разделителями является цепочка из одной или нескольких литер. Правила образования разделителей следующие:

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

130

Страница 132

ГОСТ 22558-89 С 111

«ли точкой, являются мастью этих разделителей и не рассматриваются как отдельный разделительный пробел;

(2)    литеры пунктуации запятая (если она не используется в строке литер шаблона) и точка с запятой, за которыми следует пробел, являются разделителями и могут использоваться везде, где используется разделитель пробел. Они могут использоваться для удобочитаемости программы;

(3)    лнгера пунктуации точка, за которой следует пробел, является разделителем (разделитель точка). Она должна использоваться только для указания конца предложения или там, где это указано в форматах;

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

(5)    литера пунктуации «(кавычки) является разделителем. Непосредственно перед открывающими кавычками должен стоять пробел или левая скобка; непосредственно за закрывающими кавычками. соответствующими открывающим кавычкам, должен стоя!ь один из разделителей: пробел, запятая, точка с запятой, точка или правая скобка;

(6)    ограничители псевдотекста являются разделителями. Непосредственно перед открывающим ограничителем псевдотекста должен стоять пробел; за закрывающим ограничителем псевдотекста должен стоять один из разделителей: пробел, запятая, точка с запятой или точка.

Ограничители псевдотекста могут использоваться только в парс, ограничивая псевдотекст;

(7)    литера пунхтуации двоеточие (:) является разделителем и должна использоваться только там, где это указано в общих форматах;

(8)    разделитель пробел может быть проставлен по желанию непосредственно перед любым разделителем, однако следует учитывать:

а)    правила, определенные форматом представления (п. 7 настоящей части);

б)    в случае разделителя «закрывающая кавычка» предшествующий пробел рассматривается как часть нечислового литерала, а не как разделитель;

в)    в случае открывающего ограничителя псевдотекста предшествующий пробел необходим;

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

131

Страница 133

С. 132 ГОСТ 22SM-SJ

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

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

4.2.2. Строки литер

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

4.2.2.1.    Слова Кобола

Словом Кобола является строка литер, состоящая не более чем из 30 литер и образующая слово, определенное патьзователом, системное имя или зарезервированное слово. Каждая литера слова Кобола принадлежит набору букв, цифр и дефиса. Дефис не может быть первой или последней литерой слова. Каждая строчная буква рассматривается как эквивалент соответствующей ей прописной буквы. В исходной программе зарезервированные слова и слова, определенные пользователем, образуют неперссекаю-Шиеся множества; системные имена и слова, определенные пользователем, образуют пересекающиеся множества. Одно и то же слово Кобола может использоваться как системное имя и как слово. определенное пользователем, внутри исходной программы. Отдельное появление такого слова Кобола классифицируется контекстом статья или фразы, в котором оно появляется.

4.2.2.1.1.    Слова, определенные пользователем

Словом, определенным пользователем, является слово Кобола, задаваемое пользователем в соответствии с форматом фразы или оператора. Каждая литера такого слова выбирается для английской нотации из набора литер А, Z, 0, I, .... 9, - (для русской нотации из набора литер А, ..., Я, D. F. G, I. J, L. N. Q. R, S, U, V. W. Y. Z, 0. 1, 2, ..., 9. -). Слово не может начинаться или заканчиваться дефисом. Имеются следующие типы слов, определенных пользователем:

1.    Имя алфавита;

2.    Имя библиотеки;

3.    Имя данного;

4.    Имя записи;

5.    Имя индекса;

6.    Имя класса;

7.    Имя коммуникации;

132

Страница 134

ГОСТ 22558-59 С. 133

8.    Имя отчета;

9.    Имя параграфа;

10.    Имя программного модуля;

11.    Имя программы;

12.    Имя секции;

13.    Имя текста;

14.    Имя условия;

15.    Имя файла;

16.    Мнемоническое имя;

17.    Номер сегмента;

18.    Номер уровня;

19.    Символическая литера.

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

1.    Имена алфавитов;

2.    Имена библиотек;

3.    Имена индексов;

4.    Имена классов;

5.    Имена коммуникаций;

6.    Имена отчетов;

7.    Имена параграфов;

8.    Имена программных модулей;

9.    Имена программ;    *

10.    Имена секций;

11.    Имена текстов;

12.    Имена условий, имена данных, имена записей;

13.    Имена фзйлов;

14.    Мнемонические имена;

15.    Символические литеры.

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

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

4.2.2.1.1.1. Имя условия

Имя условии — имя, поставленное в соответствие спсциально-

133

Страница 135

С. 134 ГОСТ 22558-89

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

Имена условий могут быть определены в разделе данных или а параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) раздела оборудования, где переключателям, определенным реализацией, должно быть приписано имя условия для состояния «включено» или «выключено», или для того и другого.

Имя условия используется для сокращения записи условия отношения, определяющего, что соответствующая условная переменная равна одному из множества значений, предписанных этому имени условия. Имя условия используется также в оператора SET (УСТАНОВИТЬ), указывая, что соотвегствующее значение должно быть помещено в условную переменную.

4.2.2.1.1.2.    Мнемоническое имя

Мнемоническое имя — эго слово, определенное пользователем, которое ставится в соответствие имени реализации. Это соответствие устанавливается в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) раздела оборудования (ч. 6. п. 4.5).

4.2.2.1.1.3.    Имя параграфа

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

4.2.2.1.1.4.    Имя секции

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

4.2.2.1.1.5.    Другие имена, определяемые пользователем

Спецификации всех других типов слов, определяемых пользователем (см. ч. 3).

4.2.2.1.2. Системы ые имена

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

Имеются следующие типы системных имен:

1.    Имя машины;

2.    Имя реализации;

3.    Имя языка.

134

Страница 136

ГОСТ 22558-89 С. 135

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

4.2.2.1.3. Зарезервированные Сл о в а

Зарезервированным словом является слово Кобола из определенного списка слов, которые могут быть использованы в исходной Кобол программе, но которые не могут использоваться как слова, определяемые пользователем, или как системные имена. Зарезервированные слова могут использоваться только в соответствии с общими форматами (п. 8 настоящей части).

Имеются следующие типи-зарезервированных слов:

1.    Обязательные слова;

2.    Необязательные слова;    м_____

3.    Слова специального.назначения. .

4.2.2.1.3.1.    Обязательные слоЬа .

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

(1)    ключевые слова. В каждом формате такие слова записаны прописными буквами и подчеркнуты;

(2)    слова-специзльные литеры. Это знаки арифметических операций и литеры отношения.

4.2 2.1.3.2. Необязательные слова

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

4.2.2.1.3.3. Слова специального назначения

Имеются два типа слов специального назначения:

1.    Специальные регистры; ..

2.    Стандартные константы.

4.2.2.1.3.3.1.    Специальные регистры

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

Страница 137

С. 136 ГОСТ 22558

Если разрешаются уточнения, специальные регистры при необходимости могут уточняться для обеспечения однозначности (п. 4.3.8.1 настоящей части).

Специальными регистрами являются следующие:

1.    DEBUG-ITEM (ДАННЫЕ-ОТЛАДКИ) (ч. 15, п. 1.3.2);

2.    I.INAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) (ч. 7, п. 1.3.8);

3.    LINE-COUNTER (СЧЕТЧИК-СТРОК) (ч. 13, п. 1.2.3);

4.    PAGE-COUNTER (СЧЕТЧИК-СТРАНИЦ) (ч. 13, п. 1.2.2).

4.2.2.1.3.3.2.    Стандартные константы

Определенные зарезервированные слова используются для именования специальных констант и ссылок на них. Эти зарезервированные слова определены в п. 4.2.2.2.3 в настоящей части.

4.2.2.2.    Литералы

Литерал — строка литер, значение которой определяется упорядоченным набором литер, из которых она составлена, или спецификацией зарезервированного слова, являющегося стандартной константой. Каждый литерал принадлежит к одному из двух видов: числовому или нечисловому.

4.22.2.1 .Нечисловые литералы

Нечисловой литерал определяется как ограниченная кавычками слева и справа строка литер. Реализация должна допускать длину литерала от одной до 160 литер. Длина нечислового литерала относится к его представлению в объектной программе.

4.2.2.2.1.1.    Общий формат

«{литсра-1}...»

4.2.2.2.1.2.    Синтаксические правила

(1)    Литера* 1 может быть любой литерой из набора литер машины.

(2)    Если литера-1 должна представлять литеру кавычек, для представления одной литеры кавычек должны использоваться две следующие друг за другом литеры кавычек.

4.2.2.2.1.3.    Общие правила

(1)    Значением нечислового литерала в рабочей программе является значение, представляемое литерой-1.

(2)    Ограничивающие нечисловой литерал кавычки не являются частью значения нечислового литерала.

(3)    Все нечисловые литералы относятся к буквенно-цифровой категории.

4 2.2.2.2. Числовые литералы

Числовой литерал определяется как строка литер, состоящая из цифр от 0 до 9, знака плюс, знака минус и десятичной точки. Реализация должна разрешать длину числового литерала от I до 18 цифр. Правила образования числового литерала следующие:

(1)    литерал должен содержать по меньшей мере одну цифру;

(2)    литерал не должен содержать более одной литеры знака.

136

Страница 138

ГОСТ 225W-89 С. 137

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

(3J литерал не должен содержать более одной десятичной точки. Десятичная точка рассматривается как подразумеваемая десятичная точка и может занимать в литерале любую позицию, кроме самой правой. Если литерал не содержит десятичной точки, то он является целым числом.

Литерал, составленный по правилам для образования числовых литералов, но заключенный в кавычки, является нечисловым н обрабатывается компилятором как нечисловой;

(4) значением числового литерала является алгебраическая величина, представленная литерами числового литерала. Каждый числовой литерал относится к числовой категории (ч. 6, п. 5.9.1).

Размер числового литерала в терминах литер стандартного формата данных равен ко^    фр.

4.2.2.2.3. Значения

Значения стандартных констант генерируются компилятором. Пользователь может ссылаться на инх посредством зарезервированных слов, приведенных ниже. Эти слова при использовании их в качестве стандартных констант не должны заключаться в кавычки. Единственная и множественная форма стандартных констант эквивалентны и могут при употреблении заменяться одна другой.

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

(1)    [ALL) ZERO, [ALL] ZEROES (|BCE) НУЛЬ, (ВСЕ] НУЛИ) представляют числовое значение 0 или одну или более литер О из набора литер машины;

(2)    [ALLJ SPACE, (ALL) SPACES ([ВСЕ] ПРОБЕЛ. ГВСЕ] ПРОБЕЛЫ) представляют одну или несколько литер пробела из набора литер машины;

(3) [ALL] HIGH-VALUE, [ALL] HIGH-VALUES <[BCF.| НАИБОЛЬШЕЕ-ЗНАЧЕНИЕ, [ВСЕ] НАИБОЛЬШИЕ ЗНАЧЕНИЯ) — везде, за исключением параграфа SPECIAL-NAMES (СПЕЦИАЛБНЫЕ-ИМЕНА), представляют одну или несколько литер, имеющих наибольшую порядковую позицию в программной основной последовательности;

(4)    [ALL] LOW-VALUE, [ALL] LOW-VALUES ([ВСЕ1 МАИ-МЕНЬШЕЕЗНАЧЕНИЕ, [ВСЕ] НАИМЕНЬШИЕ-ЗНАЧЕНИЯ) — везде, за исключением параграфа SPECIAL-NAMES (СПЕ-ЦИАЛБНЫЕ-ИМЕНА). представляют одну или несколько литер, имеющих наименьшею порядковую позицию в программной основной последовательности;

137

Страница 139

С. 138 ГОСТ 22558--'89

(5)    (ALL] QUOTE,;;(ALL) QUOTES <(BCE) КАВЫЧКА, [BCE] КАВЫЧКИ) представляет одну или более литер. Слова QUOTE, QUOTES (КАВЫЧКА. КАВЫЧКИ) не могут использоваться вместо литер кавычек в исходной программе для ограничения нечислового литерала. -Например.: QUOTE ABC QUOTE (КАВЫЧКА ABC КАВЫЧКА) не является правильным представлением нечислового литерала «АВС»;

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

(7)    [ALL] символическая-литера ([ВСЕ] символическая литера) представляет одну или несколько литер, определяемых как значение этой символической литеры в фразе SYMBOLIC CHARACTERS (СИМВОЛИЧЕСКАЯ ЛИТЕРА) параграфа SPECIAL NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) (ч. 6. п. 4.5).

Когда стандартная константа представляет собой строку из одной или нескольких литер, длина такой строки определяется компилятором из контекста согласно следующим правилам:

(1)    когда стандартная константа указана в фразе VALUE (ЗНАЧЕНИЕ) или когда стандартной константе сопоставляется другое данное, например, в случае перемещения или сравнения с некоторым данным, строка литер, представленная стандартной константой, повторяется литера за литерой вправо до тех пор, пока результирующая строка не станет’равной или большей по размеру (в литерах) соответствующему данному.

Затем результирующая строка усекается справа до размера (в литерах) соответствующего данного. Такое повторение выполняется независимо от фразы JUSTIFIED (СДВИНУТО), относящейся к этому данному.

(2)    когда стандартная константа, 'отличная от ALL литерал (ВСЕ литерал), не сопоставляется с другим данным, например, в случае, когда она появляется в операторах DISPLAY (ВЫДАТЬ), STOP (ОСТАНОВИТЬ), STRING (СОБРАТЬ) или UNSTRING (РАЗОБРАТЬ), ее длина равна длине строки в одну литеру;

(3)    когда стандартная константа ALL литерал (ВСЕ литерал) не сопоставляется с другим данным, ее длина равна длине литерала.

Стандартная константа может использоваться всюду в форматах вместо литерала, за следующим исключением:

(1)    вместо числового литерала разрешается использовать только стандартную константу ZERO, ZEROS, ZEROES (НУЛЬ. НУЛИ);

(2)    сопоставление стандартной константы ALL литерал (ВСЕ литерал) при длине литерала больше одной литеры с числовым

Страница 140

ГОСТ 22558—S9 С. 139

или числовым редактируемым данным рассматривается в настоящем стандарте как устаревшее средство. При следующем пересмотре стандарта оно будет исключено;

(3) когда стандартная константа используется вместо литерала во фразе ALL литерал (ВСЕ литерал), слово ALL (ВСЕ) избыточно и используется только для удобочитаемости.

За исключением параграфа SPECIAL-NAMES (СПЕЦИАЛЬ-НЫЕ-ИМЕНА), в исходной программе, где используются стандартные константы HIGH-VALUE (НАИБОЛЫНЕЕ-ЗНАЧЕИИЕ) н LOW-VALUE (НАИМЕНЬШЕЕ-ЗНАЧЕНИЕ),    действительные

литеры, соотнесенные с каждой стандартной константой, зависят or определенного программного алфавита, (ч. 6, пп. 4.4.1, 4.5).

Каждое зарезервированное слово, которое используется для обращения к значению стандартной константы, является отдельной строкой литер, за исключением конструкций, использующих слово ALL (ВСЕ), таких как ALL литерал (ВСЕ литерал), ALL SPACES (ВСЕ ПРОБЕЛЫ) н т. п., которые состоят из двух отдельных строк литер.

4.2.2.3.    Строка литер шаблона

Строка литер шаблона представляется определенной комбинацией набора лнтер Кобола, используемых в качестве символов, и валютным символом. Объяснение строки литер шаблона и правила, управляющие шаблоном, приведены ниже (ч. 6. и. 5.9).

Любая литера пунктуации, используемая в строке литер шаблона. рассматривается не как знак пунктуации, а как символ спецификации строки литер шаблона.

4.2.2 4. Статья-комментарий

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

4.3.    Понятие машинно-независимого описании данного

Чтобы сделать данные максимально машинно-независимыми, особенности нлп свойства данных описываются по отношению к стандартному формату' данного, а не к формату, ориентированному на оборудование. Этот стандартный формат данного ориентирован га общие применения в обработке данных и использует десятичную систему для представления чисел (независимо от основания системы счисления, используемой в машине) и остальные литеры набора литер Кобола для изображения нечисловых данных.

4.3.1. Пон яти е логической записи

Чтобы отделить логические характеристики данных от физических характеристик среды памяти данных, используются опреде-

Страница 141

С 140 ГОСТ 22558-89

ленные специальные фразы или набор фраз, рассматриваемые ниже.

4.3.1.1.    Физические характеристики файла

Физические характеристики файла относятся к представлению данных на вводе или выводе и включают такие особенности как:

(1)    группирование логических записей в пределах физических границ среды файла*

(2)    средства, с помощью которых файл может быть идентифицирован.

4.3.1.2.    Логические характеристики файла

Логические характеристики файла представлены явным определением каждой логической единицы в самом файле. В Кобол-программе оператор ввода и вывода обращается к одной логической записи.

Важно отметить различие между физической и логической записями. Логическая запись в Коболе — это порция связанной информации, однозначно идентифицируемой и обрабатываемой как единое целое.

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

Логическая запись может содержаться внутри одной физической записи или несколько логических записей могут содержаться внутри одной физической записи; в случае файлов массовой памяти логическая запись может содержаться в нескольких физических записях. Во входном языке имеются несколько методов для описания взаимосвязи логических и физических записей. После установления взаимосвязи управление доступом к логической записи, связанной с физической записью, обеспечивается взаимодействием объектной программы с предоставляемыми реализацией оборудованием и системами программного обеспечения. В этом документе ссылка на запись означает ссылку на логическую запись. если специально не оговорен термин «физическая запись».

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

При занесении логической записи или извлечении ее из физической записи выполняются все преобразования, требуемые указанной фразой CODF.-SET (АЛФАВИТ). При необходимости добавляются или удаляются литеры заполнители. Ни одна из фраз, используемых для описания данных в логической записи, не влияет на эти преобразования.

140

Страница 142

ГОСТ 22558-М С 141

4.3.1.3. Понятие записи

Описание записи состоит из ряда статей описания данных, которые описывают особенности отдельной записи. Каждая статья описания данных состоит из номера уровня, за которым следует имя, если оно требуется, и далее, при необходимости, следует ряд независимых фраз.

4.3.2. Понятие уровня

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

Неделимые составляющие записи называются элементарными данными; соответственно запись состоит из последовательности элементарных данных, либо сама запись является элементарным данным.

Для обращения к ряду элементарных данных последние объединяются в группы или групповые данные. Каждая группа представляет названную последовательность, включающую одно или более элементарных данных. Группы, в свою очередь, могут быть объединены в группы из двух или нескольких групп и т. д. Таким образом, элементарное данное может принадлежать более чем одной группе.

4.3.2.1. Номера уровней

Система номеров уровней задает организацию элементарных данных или групп данных. Записи наиболее объемлющие данные, им присвоен номер уровня 01. Менее объемлющим данным присваиваются численно большие (не обязательно последовательные) номера уровней, не превосходящие 49. Имеются специальные номера уровней 66. 77, 88. которые являются исключением из этого правила. Каждому используемому номеру уровня в исходной программе соответствует отдельная статья.

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

Имеется три типа статей, для которых понятие уровня не имеет силы:

(1)    статьи, описывающие элементарные данные или группы, вводимые фразой RENAMES (ПЕРЕИМЕНОВЫВАЕТ);

(2)    статьи, описывающие несвязанные данные в секциях рабочей памяти и связи;

141

Страница 143

С. 145 ГОСТ 225S8-S9

(3) статьи, которые описывают имена условий.

Данным, описанным фразой RENAMES (ПЕРЕИМЕНОВЫВАЕТ) с целью перегруппировки данных, присвоен специальный номер уровня 66.

Несвязанным данным, которые не «вляются подразделением: других данных и сами не подразделяются, присвоен специальный номер уровня 77.

Статьям, которые описывают имена условий, соответствующие отдельным значениям условных переменных, присвоен специальный номер уровня 88.

4.3.3.    П о н я т н е класса данного

Пять категорий данных (ч. 6, п. 5.9) сгруппированы в три класса: буквенный, числовой и буквенно-цифровой. Для буквенных и числовых данных понятия класс и категория являются синонимами. Буквенно-цифровой класс включает категории буквенно-цифровую редактируемую, числовую редактируемую и буквенно-цифровую (без редактирования). Каждое элементарное данное принадлежит одному из классов и одной из категорий. Групповые данные обрабатываются как буквенно-цифровые данные, независимо от класса элементарных данных, на которые подразделяете» это групповое данное. Таблица показывает отношение между классами и категориями данных.

4.3.4.    Выбор представления литер п основании системы счисления

Значение числового данного может быть представлено в нескольких формах, таких как двоичная или десятичная, в зависимости от оборудования. Кроме того, имеется несколько способов представления десятичных чисел. Так как зти представления являются в действительности комбинациями битов, они обычно называются двоично-кодированной десятичной формой. Выбор основания системы счисления обычно зависит от арифметических возможностей машины. Если допустима более чем одна арифметическая форма, то выбранная форма указывается фразой об использовании. Двоично-кодированная десятичная форма используете* также для представления литер и символов, которые являются буквенно-цифровыми данными. Выбор надлежащей двоично-кодированной буквенно-цифровой или двоично-кодированной десятичной1 формы зависит от возможностей машины и ее внешней среды.

Когда ЭВМ обеспечивает несколько значений представления' данных, должен быть использован стандартный формат данных, если описание данного не оговаривает противного. Если как внешняя среда, так и машина допускают более чем одну форму представления или если внешняя среда, соответствующая данному, отсутствует. выбор оговаривается во фразе об использовании, фразе' PICTURE (ШАБЛОН) и других фразах описания данных. Каж-

14.2

Страница 144

ГОСТ 22559—89 С. М3

цая реализация предоставляет полное объяснение возможных форм представления для ЭВМ. на которой она реализует Кобол. Метод выбора подходящей формы представления данного, используемый реализацией, позволяет программисту предвидеть н (Или) управлять этим выбором.

Диммсс

КЛ«<

haiervfHH

Элементарное

Буквенный

Буквенная

Числовой

Числовая

Буквенно-цифровой

Числовая редактируемая, буквенно-цифровая рсдак тируемая. буквенно-цифровая

1 !«■ *.'*■ мен тарное ■(групповое)

Кукигнно-инфровой

Буквенная, числовая, числовая редактируемая, буквенно-цифровая редактируемая, буквенно-цифровая

:|. Под размером элементарного данного или группы данных понимается число литер в представлении данного в стандартном формате данных. Выделение данных и особенности использования могут привести к различию между этим размером и действительным •числом литер, необходимых для внутреннего представления.

4.3.5. Л л ге б р а и че с к и е знаки . Алгебраические знаки разделяются на две категории: знак чнс* л а* который относится к числовому данному и числовому литералу со знаком, и знак редактирования, который появляется в редактирующей фразе для установления знака данного.

, Фраза SIGN (ЗНАК) позволяет программисту задать представление знака числа. Эта фраза необязательна; если она не используется, представление знака числа определяется реализацией.

Редактирующие знаки вставляются в данное посредством использования символов фразы PICTURE (ШАБЛОН), управляемых знаком.

' 4.3.6. Ста н д а р т н ы е правила выравнивания • Стандартные правила для расположения значения в поле эле-ментарного данного зависят от категории принимающего поля. Эго следующие правила:

11) если принимающее паче описано как числовое, то: а) данное выравнивается по десятичной точке и помещается в принимающее поле с дополнением нулями или усечением при необходимости на каждом нз его концов;

143

Страница 145

С 144 ГОСТ 22558-8 J

б) когда подразумеваемая десятичная точка явно не задана, данное рассматривается так. как если бы оно имело подразумеваемую десятичную точку, расположенную непосредственно за ее самой правой литерой, и было выровнено так, как указано выше;

(2)    если принимающее данное является числовым редактируемым данным, то пересылаемое данное выравнивается по десятичной точке и дополняется нулями или усекается на каждом из концов. как указано позициями литер принимающего данного; кроме того, если это требуется редактированием, замещаются ведущие нули;

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

Если задана фраза JUSTIFIED (СДВИНУТО) для принимающего данного, перечисленные стандартные правила изменяются и соответствии с описанием для фразы JUSTIFIED (СДВИНУТО) (ч. 6, п. 5.6).

4.3.7. Выравнивание данного для повышения эффективности объектного кода

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

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

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

Выделение может достигаться двумя путями:

(1)    применением фразы SYNCHRONIZED (ВЫДЕЛЕНО);

(2)    соответствующей естественным границам организацией данных без использования фразы SYNCHRONIZED (ВЫДЕЛЕНО).

Страница 146

ГОСТ 22558-89 С 145

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

•1.3.8. Однозначность ссылок

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

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

Когда одно и то же имя используется в отдельных программах для двух или более появлений ресурсов одного и того же типа и когда само по себе уточнение не позволяет в одной из этих программ отличить два идентично названных ресурса, тогда применяются специальные соглашения, ограничивающие область действия имен. Эти соглашения гарантируют, что ресурсы идентифицированы так, как описано в программе, содержащей ссылку (ч. 10, п. 1.3.8).

Если это не оговорено правилами для оператора, любое индексирование и модификация ссылки производятся только один раз как первая операция при выполнении оператора.

4.3.8.1. Уточнение

Каждое определенное пользователем имя, явно используемое в Кобол-программе, должно быть однозначным в силу одного иа перечисленных ниже обстоятельств:

(1)    никакое другое имя не имеет идентичного написания;

(2)    имя однозначно в контексте фразы REDEFINES (ПЕРЕОПРЕДЕЛЯЕТ) (ч.б. п. 5.10);

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

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

14Г>

Страница 147

С. 146 ГОСТ 22558-89

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

(4) программа содержится в другой программе либо содержит другую программу( ч. 10. п. 1.3.8).

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

Общими форматами для уточнения являются:

Формат 1

{имя-1 имя

имя-данного-2}..

[ имя-файла-1 ИЗ . имя-комму-I никации-1

Формат 2


имя-параграфа-1    имя-секции-!


t'

нмя-параграфа-1 113 имя секции-1 Формат 3

имя-текста-1 ИЗ имя библиотеки-1

146

Страница 148

ГОСТ 22Ш-89 С М7

Формат 4

(IN 1

LINAGE-COUNTER (йр j имя файла-2

СЧЕТЧИК-ВЕРСТКИ ИЗ имя-файла-2 Формат 5

I PAGE-COUNTER ) jlN I jl-INE-COUNTER f |pFf имя-отчета-1

|СЧЕТЧИК-СТРАНИЦ |

|СЧЕТЧИК-СТРОК | 115 имя-отчета

Формат 6

имя-данного-3

QpJ и ми-отчета-2


[ИЗ имя-данного-4 [ИЗ имя-отчета-2]

имя-да н ного-3

| ИЗ имя отчета-2

Правила уточнения:

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

(2)    Ими может уточняться даже тогда, когда нет необходимости в уточнении; если имеется несколько комбинаций уточнителей, обеспечивающих однозначность, использоваться может любая иа таких комбинаций.

(3)    IN и OF являются логическими эквивалентами.

(4)    В формате 1 уточнитель должен быть именем, относящимся к индикатору уровня, или именем группы, в которую входит уточняемое данное, или именем условной переменной, связанной с уточняемым именем-условия. Уточнители указываются в порядке последовательного нарастания уровней иерархии.

(5)    В формате 1 нмя-данного-1 или нмя-данного-2 может быть нменем-записн.

(6)    Если имеется явная ссылка на имя параграфа, то имя параграфа не должно дублироваться внутри секции. Когда имя параграфа уточняется именем секции, слово SECTION (СЕКЦИЯ) опускается. Имя параграфа не нужно уточнять, если к нему обращаются внутри той же секции. На имя параграфа или имя сек-

147-

Страница 149

С. N8 ГОСТ 22558 --89

лип. появляющееся в программе, нельзя ссылаться ид любой другой программы.

(7)    Если во время компиляции компилятору доступна более чем одна библиотека Кобола, имя текста должно уточняться при каждом обращении к нему.

(8)    Если в исходной программе имеется несколько статей описания файла, содержащих фразу LINAGE (ВЕРСТКА). LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) должен уточняться каждый раз при обращении к нему.

(9)    Если в исходной программе определено несколько статей описания отчета, LINE-COUNTER (СЧЕТЧИК-СТРОК) должен быть уточнен при каждом обращении к нему в разделе процедур. В секции отчетов неуточненная ссылка на LINE-COUNTER (СЧЁТЧИК-СТРОК) неявно уточнена именем отчета, в статье описания которого имеется эта ссылка. При обращении к счетчику строк раз ных отчетов. LINE-COUNTER (СЧЕТЧИК-СТРОК) должен явно уточняться соответствующим именем отчета

(10)    Если в исходной программе определено несколько статей описания отчета, PAGE-COUNTER (СЧЕТЧИК-СТРАНИЦ) должен быть уточнен при каждом обращении к нему в разделе процедур. В секции отчетов неуточненная ссылка на PAGE-COUNTER (СЧЕТЧИК СТРАНИЦ) неявно уточнена именем отчета, в статье описания которого имеется эта ссылка. При обращении к счетчику страниц разных отчетов PAGE-COUNTER (СЧЕТЧИК-СТРАНИЦ) должен явно уточняться соответствующим именем отчета.

4.3.8.2. Индексирование

4.3.8.2.1.    Назначение

Индексы используются при обращении к отдельному элементу из списка или таблицы однотипных элементов, которым не поставлены в соответствие индивидуальные имена данных (ч. 6, п. 5.8).

4.3.8.2.2. О 6 щ и й    формат

[{-*-) целое 2] [{=:} целое-3]

4.3.8.2.3. Синтаксические правила

(I) Статья описания данного, содержащая нмя-данного-1 или имя-даиного, соотнесенное имени-условия-1, должна содержать фразу OCCURS (ПОВТОРЯЕТСЯ) или должна подчиняться статье описания данного, содержащей фразу OCCURS (ПОВТОРЯ-

ЕТСЯ).

(2) За исключением случаев, указанных в синтаксическом правиле (4), при обращении к табличному элементу количество индексов должно равняться числу фраз OCCURS (ПОВТОРЯЕТСЯ) в описании данного табличного элемента. При использовании ие-

Страница 150

ГОСТ 22536-89 С. 149

скольких индексов они записываются в порядке от старшего к младшим уровням иерархии таблицы.

(3)    Имя-индекса-1 должно соответствовать статье описания дан-лого в иерархии таблицы, содержащей фразу INDEXED (ИНДЕКСИРУЕТСЯ), определяющую это имя-индекса.

(4)    При каждом обращении к табличному элементу должно использоваться индексирование, за исключением следующих случаев:

а) в операторе USE FOR DEBUGGING (ИСПОЛЬЗОВАТЬ ДЛЯ ОТЛАДКИ);

• б) в качестве субъекта в операторе SEARCH (ИСКАТЬ);

в)    во фразе REDEFINES (ПЕРЕОПРЕДЕЛЯЕТ);

г)    в варианте ASCENDING/DESCENDING KEY IS (ПО ВОЗРАСТАНИЮ/УБЫВАНИЮ КЛЮЧА) фразы OCCURS (ПОВТОРЯЕТСЯ).

(5)    Имя-даиного-2 может уточняться и должно быть числовым -элементарным данным, представляющим целое.

(6)    Целое-1 может быть со знаком; знак должен быть только положительным.

4.3.8.2.4. Общие правила

(1)    Значение индекса должно быть положительным целым Наи

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

отдельном случае равен максимальному числу повторений данного, указанному фразой OCCURS (ПОВТОРЯЕТСЯ).

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

(3)    Значение имени-индекса-1 должно устанавливаться до его использования в качестве индекса. Начальное значение имени-индекса может быть задано оператором PERFORM (ВЫПОЛНИТЬ) с фразой VARYING (МЕНЯЯ); оператором SEARCH (ИСКАТЬ) с фразой ALL (ОСОБО) или оператором SET (УСТАНОВИТЬ). Значение имени-индекса может изменяться только операторами PERFORM (ВЫПОЛНИТЬ). SEARCH (ИСКАТЬ) или SET (УСТАНОВИТЬ).

(4)    Если указано целое-2 или целое-3, значение индекса определяется как номер вхождения, представленный значением име-ш1-индекса-1, либо значением данного, указанного именем-данно-го-2, увеличенным на значение целого-2 или целого-3 (когда указан знак арифметической операции -г) или уменьшенным на значение целого-2 или цслого-3 (когда указан знак арифметической опе-•оации —).

149

Страница 151

С. 150 ГОСТ 22558 —8Э

4.3.8.3. Модификация ссылки

4.3.8.3.1.    Назначение

Модификация ссылки определяет данное указанием его самоЛ левой позиции литеры и длины данного.

4.3.8.3.2.    Общий формат

нмя-данного-1 (позиция-самой-леной-литеры: [длина])

4.3.8.3.3.    Синтаксические правила

(1)    Ими-данного-1 должно быть именем данного, статья описания которого содержит фразу об использовании USAGE IS DISPLAY «ДЛЯ ВЫДАЧИ).

(2)    Позиция самой ледой литеры и длина должны быть ариф-метнческнми выражениями.

(3)    Если особо не оговорено, модификация ссылки допустима, везде, где разрешен идентификатор соотнесенный данному, принадлежащему к буквенно-цифровому классу.

(4)    Имя-данного-1 может быть уточнено или индексировано.

4.3.8.3.4.    Общие правила

(1)    Каждой литере данного, соотнесенного именн-данного-1,. приписывается порядковый номер, который равен 1 для самой левой позиции и увеличивается на единицу для каждой следующей, позиции вплоть до самой правой позиции. Если статья описания данного для нмснн-данного-I содержит фразу SIGN IS SEPARATE, (ЗНАК ОТДЕЛЬНО), позиции знака приписывается порядковый} номер в этом данном.

(2)    Если данное, соотнесенное нмени-данного-I, описано как: числовое, числовое редактируемое, буквенное или буквенно-цифровое редактируемое, над ним производятся действия по модификации ссылок, как если бы оно было переопределено как буквенно-цифровое данное того же размера, что и данное, соотнесенное имени-данного-!.

(3)    .Модификация ссылки для операнда выполняется по следующим правилам:

а)    если для операнда указано индексирование, модификация, ссылки производится сразу же после вычисления индексов;

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

(4)    Модификация ссылки создает уникальное данное, являющееся подстрокой данного, соотнесенного имени-данного-1. Это данное определяется последующим правилам:

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

150

Страница 152

ГОСТ 22M8-8S С 151

«ли равное количеству литер в данном, соотнесенном нменн-данно-то-1;

б) вычисление длины определяет размер данного, которое будет использовано в операции. Результатом вычисления длины должно быть положительное целое число, не равное нулю. Сумма позиции-самой-левой-литеры и длины минус единица должна быть меньше или равна количеству литер в данном, соотнесенном нмени-данно-то-1.

Если длина не указана, создаваемое модификацией ссылки данное распространяется от позиции-самой-левой-лнтеры (включая •ее) и до самой правой литеры (тоже включая ее) данного, соотнесенного нменн-данпого-1.

(4) Создаваемое модификацией ссылки данное рассматривает-<я как элементарное данное без фразы JUSTIFIED (СДВИНУТО). Оно относится к тому же классу и категории, что и данное, •соотнесенное имени-данного-1, учитывая то обстоятельство, что класс числовой, числовой редактируемый и буквенно-цифровой редактируемый рассматриваются как класс и категория буквенно-(цифровые.

4.3.8.4. Идентификатор

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

Общий формат идентификатора:

имя-данного-1

нмя-данного-2

I ({индекс)... )1 [(позиция-самой-левой-литеры: (длина])]

имя-данного-1 [ИЗ нмя-данного-2]...

[((индекс)...)] ((позиция-самой-левой-лнтеры: [длина])]

4 .’3.8.5. Имя условия

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

151

Страница 153

С. 152 ГОСТ 22558-89

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

Если ссылки на условную переменную требуют индексирования. то ссылки на любое из ее имей условия требуют той же комбинации индексов.

Формат н ограничения на совместное использование уточнения н индексирования имен-условий в точности совпадают с форматов и ограничениями для идентификатора, при этом нмя-даниого-1 нужно заменить на имя-условия-1.

В обшем формате и дальнейшем тексте «имя-условия» обозна-• ает уточненное или индексированное имя условия, если это необходимо.

4.4. Явные и неявные спецификации

Имеется четыре типа явных и неявных определений, встречающихся в исходной Кобол-программе:

(1)    явные и неявные обращения (ссылки) к данным в разделе лэоиедур;

(2)    явные и неявные передачи управления;

(3)    явные и неявные свойства;

(4)    явные и неявные ограничители области действия.

4.4.1.    Явные и неявные обращения к данным в-разделе процедур

Исходная Кобол-программа может явно или неявно обращаться к данным в операторах раздела процедур. Явное обращение имеет место в том случае, когда имя данного, к которому происходит обращение, записывается в операторе раздела процед\р или копируется в разделе процедур с помощью оператора COPY (КОПИРОВАТЬ). Неявное обращение имеет место в том случае, когда оператор раздела процедур обращается к данному без указания его имени. Неявное обращение имеет место также во время выполнения оператора PERFORM (ВЫПОЛНИТЬ), когда индекс или данное, представленное именем индекса или идентификатором во фразах VARYING. AFTER, UNTIL (МЕНЯЯ. ЗАТЕМ. ДО), устанавливаются в начало, изменяются или вычисляются механизмом управления, относящимся к этому оператору PERFORM (ВЫПОЛНИТЬ). Такое неявное обращение имеет место только в том случае. когда данное участвует в выполнении оператора.

4.4.2.    Явные и неявные передачи управления

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

Страница 154

ГОСТ 22558-89 с 153

давление. Передача управления от оператора к оператору может происходить без явного указания в операторах раздела процедур; в этом случае она является неявной передачей управления.

Язык Кобол обеспечивает явные и неявные средства передачи управления.

В дополнение к неявной передаче управления в последовательности операторов, неявная передача управления имеет место к toi-да, когда нормальный ход выполнения операторов меняется без выполнения оператора ветвления процедуры. Кобол обеспечивает следующие типы неявного изменения управления, прерывающие передачу управления от оператора к оператору:

(1)    если параграф выполняется под управлением другого оператора (например. PERFORM (ВЫПОЛНИТЬ). USE (ИСПОЛЬЗОВАТЬ), SORT (СОРТИРОВАТЬ) и MERGE (СЛИТЬ)) и этот параграф является последним в области управляющего оператора, тогда неявная передача управления происходит от последнего оператора в параграфе к механизму управления последнего выполняемого управляющего оператора. Дальше, если параграф, выполняемый под управлением оператора PERFORM (ВЫПОЛНИТЬ), является первым параграфом в области действия этого оператора PERFORM (ВЫПОЛНИТЬ), то неявная передача управления имеет место между механизмом управления, относящимся к этому оператору, и первым оператором в этом параграфе при каждой итерации выполнения параграфа;

(2)    при выполнении оператора SORT (СОРТИРОВАТЬ) и MERGE (СЛИТЬ) происходит неявная передача управления к соответствующей процедуре ввода и вывода;

(3)    при выполнении оператора Кобола, приводящего к выполнению декларативной секции, происходит неявная передача управления к этой секции. Заметим, что другая неявная передача управления происходит после выполнения декларативной секции, как указано выше (пункт (1)).

Явная передача управления состоит в изменении механизма неявной передачи посредством оператора ветвления процедуры или условного оператора. Явная передача управления может быть вызвана только в результате выполнении оператора ветвления процедуры или условного оператора. Выполнение оператора ветвления процедуры ALTER (ИЗМЕНИТЬ) само по себе не осуществляет явной передачи управления, но влияет на пее при выполнении соответствующего оператора GO ТО (ПЕРЕЙТИ). Оператор ветвления EXIT PROGRAM (ВЫЙТИ ИЗ ПРОГРАММЫ) приводит к явной передаче управления только при выполнении этого оператора в вызванной программе.

В этом документе термин «следующий выполнимый оператор» используется для обращения к следующему оператору Кобо-

151

Страница 155

С. 154 ГОСТ 22538- 89

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

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

(1)    последний оператор в декларативной секции, когда содержащий его параграф не выполняется под управлением некоторого другого оператора Кобола;

(2)    последний оператор н декларативной секции, когда оператор, находящийся в области активного оператора PERFORM (ВЫПОЛНИТЬ), выполняется в другой секции и этот последний оператор декларативной секции не является в то же время последним оператором процедуры, которая явлиется выходом из активного оператора PERFORM (ВЫПОЛНИТЬ);

(3)    последний оператор в программе, когда содержащий его параграф не выполняется под управлением некоторого другого оператора Кобола в этой программе;

(4)    оператор STOP RUN (ОСТАНОВИТЬ РАБОТУ) или EXIT PROGRAM (ВЫЙТИ ИЗ ПРОГРАММЫ), который передает управление за пределы Кобол-программы;

(5)    заголовок конца программы.

Когда нет следующего выполнимого оператора и управление не передается за пределы Кобол-программы, передача управления в программе не определена. Если выполнение программы активировано в недекларативной части процедур другой программы посредством оператора CALL (ВЫЗВАТЬ), выполняется неявный оператор EXIT PROGRAM (ВЫЙТИ ИЗ ПРОГРАММЫ).

4.4.3.    Явные и неявные свойства

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

Например, использование данного нет необходимости задавать в случае, когда его использование DISPLAY (ДЛЯ ВЫДАЧИ).

4.4.4.    Явные и неявные ограничители области действия

Ограничители области действия служат для указания границ области действия определенных операторов раздела процедур (п. G.4.2.4 настоящей части). Ограничители области действия бывают двух типов: явные и неявные.

Явными ограничителями области действия являются следующие:

END-ADD (КОНЕЦСЛОЖИТЬ)

END-CALL (КОНЕЦ ВЫЗВАТЬ)

END COMPUTE (КОНЕЦ-ВЫЧИСЛИТЬ)

154

Страница 156

ГОСТ 2255# 89 г. 1*5

:end-delete (конец-уд ал ить)

ENDD1VIDE (КОНЕЦ РАЗДЕЛИТЬ)

END-EVALUATF. (КОНЕЦ-ОЦЕНИТЫ END-IF (КОНЕЦ-ЕСЛИ)

END-MUI.T1PLY (КОНЕЦ-УМНОЖИТЬ)

END PERFORM (КОНЕЦ-ВЫПОЛНИТЬ)

END-READ (КОНЕЦ-ЧИТАТЬ)

END-RECEIVE (КОНЕЦПОЛУЧИТЬ)

END-RETURN (КОНЕЦ-ВЕРНУТЬ)

END REWRITE (КОНЕЦ ОБНОВИТЬ)

END-SF-ARCH (КОНЕЦ ИСКАТЬ)

END-START (КОНЕЦ-ПОДВЕСТИ)

‘ END-STRING (КОНЕЦ-СОБРАТЬ)

END SUBTRACT (КОНЕЦ ОТНЯТЬ)

END UNSTRING (КОНЕЦ-РАЗОБРАТЬ)

END-WRITE (КОНЕЦ-ПИСАТЬ)

Неявными ограничителями области действия являются:

(1)    разделитель точка в конце любого предложения, которая заканчивает область действия всех предыдущих операторов, еще «не завершенных;

(2)    в любом операторе, содержащем другой оператор, следующая фраза внешнего оператора, находящаяся после внутреннего •оператора, завершает область действия любого незавершенного внутреннего оператора. Примерами таких фраз являются ELSE (ИНАЧЕ), WHEN (КОГДА). NOT AT END (НЕ В КОНЦЕ) 31 т. п.

4.5. Внешний переключатель

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

Состояние внешнего переключателя может быть опрошено проверкой имен-условий, связанных с этим переключателем. Соответствие имени-условия внешнему переключателю к соответствие указанного пользователем мнемонического-имени имени-реализации, именующему внешний переключатель, устанавливается в параграфе SPEC IA L - N AM Е S (СПЕЦИАЛЬНЫЕ-ИМЕНА) раздела оборудования (ч. 6. п. 4.5.1).

Реализация определяет область действия (программа, единица исполнения и т. п.) каждого внешнего переключателя и возмож-

Страница 157

С. 156 ГОСТ 22553-89

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

Состояние некоторых переключателей может изменяться оператором SET (УСТАНОВИТЬ) (ч. 6, п. 6.23).

5. ИСХОДНАЯ КО БОЛ-ПРО ГРАММА

5.1.    Введение

Исходная Кобол-программа — это синтаксически правильный набор операторов Кобола.

5.2 Организация

За исключением операторов COPY-* (КОПИРОВАТЬ) и REPLACE (ЗАМЕНИТЬ) и заголовка конца программы, операторы, статьи, параграфы и секции исходной Кобол-программы группируются в четыре раздела, расположенные друг за другом в следующем порядке:

1.    Раздел идентификации

2.    Раздел оборудования

3.    Раздел данных

4.    Раздел процедур.

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

5.3. Структура

Ниже приведен общий формат и порядок представления статей и операторов, в котором записывается исходная Кобол-программа.

5.3.1.    О б щ и й формат раздел-идентификации

f раздел-оборудовании |

(раздел-данных)

[раздел-процедур!

[заголовок-конца-прогрзммы]

6. РАЗДЕЛЫ

6.1.    Раздел идентификации

6. II. Общее описание

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

Страница 158

ГОСТ 22558-89 С IS7

б. 1.2.0 р г а н и з а ц и я

Заголовки параграфов определяют тип информации, содержащейся в каждом параграфе. Имя программы должно быть дано в первом параграфе PROGRAM-ID (ПРОГРАММА). Остальные параграфы необязательны и могут быгь включены в этот раздел по выбору пользователя в порядке, приведенном в формате ниже.

6.1.3. С т р у к т у р а

Ниже приведен формат параграфов раздела идентификации и определен порядок их следования в исходной программе.

6.1.3.1. Общий формат IDENTIFICATION DIVISION.

PROGRAM ID. имя-программы.

(AUTHOR, (статья-комментарий) . .. ]

(INSTALLATION, [статья комментарий]... ]

(DATE-WRITTEN, [статья-комментарий] .. . | (I)ATE-COMPIl.ED. [с%гья-комментарий] ... |

[SECURITY, (статья-комментарий) ... ]

РАЗДЕЛ ИДЕНГИФИКАЦИИ.

ПРОГРАММА, имя-программы.

(АВТОР, [статья-комментарий] ... ]

(ПРЕДПРИЯТИЕ, (статья-комментарий)... ] (ДАТА-НАПИСАНИЯ, [статья-комментарий]... J [ДАТА-ТРАНСЛЯЦИИ, [статья-комментарий] ... ] (ПОЛНОМОЧИЯ, [статья-комменгарнй]... )

6.2. Раздел оборудования

G.2.1.0 б щ е е описание

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

G.2.2. Организация

Раздел оборудования состоит из секции конфигурации и секции ввода-вывода.

Секции конфигурации характеризует исходную и рабочую машины. Эта секция разделена на три параграфа: параграф SOUR* CE-COMPUTER (ИСХОДНАЯ-МАШИНА), описывающий конфигурацию машины, на которой компилируегся исходная программа; параграф OBJECT COMPUTER (РАБОЧАЯ-МАШИНА), описывающий конфигурацию машины, на которой следует выполнять объектную * программу, и параграф SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ ИМЕНА), коюрый предусматривает средства

157

Страница 159

С. 15$ ГОСТ 12668-87

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

Секция ввода-вывода содержит информацию, необходимую для управления обработкой и передачей данных из внешней среды в объектную программу и обратно. Эта секция разделена на два параграфа. Параграф FILE-CONTROL (УПРАВЛЕПИЕ-ФАЙ-ЛАМЙ) называет файл и ставит его в соответствие внешней среде. Параграф I O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВО-ДОМ) определяет специальные методы управления, которые следует использовать в объектной программе.

6.2.3.    Структура

Ниже приводится общий формат секций и параграфов в разделе оборудования и определяется порядЛ представления их в исходной программе.

6.2.3.1. Общий формат ENVIRONMENT DIVISION.

[CONFIGURATION SECTION.

[SOURCE-COMPUTER. [ статья-исход ной ■ маши ны ] ]

[OBJECT-COMPUTER, [стзтья-объектной-машины j j [SPECIAL-NAMES. [статья-специалькых-имен]]] [INPUT-OUTPUT SECTION.

FILE-CONTROL. {статья-управлення-файлом)... [I-O-CONTROL. [статья-управления-вводом-выводом]]]

РАЗДЕЛ ОБОРУДОВАНИЯ.

[СЕКЦИЯ КОНФИГУРАЦИИ.

[ИСХОДНАЯ .МАШИНА, [статья-исходной-машины}]

[РАБОЧАЯ-МАШИНА, [статья-объектной-машины)] [СПЕЦИАЛЬНЫЕ-ИМЕНА. [статья-специальных-имен]]] [СЕКЦИЯ ВВОДА-ВЫВОДА.

УПРАВЛЕНИЕ ФАИЛАМИ. {статья управления-файлом)... [УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ. [статья-управления-вводом-выводом)] ]

6.3.    Раздел данных

6.3.1.Общий подход

Раздел данных описывает данные, которые объектная программа должна воспринимать как входные, обрабатывать, создавать и выдавать как выходные

.158

Страница 160

ГОСТ 22558-89 С. 159

6.3.2. Ф н з н ч е с к н е и логические аспекты описания дайных

6.3.2.1.    Организация раздела данных

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

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

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

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

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

Секция отчетов описывает содержание и формат подлежащих выдаче отчетов.

6.3 2.2. Структура раздела данных

Ниже приведен общий формат секций раздела данных и определен порядок их представления в исходной программе.

6.3.2.2.1.    Общий формат DATA DIVISION.

fFILP. SECTION.

статья описания-файла {статья-описания-записи}... статья-оиисания-сортнруемого-сливаемого-файла    .

{статья-описания-записи}...    ■    •    •    J

статья-описания файла отчетов

(WORKING-STORAGE SECTION.

|статья-описания-уровня*77 статья-описания-записи

...1

ДО

Страница 161

С. 160 ГОСТ 21558--яч [LINKAGE SECTION

статья описания-уровня-77 . статья-описапня-записи • • * •

1 СОМ \\ U NIС AT 1 ON SECTION.

[статья-опнсання-коммуникацнн {статья-опнсания-заинсн}... ]... j [REPORT SECTION'.

[статьяописанняотчета {статья-описання-группы-отчста}... ]... ]

РАЗДЕЛ ДАННЫХ.

[СЕКЦИЯ ФАЙЛОВ.

I статья-описания-файла {статья-описання-запнси}...

I статья-описания-сортируемого-сливаемогофайла I    {стагья-опнсання-запиен}...

1 статья описания файла-отчетов

[СЕКЦИЯ РАБОЧЕЙ-ПАМЯТИ.

[ сгатья-описания-уровня-77 I статья описания-записи [СЕКЦИЯ СВЯЗИ.

статья-описания-уровня-77 J статья-описання-запнси

[ СЕКЦИЯ КОММУН И К АЦИ И.

[статья-описапня-коммуникации [статья-описання-запнси]...]...J [СЕКЦИЯ ОТЧЕТОВ.

[статья-опнсання-отчета {статья-описання-группы-отчста}...]...[ 6.4. Раздел процедур

6.4.1.    О б in с с описание

Раздел процедур содержит деклара!ивы и процедуры.

6.4.1.1.    Декларотивы

Секции декларатнв должны быть сгруппированы в начале раздела процедур; нм предшествует ключевое слово DECLARATIVES (ДЕКЛАРАТИВЫ) и их заключают ключевые слова END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ) (ч. 7. п. 4.6; ч. 8, п. 4.8; ч. 9, п. 4.8; ч. 13, пп. 4.8, 4.9 и ч. 15, п. 3.2).

6.4.1.2.    Процедуры

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

Страница 162

ГОСТ 22558-89 С. 261

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

Секция состоит из заголовка секции, за которым следует нуль, один или несколько последовательно записанных параграфов. Секция заканчивается непосредственно перед следующей секцией или по окончании раздела процедур, или в декларативной части раздела процедур ключевыми словами END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ).

Параграф состоит из имени параграфа, за которым следует точка с пробелом и нуль, одно или несколько последовательно записанных предложений. Параграф оканчивается непосредственно перед следующим именем параграфа или именем секции, или по окончании раздела процедур, или в декларатнвах в разделе процедур ключевыми словами END DECLARATIVES (КОНЕЦ ДЕК-ЛАРАТИВ).

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

Оператор — синтаксически правильная комбинация слов, литералов и разделителей, начинающаяся глаголом языка Кобол.

Термин «идентификатор» определяется как слово или слова, необходимые для однозначности обращения к данному.

6.4.1.3.    Выполнение

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

6.4.1.4.    Структура раздела процедур

6.4.1.4.1.    Заголовок раздела процедур

Раздел процедур должен начинаться следующим заголовком: PROCEDURE DIVISION [USING {имя-данного-1}... ].

РАЗДЕЛ ПРОЦЕДУР [ИСПОЛЬЗУЯ {нмя-данного-1}... ].

6.4.1.4.2.    Структура тела раздела процедур

Тело раздела процедур должно <хм>тветствовать одному из следующих форматов:

Формат 1

DECLARATIVES.

(имя-секции SECTION [номер сегмента).

Оператор USE [имя-параграфа.

[предложение] ... ]

END DECLARATIVES.]

(имя-секции SECTION [номер-сегмента].

6 Зак. 25«

161

Страница 163

С. 162 ГОСТ 22558- 89

[имя-параграфа.

(предложение) ... 1    .

[ДЕКЛАРАТИВЫ.

{СЕКЦИЯ имя-секции [номер-сегмента].

Оператор ИСПОЛЬЗОВАТЬ [имя-параграфа.

(предложение)

КОНЕЦ ДЕКЛАРАТИВ.)

(СЕКЦИЯ имя-секцни [номср-сегмента].

(имя-параграфа.

[предложение) ... ] ...}...

Формат 2 {имя-параграфа.

[предложение] ...)...

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

Имеется три типа предложений: повелительные, условные и предложения, управляющие компиляцией.

6.4.2.1.    Условные операторы, предложения и фразы

6.4.2.1.1.    Определение условного оператора Условный оператор указывает, что должно быть определен»

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

Условным оператором является один из следующих:

. а I    I    I    1    1    '    ■ •*> *-»    .    Л > ■ ГМ ■ < ■ га* Й V ■ >1    '<    •-<    г.    •    ■    .    М    п    п    О    .    .

(1)    оператор EVALUATE (ОЦЕНИТЬ), IF (ЕСЛИ), SEARCH (ИСКАТЬ) или RETURN (ВЕРНУТЬ);

(2)    оператор READ (ЧИТАТЬ) с фразой AT END (В КОНЦЕ), NOT AT END (НЕ В КОНЦЕ), INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) или NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА);

(3) оператор WRITE (ПИСАТЬ)

Г>ТЛ Г\1 ИМ П LTT7    П К/"\1 ? Л \ M/Vr I V 1

INVALID KEY

(ПРИ ОШИБКЕ КЛЮЧА), NOT INV/    (БЕЗ    ОШИБКИ

КЛЮЧА), END-OF-PAGF. (В КОНЦЕ СТРАНИЦЫ) или NOT END-OF-PAGE (НЕ В КОНЦЕ СТРАНИЦЫ);

(4)    операторы DELETE (УДАЛИТЬ), REWRITE (ОБНОВИТЬ) и START (ПОДВЕСТИ) с фразой INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) или NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА);

(5)    арифметические операторы ADD (СЛОЖИТЬ), COMPUTE (ВЫЧИСЛИТЬ). DIVIDE (РАЗДЕЛИТЬ), MULTIPLY (УМНОЖИТЬ), SUBTRACT (ОТНЯТЬ) с фразой ON SIZE ERROR (ПРИ ПЕРЕПОЛНЕНИИ) или NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ);

162

Страница 164

ГОСТ 22558-8» С. 163

(6)    оператор RECEIVE (ПОЛУЧИТЬ) с фразой NO DATA (НЕТ ДАННЫХ) или WITH DATA (ЕСТЬ ДАННЫЕ);

(7)    оператор STRING (СОБРАТЬ) или UNSTRING (РАЗОБРАТЬ) с фразой ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ) или NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ);

(8)    оператор CALL (ВЫЗВАТЬ) с фразой ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ), ON EXCEPTION (ПРИ ОШИБКЕ) или NOT ON EXCEPTION (БЕЗ ОШИБКИ).

6А.2Л.2. Определение условной фразы

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

Условной фразой является одна из следующих:

(1)    фраза AT END (В КОНЦЕ) или NOT AT END (НЕ В КОНЦЕ) в операторе READ (ЧИТАТЬ);

(2)    фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) или NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) в операторах DELETE (УДАЛИТЬ), READ (ЧИТАТЬ), REWRITE (ОБНОВИТЬ), START (ПОДВЕСТИ) или WRITE (ПИСАТЬ);

(3)    фраза END-OF-PAGE (В КОНЦЕ СТРАНИЦЫ) или NOT END-OF-PAGE (НЕ В КОНЦЕ СТРАНИЦЫ) в операторе WRITE {ПИСАТЬ);

(4)    фраза SIZE ERROR (ПРИ ПЕРЕПОЛНЕНИИ) или NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) в операторах ADD (СЛОЖИТЬ), COMPUTE (ВЫЧИСЛИТЬ). DIVIDE (РАЗДЕЛИТЬ). MULTIPLY (УМНОЖИТЬ) или SUBTRACT (ОТНЯТЬ);

(5)    фраза NO DATA (НЕТ ДАННЫХ) или WITH DATA (ЕСТЬ ДАННЫЕ) в операторе RECEIVE (ПОЛУЧИТЬ);

(6)    фраза ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ) или NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ) в операторе STRING (СОБРАТЬ) или UNSTRING (РАЗОБРАТЬ);

(7)    фраза ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ), ON EXCEPTION (ПРИ ОШИБКЕ) или NOT ON EXCEPTION (БЕЗ ОШИБКИ) в операторе CALL (ВЫЗВАТЬ).

6.4.2.1.3. Определение условного предложения

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

6.4.2.2. Операторы и предложения, управляющие компиляцией

6.4.2.2.I .Определение оператора, управляющего компиляцией

Оператор, управляющий компиляцией, состоит из глагола, управляющего компиляцией, и операндов. Глаголами, управляющими

Страница 165

С. 164 ГОСТ 22558-89

компиляцией, являются COPY (КОПИРОВАТЬ), REPLACE (ЗАМЕНИТЬ) и USE (ИСПОЛЬЗОВАТЬ) (ч. 12. пп. 2, 3; ч. 7, п. 4.6; ч. 8, п. 4.8; ч. 9, п. 4.8; ч. 13, п. 4.8; ч. 15, п. 3.2). Оператор, управляющий компиляцией, приводит к выполнению определенного действия во время компиляции.

6.4.2.2.2. Определение предложения, управляющего компиляцией

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

6.4.2.3. Повелительные операторы и повелительные предложения 6.4.2.З.1. Определение повелительного оператора

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

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

дующие-

ACCEPT

(ПРИНЯТЬ)

(1) ADD

(СЛОЖИТЬ)

ALTER

(ИЗМЕНИТЬ)

(7) CALL

(ВЫЗВАТЬ)

CANCEL

(ОСВОБОДИТЬ)

CLOSE

(ЗАКРЫТЬ)

(1) COMPUTE

(ВЫЧИСЛИТЬ)

CONTINUE

(ПРОДОЛЖИТЬ)

(2) DELETE

(УДАЛИТЬ)

DISABLE

(ЗАПРЕТИТЬ)

DISPLAY

(ВЫДАТЬ)

(1) DIVIDE

(РАЗДЕЛИТЬ)

ENABLE

(РАЗРЕШИТЬ)

EXIT

(ВЫЙТИ)

GENERATE

(ГЕНЕРИРОВАТЬ)

GO TO

(ПЕРЕЙТИ)

INITIALIZE

(ИНИЦИИРОВАТЬ)

INITIATE

(НАЧАТЬ)

INSPECT

(ПРОСМОТРЕТЬ)

MERGE

(СЛИТЬ)

MOVE

(ПОМЕСТИТЬ)

(1) MULTIPLY

(УМНОЖИТЬ)

OPEN

(ОТКРЫТЬ)

PERFORM

(ВЫПОЛНИТЬ)

I6t

Страница 166

ГОСТ 22558—89 С. 165

PURGE

(5)    READ (4) RECEIVE

(ОЧИСТИТЬ)

(ЧИТАТЬ)

(ПОЛУЧИТЬ)

(ПЕРЕДАТЬ)

(ОБНОВИТЬ)

(ПОСЛАТЬ)

(УСТАНОВИТЬ)

(СОРТИРОВАТЬ)

(ПОДВЕСТИ)

(ОСТАНОВИТЬ)

(СОБРАТЬ)

(ОТНЯТЬ)

(ПОДАВИТЬ)

(ЗАКОНЧИТЬ)

(РАЗОБРАТЬ)

(ПИСАТЬ)

RELEASE (2) REWRITE SEND SET SORT

(2)    START STOP

(3)    STRING (1) SUBTRACT

SUPPRESS TERMINATE (3) UNSTRING

(6)    WRITE

Цифры в скобках обозначают следующие варианты форматов операторов:

(1)—без    необязательных фраз ON SIZE ERROR (ПРИ ПЕРЕПОЛНЕНИИ) и NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ);

(2)    — без необязательных фраз INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) и NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА);

(3)    — без необязательных фраз ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ) и NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ);

(4)    — без необязательных фраз NO DATA (НЕТ ДАННЫХ) >1 WITH DATA (ЕСТЬ ДАННЫЕ);

(5)    — без необязательных фраз AT END (В КОНЦЕ) и NOT AT END (НЕ В КОНЦЕ), INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА). NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА);

(6)    — без необязательных фраз INVALID KEY (ПРИ ОШИБКЕ! КЛЮЧА). NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА), END-OF PAGE (В КОНЦЕ СТРАНИЦЫ), NOT AT END-OF-PAGE (НЕ В КОНЦЕ СТРАНИЦЫ);

(7)    - без необязательных фраз ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ), ON EXCEPTION (ПРИ ОШИБКЕ) и NOT ON EXCEPTION (БЕЗ ОШИБКИ).

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

6.4.2.3.2. Определение повелительного предложения

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

165

Страница 167

С. 166 ГОСТ 22558-89

6.4.2.4. Операторы с ограничителем области действия «Оператором с ограничителем области действия является оператор, включающий явный ограничитель области действия (см. п. 4.4.4 настоящей части).

6.4.3. О б л а с т ь действия операторов Ограничители области действия определяют область действия конкретных операторов раздела процедур. Операторы, включающие явные ограничители области действия, называются операторами с ограничителем области действия (см. пп. 4.4.4, 6.4.2.4 настоящей части). Область действия операторов, содержащихся в других операторах (вложенные операторы), может быть также неявно ограниченной.

Когда операторы вложены в другие операторы, в которых могут быть необязательные условные фразы, каждая необязательная условная фраза рассматривается, как если бы она была следующей фразой ближайшего предыдущего незавершенного оператора, с которым эта фраза могла бы быть связана, но с которым ни одна такая фраза еще не связана. Незавершенный оператор — это оператор, не имеющий заведомо явного или неявного завершения (см. п. 4.4.4 настоящей части).

7. ФОРМАТ ПРЕДСТАВЛЕНИЯ

7.1.    Общее описание

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

Правила простановки пробелов, приведенные при рассмотрении формата представления, имеют преимущество по отношению ко всем другим правилам для простановки пробелов.

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

7.2.    Описание формата представления

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

166

Страница 168

ГОСТ 22558-89 С. 157

Отметка

Отметка

Отметка

Отметка

Отметка

L

С

А

В

R

12 3 4 5 6

7

8 9 10 II

12 13...

Поле порядкового ио-

Поле-ин

дикатора

Поле А

Поле В

мера

Отметка L находится левее самой левой позиции -штеры в строке.

Отметка С находится между шестой и седьмой позициями литер в строке.

Отметка А находится между седьмой и восьмой позициями литер в строке.

Отметка В находится между одиннадцатой и двенадцатой позициями литер в строке.

Отметка R находится справа от самой правой позиции литеры в строке.

Поле порядкового номера занимает шесть позиций литер (1—6) и расположено между отметками L и С.

Поле индикатора занимает одну позицию литеры, начиная от отметки С.

Поле А занимает четыре позиции литеры, начиная от отметки А.

Поле В занимает конечное число позиций литер, оговорешиое реализацией, начиная от отметки В.

7.2.1.    Порядковые номера

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

7.2.2.    Продолжение строк

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

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

187

Страница 169

С 168 ГОСТ *2558—89

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

Если в поле индикатора строки дефис отсутствует, то считается, «то за последней литерой предыдущей строки следует пробел.

Обе литеры, составляющие разделитель «■“=», должны располагаться в одной строке.

7.2.3.    Строка пробелов

Строка пробелов — строка, в которой от отметки С до отметки R включительно находятся пробелы. Строка пробелов допустима в любом месте исходной программы (см. п. 7.2.2 настоящей части).

7.2.4.    Строки комментария

•Строка комментария — строка, содержащая литеру* или / в поле индикатора строк. Строка комментария допустима в любом месте исходной программы после заголовка раздела идентификации и о любом месте библиотечного текста Кобола. В поле А и в поле В этой строки может быть включена любая комбинация литер из набора литер машины. Звездочка или дробная черта и литеры в поле А и В воспроизводятся при распечатке, но служат только для документации и не проверяются на синтаксическую правильность. Литера / в пате индикатора строки вызывает печать комментария на следующей сгрзнице распечатки исходной программы; звездочка в поле индикатора строки вызывает печать комментарии на следующей доступной строке распечатки.

7.2.5.    Псевдотекст

Строка литер и ограничители, образующие псевдотекст, могут начинаться либо от отметки А, либо от отметки В. Однако, если имеется дефис в поле индикатора строки, которая следует за открывающим ограничителем псевдотекста, поле А этой строки должно быть заполнено пробелами и к формированию слов текста применяются обычные правила продолжения строк (см. п. 7.2.2 настоящей части).

7.3. Форматы раздела, секции, параграфа

7.3.1.Заголовок раздела

Заголовок раздела начинается в поле А.

7.3.2. 3 а г о л о в о к секции

Заголовок секции начинается в поле А.

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

168

Страница 170

ГОСТ 22558-89 С. 169

7.3.3. Заголовок параграфа, имя параграфа и параграф

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

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

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

Предложения или статьи параграфа могут быть продолжены и последующих строках (см. п. 7.2.2 настоящей части).

7.4. Статьи раздела данных

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

Имеется два типа статей раздела данных: начинающиеся с индикатора уровня и начинающиеся с номера уровня.

Индикатором уровня может быть любое из зарезервированных слов FD (ОФ). SD (ОС), CD (OK), RD (00).

В статьях раздела данных, которые начинаются с индикатора уровня, индикатор уровня начинается в поле А, за ним следует хо* тя бы один пробел и затем имя субъекта статьи и соответствующая описывающая информация.

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

Номером уровня может быть любое целое из следующего множества: 01, 02..... 49, 66, 77, 88. Номера уровня в диапазоне 0J,

02..... 09 записываются либо в виде одной цифры, либо в виде

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

В статьях описания данных, имеющих номера уровней 01 или 77, номер уровня начинается в поле А, за ним следует хотя бы один пробел, затем соответствующее имя записи или данного, если они определены, и соответствующая описывающая информация.

Страница 171

С. 170 ГОСТ 22558-89

Статьи описаний данных могут быть записаны с отступами по отношению к отметке А. Каждая новая статья описания данного может начинаться через любое число пробелов вправо от отметки А. за исключением статей описания данного с номером уровня 01 или 77, которые должны начинаться в поле А. Размер допустимого отступа вправо зависит от величины поля В. которая определяется реализацией. Статьи при выводе записываются с отступами только тогда, когда они записаны с отступами нз вводе. Запись с отступами не влияет на значимость номеров уровней.

7.5.    Декларативы

Никакой другой текст не должен появляться в той же строке, что н ключевое слово DECLARATIVES (ДЕКЛАРАТИВЫ) или ключевые слова END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ). которые обрамляют декларативную часть раздела процедур. Слова DECLARATIVES (ДЕКЛАРАТИВЫ) и END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ) должны начинаться в поле А, за ними должен следовать разделитель точка.

7.6.    Заголовок конца программы

Заголовок конца программы должен начинаться в поле А.

8. ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА КОБОЛА

ACCEPT

ACCESS

ADD

ADVANCING

AFTER

ALL

ALPHABET

ALPHABETIC

ALPHABETIC-LOWER

ALPHABETIC-UPPER

ALPHANUMERIC

ALPHANUMERIC-EDITED

ALSO

ALTER

ALTERNATE

AND

ANY

ARE

AREA

AREAS

ASCENDING

ASSIGN

AT

AUTHOR

BEFORE

BINARY

BLANK

BLOCK

BOTTOM

BY

CALL

CANCEL

CD

CF

CH

CHARACTER

CHARACTERS

CLASS

CLOCK-UN1TS

CLOSE

CODE

CODE-SET

COLLATING

COLUMN

COMMA

COMMON

COMMUNICATION


Страница 172

ГОСТ 22558-89 С.

COMP

EG I

COMPUTATIONAL

ELSE

COMPUTE

EMI

CONFIGURATION

ENABLE

CONTAINS

END

CONTENT

END-ADD

CONTINUE

END-CALL

CONTROL

END-COMPUTE

CONTROLS

END-DELETE

CONVERTING

END DIVIDE

COPY

END-EVALUATE

CORR

END-IF

CORRESPONDING

END-MULTIPLY

COUNT

END-OF PAGE

CURRENCY

END-PF.RFORM

DATA

END-READ

DATE

END-DECEIVE

DATE-COMPILED

END-RETURN

DATE-WRITTEN

END REWRITE

DAY

END-SEARCH

DAY-OF-WEEK

END-START

DE

END-STRING

DEBUG-CONTENTS

END SUBTRACT

DEBUG-ITEM

END-UNSTRING

DEBUG-LINE

END-WRITE

DEBUG-NAME

ENTER

DEBUG-SUB 1

ENVIRONMENT

DEBUG-SUB-2

EOP

DEBUG-SUB-3

EQUAL

DEBUGGING

ERROR

DECIMAL-POINT

ESI

DECLARATIVES

EVALUATE

DELETE

EVERY

DELIMITED

EXCEPTION

DELIMITER

EXIT

DEPENDING

EXTEND

DESCENDING

EXTERNAL

DESTINATION

DETAIL

FALSE

DISABLE

FD

DISPLAY

FILE

DIVIDE

FILE-CONTROL.

DIVISION

FILLER

DOWN

FINAL

DUPLICATES

FIRST

DYNAMIC

FOOTING

Страница 173

С. 172 ГОСТ 22558—S9

FOR

FROM

GENERATE

GIVING

GLOBAL

GO

GREATER

GROUP

HEADING

HIGH-VALUE

HIGH-VALUES

1-0

I-O-CONTROL

IDENTIFICATION

IF

IN

INDEX

INDEXED

INDICATE

INITIAL

INITIALIZE

INITIATE

INPUT

INPUT-OUTPUT

INSPECT

INSTALLATION

INTO

INVALID

IS

JUST

JUSTIFIED

KEY

LABEL

LAST

LEADING

LEFT

LENGTH

LESS

LIMIT

LIMITS

m

LINAGE

LINAGE-COUNTER

LINE

LINE-COUNTER

LINES

LINKAGE

LOCK

LOW-VALUE

LOW-VALUES

MEMORY

MERGE

MESSAGE

MODE

MODULES

MOVE

MULTIPLE

MULTIPLY

NATIVE

NEGATIVE

NEXT

NO

NOT

NUMBER

NUMERIC

NUMERIC-EDITED

OBJF.CT-COMPUTER

OCCURS

OF

OFF

OMITTED

ON

OPEN

OPTIONAL

OR

ORDER

ORGANIZATION

OTHER

OUTPUT

OVERFLOW

PACKED-DECIMAL

PADDING

PAGE


Страница 174

ГОСТ 22558-89 С. 173

PAGE-COUNTER

PERFORM

PF

RH

PIC

PICTURE

PLUS

POINTER

POSITION

POSITIVE

PRINTING

PROCEDURE

PROCEDURES

PROCEED

PROGRAM

PROGRAM-ID

PURGE

QUEUE

QUOTE

QUOTES

RANDOM

RD

READ

RECEIVE

RECORD

RECORDS

REDEFINES

RFFI

REFERENCE

REFERENCES

RELATIVE

RELEASE

REMAINDER

REMOVAL

RENAMES

REPLACE

REPLACING

REPORT

REPORTING

REPORTS

RERUN

RESERVE

RESET

RETURN

REVERSED

REWIND

REWRITE

RF

RH

RIGHT

ROUNDED

RUN

SAME

SD

SEARCH

SECTION

SECURITY

SEGMENT

SEGMENT-LIM1T

SELECT

SEND

SENTENCE

SEPARATE

SEQUENCE

SEQUENTIAL

SET

SIGN

SIZE

SORT

SORT-MERGE

SOURCE

SOURCE-COMPUTER

SPACE

SPACES

SPECIAL-NAMES

STANDARD

STANDARD-1

STANDARD-2

STANDARD-R

START

STATUS

STOP

STRING

SUB-QUEUE-1

SUB-QUEUE-2

SUB-QUEUE-3

SUBTRACT

SUM

SUPPRESS


173

Страница 175

С. 174 ГОСТ 22558-89 SYMBOLIC

USAGE

SYNC

USE

SYNCHRONIZED

USING

TABLE

VALUE

TALLYING

VALUES

TAPE

VARYING

TERMINAL

TERMINATE

WHEN

TEST

WITH

TEXT

WORDS

THAN

WORKING-STORAGE

THEN

WRITE

THROUGH

THRU

ZERO

TIME

ZEROES

TIMES

ZEROS

TO

+

TOP

TRAILING

TRUE

TYPE

L

UNIT

>

UNSTRING

<

UNTIL

UP

>-

UPON

< =

174

Страница 176

ГОСТ 22568-89 С.

АВТОР

АДРЕСАТ

АДРЕСАТОВ

АЛФАВИТ

БЕЗ

БЛОКЕ

БОЛЬШЕ

БУКВЕННОЕ

БЦ

БЦР

В

ВАЛЮТНЫЙ

ВВОД

В ВОД-ВЫ ВОД ВВОДА

ВВОДА-ВЫВОДА

ВЕДУЩИЕ

ВЕРНУТЬ

ВЕРСТКА

ВЕРХНЕЕ

ВКЛ

ВКЛЮЧЕНО

ВЛЕВО

ВНЕШНЕЕ

ВНУТРЕННИЙ

ВОЗРАСТАНИЮ

ВОЙТИ

ВПРАВО

ВРЕМЯ

ВСЕ

ВСЕМИ

ВСЕХ

ВХОДНОЙ

ВХОДНОЙ-ВЫХОДНОИ

ВХОДНЫХ

ВХОДНЫХ-ВЫХОДНЫХ

вывод

ВЫВОДА

ВЫДАТЬ

ВЫДАЧИ

ВЫДЕЛЕНО

ВЫЗВАТЬ

ВЫЙТИ

выкл

ВЫКЛЮЧЕНО

ВЫПОЛНИТЬ

ВЫХОДНОЙ

выходных

выч

ВЫЧИСЛЕНИЙ

ВЫЧИСЛИТЬ

ВЫЧИТАЯ

ГЕНЕРИРОВАТЬ

ГЛОБАЛЬНО

ГЛОБАЛЬНОЕ

ГРАНИЦА

ГРУППА

ГРУППУ

ДАННОЕ

ДАННЫЕ

ДАННЫЕ-ОТЛАДКИ

ДАННЫХ

ДАТА

ДАТА-НАПИСАНИЯ

ДАТА-ТРАНСЛЯЦИИ

ДАТУ

ДВОИЧНОЕ

ДЕКЛАРАТИВ

ДЕКЛАРАТИВЫ

ДЕНЬ

ДЕНЬ-НЕДЕЛИ

ДЕСЯТИЧНАЯ

ДЕСЯТИЧНОЕ

ДИНАМИЧЕСКИЙ

ДЛИНА

ДЛЯ

ДО

ДОПОЛНИТЕЛЬНЫЙ

ДОПОЛНЯЕМЫЙ

ДОПОЛНЯЕМЫХ

ДОСТУП

ДУБЛИРОВАНИЕМ

ЕДИНИЦ-ВРЕМЕНИ

ЕСЛИ

ЕСТЬ


Страница 177

С. 176 ГОСТ 22553-89

ЗАВИСИМОСТИ

ЗАГОЛОВОК

ЗАКОНЧИТЬ

ЗАКРЫТЬ

ЗАМЕНИТЬ

ЗАМЕНЯЯ

ЗАМКОМ

ЗАП

ЗАПИСЕЙ

ЗАПИСИ

ЗАПИСЬ

ЗАПОЛНИТЕЛЬ

ЗАПРЕТИТЬ

ЗАПЯТАЯ

ЗАТЕМ

ЗНАК

ЗНАЧ

ЗНАЧЕНИЕ ЗНАЧЕНИЕ ОТЛАДКИ 30 ЗС

И

ИДЕНТИФИКАЦИИ

ИЗ

ИЗМЕНИТЬ

ИКГ

икс

ИК1Ц

ИЛИ

ИМЯ-ОТЛАДКИ

ИНАЧЕ

ИНДЕКСА

ИНДЕКСИРУЕТСЯ

ИНДЕКСНАЯ

ИНДЕКС-ОТЛАДКИ-!

ИНДЕКС-ОТЛАДКИ-2

ИНДЕКС-ОТЛАДКИ-3

ИНИЦИИРОВАТЬ

ИСКАТЬ

ИСПОЛЬЗОВАТЬ

ИСПОЛЬЗУЯ

ИСТИНА

источник

ИСХОДНАЯ МАШИНА

К

КАВЫЧКА

КАВЫЧКИ

КАЖДОЕ

КАЖДЫЕ

КАЖДЫЙ

КАТУШКЕ

КАТУШКИ

КАТУШКУ

КЛАСС

КЛЮЧ

КЛЮЧА

КО

КОГДА

КОДОМ

КОММУНИКАЦИИ

КОНЕЦ

КОНЕЦ-ВЕРНУТЬ

КОНЕЦ-ВЫЗВАТЬ

КОНЕЦВЫПОЛНИТЬ

КОНЕЦ-ВЫЧИСЛИТЬ

КОНЕЦ-ЕСЛИ

КОНЕЦ-ИСКАТЬ

КОНЕЦ-ОБНОВИТЬ

КОНЕЦ-ОТНЯТЬ

КОНЕЦ-ОЦЕНИТЬ

КОНЕЦ-ПИСАТЬ

КОНЕЦ ПОДВЕСТИ

КОНЕЦ-ПОЛУЧИТЬ

КОНЕЦРАЗДЕЛИТЬ

КОНЕЦ-РАЗОБРАТЬ

КОНЕЦ-СЛОЖИТЬ

КОНЕЦ-СОБРАТЬ

КОНЕЦ-УДАЛИТЬ

КОНЕЦ-УМНОЖИТЬ

КОНЕЦ-ЧИТАТЬ

КОНФИГУРАЦИИ

КОНЦА

КОНЦЕ

КОНЦОВКА

КОНЦУ

КОПИРОВАТЬ

КС

ЛИТЕР

ЛИТЕРА


178

Страница 178

ГОСТ 22558-89 С.

ЛИТЕРЫ

ложь

ЛЮБОЕ

МЕНЬШЕ

МЕНЯЯ

МЕТКИ

МОДУЛЕЙ

НА

НАЗНАЧИТЬ

НАИБОЛЫИЕЕ-ЗНАЧЕНИЕ

НАИБОЛЬШИЕ ЗНАЧЕНИЯ

НАИМЕНЫИЕЕ-ЗНАЧЕНИЕ

НАИМЕНЫ11ИЕ-ЗНАЧЕНИЯ

НАЧАЛЕ

НАЧАЛЬНАЯ

НАЧАЛЬНОГО

НАЧАТЬ

НЕ

НЕОБЯЗАТЕЛЬНОГО

НЕТ

НИЖНЕЕ

НОМЕР

НУЛИ

НУЛЬ

ОБЛАСТЕЙ

ОБЛАСТЬ

ОБНОВИТЬ

ОБОРУДОВАНИЯ

ОБЩАЯ

ОГРАНИЧИВАЯСЬ

ОГРАНИЧИТЕЛЬ

ОДНОЙ

ОК

ОКРУГЛЯЯ

00

ОПРЕДЕЛЯЕТ

ОПУШЕНЫ

ОРГАНИЗАЦИЯ

ОС

ОСВОБОДИТЬ

ОСОБО

ОСТАНОВИТЬ

ОСТАТОК

ОТ

ОТДЕЛЬНО

отключить

открыть

ОТЛАДКИ

ОТНОСИТЕЛЬНАЯ

ОТНОСИТЕЛЬНЫЙ

отнять

ОТРИЦАТЕЛЬНО

ОТЧЕТ

ОТЧЕТА

ОТЧЕТОВ

ОТЧЕТЫ

ОФ

ОЦЕНИТЬ

ОЧЕРЕДЬ

ОЧИСТИТЬ

ОШИБКЕ

ОШИБКИ

ПАМЯТИ

ПЕРВЫЙ

ПЕРЕДАТЬ

ПЕРЕИМЕНОВЫВАЕТ

ПЕРЕЙТИ

ПЕРЕМЕННОЕ

ПЕРЕМОТКИ

ПЕРЕОПРЕДЕЛЯЕТ

ПЕРЕПОЛНЕНИИ

ПЕРЕПОЛНЕНИЯ

ПЕРЕПРОГОН

ПЕРЕХОДА

ПЕЧАТЬ

ПИСАТЬ

ПЛЮС

ПО

ПОВТОРЯЕТСЯ

ПОДАВИТЬ

ПОДВЕСТИ

ПОДОЧЕРЕДЬ-1

ПОД ОЧЕРЕДЬ-2

ПОДОЧЕРЕДЬ-3

ПОЗИЦИЯ

ПОЛЕ

ПОЛНОМОЧИЯ

ПОЛОЖИТЕЛЬНО


Страница 179

С. 176 ГОСТ 22558-89

ПОЛУЧАЯ

ПОЛУЧИТЬ

поля

ПОМЕСТИТЬ

ПОСЛАТЬ

ПОСЛЕ

ПОСЛЕДНИЙ

ПОСЛЕДОВАТЕЛЬНАЯ

ПОСЛЕДОВАТЕЛЬНЫЙ

ПРЕВРАЩАЯ

ПРЕДЛОЖЕНИЕ

ПРЕДПРИЯТИЕ

ПРИ

ПРИБАВЛЯЯ

ПРИНЯТЬ

ПРОБЕЛ

ПРОБЕЛЬ!

ПРОВЕРКОЙ

ПРОГРАММА

ПРОГРАММНЫЙ

ПРОГРАММЫ

ПРОДВИЖЕНИЯ

ПРОДОЛЖИТЬ

ПРОИЗВОЛЬНЫЙ

ПРОПИСНЫЕ

ПРОСМОТРЕТЬ

ПРОЦЕДУР

ПРОЦЕДУРА

ПРОЦЕДУРАХ

ПРОЦЕДУРЫ

РАБОТУ

РАБОЧАЯ-МАШИНА

РАБОЧЕЙ-ПАМЯТИ

РАВЕН

РАВНО

РАЗ

РАЗА

РАЗДЕЛ

РАЗДЕЛИТЬ

РАЗМЕР

РАЗМЕРОМ

РАЗОБРАТЬ

РАЗРЕШИТЬ

РЕВЕРСНО

РЕЖИМЕ

РЕЗЕРВИРОВАТЬ

С

СБРОСИТЬ

СВЯЗИ

СДВИНУТО

СЕГМЕНТ

СЕГМЕНТОВ

СЕКЦИЯ

СИМВОЛИЧЕСКАЯ

СИМВОЛИЧЕСКИЙ

СЛЕДУЮЩАЯ

СЛЕДУЮЩЕЕ

СЛЕДУЮЩЕЙ

СЛЕДУЮЩУЮ

СЛИТЬ

СЛОВ

СЛОЖИТЬ

СОБРАТЬ

СООБЩЕНИЕ

СООБЩЕНИЙ

СООБЩЕНИЯ

СООТВ

СООТВЕТСТВЕННО

СОРТ

СОРТИРОВАТЬ

СОРТИРОВКИ

СОРТИРОВКИ-СЛИЯНИЯ

СОСТОЯНИЕ

СОСТОЯНИЯ

СПЕЦИАЛЬНЫЕ-ИМЕНА

ССЫЛКАХ

ССЫЛКУ

СТАНДАРТ-А

СТАНДАРТ-Р

СТАНДАРТ-М

СТАНДАРТНОЙ

СТАНДАРТНЫ

СТОЛБЦА

СТРАНИЦЕ

СТРАНИЦЫ

СТРОК

СТРОКА-ОТЛАДКИ

СТРОКИ

СТРОКУ

СТРОЧНЫЕ


178

Страница 180

ГОСТ 22558-8§ С

СУММА

УПРАВЛЯЕМАЯ

СЧЕТ

УПРАВЛЯЕМЫЙ

СЧЕТЧИК-ВЕРСТКИ

УСТАНОВИТЬ

СЧЕТЧИК-СТРАНИЦ

счетчик-строк

ФАЙЛА

СЧИТАЯ

ФАЙЛОВ

ФР

ТАБЛИЦА

ФРАГМЕНТ

ТАКЖЕ

ТЕКСТА

ЧИСЛО

ТЕРМИНАЛ

ЧИСЛОВОЕ

ТЕРМИНАЛА

ЧИТАТЬ

ТИП

ЧР

ТОМ

ТОМА

ш

ТОЧКА

ШАБЛОН

УБЫВАНИЮ

>

УДАЛЕНИЕМ

<

УДАЛИТЬ

+

УЗ

УК

*

УКАЗАТЕЛЬ

/

УМНОЖИТЬ

УПРАВЛЕНИЕ

=

УПРАВЛЕНИЕ-ВВОДОМ-

<“

ВЫВОДОМ

>-

У П РАВ Л ЕН И Е ФАИ Л AM И

Часть б. ФОРМАТЫ ЯЗЫКА I. СВОДКА ФОРМАТОВ АНГЛИЙСКОЙ НОТАЦИИ

1.]. Общий формат раздела идентификации

IDENTIFICATION DIVISION.

Г | COMMONS PROGRAM-1D. имя-программы IS | INITIAL ' и PROGRAM

[AUTHOR, [статья-комментарий] ...

[INSTALLATION, (статья-комментарий) ... ] JDATE-WRITTEN. [статья-комментарий] ... ]

1 DATE-COMPILED, [статья-комментарий] ... ]

[SECURITY, [статья-комментарий] ... ]

Страница 181

С. 180 ГОСТ 22538-89

1.2. Общий формат раздела оборудования

[ENVIRONMENT DIVISION, fCONFIGURATION SECTION.

[SOURCE-COMPUTER. [имя-машины [WITH DEBUGGING MODE). ]] fOBJECT-COMPUTER. [имя-машины f WORDS

[MEMORY SIZE целое-1

CHARACTERS

MODULES

[PROGRAM COLLATING SEQUENCE IS имя-алфавита-l ] [SEGMENT-L1MIT IS номер-сегмента]. ]] [SPECIAL-NAMES. [[иня-реализации-l

IS мнемоническое-имя-l [ON STATUS IS имя-условия-1 [OFF STATUS IS имя-условия-2]1 IS мнемоннческое-нмя-2 [OFF STATUS IS имя-условия-2 [ON STATUS IS имя-условия-1]]

ON STATUS IS имя-условия-1 [OFF STATUS IS имя-условия-2]

OFF STATUS IS имя-условия-2 [ON STATUS IS имя-условия-1]

ALPHABET имя-алфавита-1 IS

STANDARD-1 STANDARD-2 STANDARD-R NATIVE

]

имя реализации-2

I THROUGH) литерал-l j THRO / *«™Pa*-2 . (ALSO литерал-3}...

[SYMBOLIC CHARACTERS {{{символичсская-литера-l}...

{are }(иелое-1}    [IN имя-алфавита-2]}]...

[CLASS имя-класса-l IS

|    Г [THROUGH)    1)

[литерал-4 |j THRU    J литерал-51 j...]...

180

Страница 182

ГОСТ 22558- - 89 С. 181

[CURRENCY SIGN IS литерал-6]

[DECIMAL POINT IS COMMA]. ]]|

[INPUT-OUTPUT SECTION.

F1LECONTROL.

{статья-управления-файлом}... [1-O-CONTROL.

[fRERUNfoN /имя файла-1 || LI-L—I нмя-реалнзации-l JJ

fREELn

[END OF] { umt )LFмя.файда, целое ! RECORDS | целoc-2 CLOCK-UN1TS имя-условия-1

EVERY

Г RECORD

SAME

SORT

-

SORTMERGE

{имя-файла-4}...

[MULTIPLE FILE ТАРЕ CONTAINS {имя-файла-5 (POSITION целое-3]}...]... Щ]

AREA FOR имя файла-3

1.3. Общий формат статьи управления файлом

1.3.1. Поел едовательный файл

SELECT [OPTIONALI имя-файла-1

ассг^кт -гг»/имя-реализацнн-1 \

ASSIGN ТО| чятер,д.,    j...

[RESERVE UMOt-1 [ar!aS]]

[ORGANIZATION IS] SEQUENTIAL]

PADDING CHARACTER IS {    ^ }]

RECORD DELIMITER IS [S'TANDARP-1 Jl (имя-реализации 2J I ACCESS MODE IS SEQUENTIAL]

FILESTATUS IS им я-да иного-2].

181

Страница 183

С 182 ГОСТ 23658-89

1.3.2. О т и ос * г ел ь н ы й файл SELECT [OPTIONAL) имя-файла-1

ASSIGN Т0!имяеалнза11ии-1 )

- 1литерал-1    J    •••

[RESERVE целое-|[д^дг ]J (ORGANIZATIONIS) RELATIVE

SEQUENTIAL [RELATIVE KEY IS имя-данного-1)

I]

ACCESS MODE IS

| RANDOM | RELATIVE KEY IS {DYNAMIC) имя-данного-1

[FILE STATUS IS имя-даиного-2].

1.3.3. И ндс кс н ы й файл SELECT [OPTIONAL] нмя-файла-I

ASSIGN ТО/ имя-реализации-1} - I литерал-1    f    *

[RESERVE це.тое-1 [д^|д£    ]]

[ORGANIZATION IS] INDEXED

ACCESS MODE IS

SEQUENTIAL

RANDOM

DYNAMIC

RECORD KEY IS имя-даиного-1

[ALTERNATE RECORD KEY IS имя-данного-2 [WITH

DUPLICATES]]...

[FILE STATUS IS нмя-данного-3].

1.3.4.    Сортируемы й-с л иваемый файл

SELECT имя-файла-1 ASSIGN ТО (имя-реализации-! ]

--^    - \литерал-1    j

1.3.5.    Файл отчетов SELECT [OPTIONAL] имя-файла-1

ASSIGN то(имя Реализации'1]

- (литерал-1

[RESERVE целое-l[AREAsJj

[[ORGANIZATION IS] SEQUENTIAL]

[padding character {j"T"e^H2oro'11]

182

Страница 184

ГОСТ 22S58 —89 С. 183

f RECORD DELIMITER is)--1-——J]

[- 1имя-реализацик-2| J

[ACCESS MODE IS SEQUENTIAL]

[FILE STATUS IS имя-данного-2].

1.4. Общий формат раздела данных (DATA DIVISION.

{file SECTION.

I статъя-опнсания файла {статьяописания-записи}... I статья-описаиня-сортнруемого-сливаемого-файла

{статьяописания-записи}. I статья-опнсания-файла-отчетов

[WORKING-STORAGE SECTION.

статья-описания-уровня-77]    .

статья-описания-записи J • • • J LINKAGE SECTION.

стагья-опнсания-уровня-статьяопнсания-записн COMMUNICATION SECTION.

статья-опнсания-коммуннкацин [статья-описания-иси1 11 [REPORT SECTION.

[статья-опнсання-отчета {статья описання-группы-отчста}...]...) ]

1.5. Общий формат статьи описания файла 1.5.1. Поеледовател ьн ый файл FD имя-файла-1 [IS EXTERNAL)

[IS GLOBAL] "

BLOCK CONTAINS [««лс.ТО] цолос-г^^^}]

CONTAINS целое-3 CHARACTERS IS VARYING IN SIZE [ [FROM целое-4] [TO целое-5] CHARACTERS] [DEPENDING ON нмя-данного-l ] CONTAINS целое-6 TO целое-7

RECORD

CHARACTERS

183

Страница 185

С. 184 ГОСТ 22538—89

I    (RECORD IS И STANDARDП

| -bililbb I RECORDS ARE ) j OMITTED jj

VALUE OK {имя-реализации-I    ...]

RECORD IS ).

RECORDS ARE j (имя-данного-З)... j

LINAGE IS (имя-данного-41 UN£S \ целое-8

[WITH FOOTING AT(иmя ланного-511 --I целое-9 JJ

[LINES AT TOP(имя-даниого-6|"j 1    -(целое-JO JJ

Jlines AT BOTTOMj-^fH;'oro-7j]]

JCODE-SET IS имя-алфавита-1].

1.5.2. От н о с ит е л ь н ы й файл FD имя файла-1 fIS EXTERNAL)

[IS GLOBAL]

I BLOCK CONTAINS [целое-l TO] целое-2 j |h^A~ItERS}]

j CONTAINS целое-3 CHARACTERS IS VARYING IN SIZE [[FROM целое-4] РРгпвп * ЦО иелое-51    CHARACTERS]

[

K U KU    [DEPENDING ON имя-данного-1]

CONTAINS целое-6 TO целое-7 CHARACTERS

RECORD IS

| I STANDARD)] : j j OMITTED j j

LABEL

RECORDS ARE

VALUE Ор|имя-реализации-1 >S}} ...]

(RECORD IS )

[RECORDS ARE J {имя-данного-3)... ] .

1.5.3. Индексный файл FD имя файла-1 [IS EXTERNAL)

[IS GLOBAL)

184

Страница 216

ГОСТ 22558-89 С. 215

2.3.5. Файл отчетов

ДЛЯ НЕОБЯЗАТЕЛЬНОГО] имя-файла-1

НАЗНАЧИТЬ /««Я-РМЛНМШ.Н-1 | -{литерал-I    J    •••

[РЕЗЕРВИРОВАТЬ целое-1 ОБЛАСТЕЙ]

{[ОРГАНИЗАЦИЯ! ПОСЛЕДОВАТЕЛЬНАЯ]

[литера заполнитель) нмяАаН1,пого'1 П

-1 литерал-2 /J

II

ОГРАНИЧИТЕЛЬ ЗАПИСИ

j--[ имя-реадкзации-2

[ДОСТУП ПОСЛЕДОВАТЕЛЬНЫЙ] [СОСТОЯНИЕ ФАЙЛА имя-данного-2].

2.4. Общий формат раздела данных 1 РАЗДЕЛ ДАННЫХ.

[СЕКЦИЯ ФАЙЛОВ.

[сгатья-описанки-файла {статья-опксянкя-запнси}...    I

статья-описания сортнруемого сливаемого-файла

{статья-описання-запнси}... статья-описания-файла отчетов    [

[СЕКЦИЯ РАБОЧЕЙ-ПАМЯТИ.

Г статья-описаиия-уровня-771 [статья-описания-записн J * * * -*

(СЕКЦИЯ СВЯЗИ.

Г статья-описания-уровня-77 1 j статья-описания-записи J • • • J

[СЕКЦИЯ КОММУНИКАЦИИ.

[статья-описания коммуникации [статья-описаиия-записи]...]...] [СЕКЦИЯ ОТЧЕТОВ.

[статья-описаиия-отчета {статья-описания-группы-отчета}...]...] 1

215

Страница 217

С. 216 ГОСТ 22558-89

2.5. Общий формат статьи описания файла

2.5.1. Поел ед о в а тел ьн ы й файл ОФ имя-файла-1 [ВНЕШНЕЕ]

[ГЛОБАЛЬНОЕ]

В БЛОКЕ [ОТ целое-1 ДО) целое-2 | ^ИТЕР^} J

целое-3 ЛИТЕР ПЕРЕМЕННОЕ ЧИСЛО [[ОТ целое-4] [ДО целое-5] ЛИТЕР]

]

В ЗАПИСИ

[В ЗАВИСИМОСТИ ОТ имя-данного-1] ОТ целое-6 ДО целое-7 ЛИТЕР

I СТАНДАРТНЫ I ОПУШЕНЫ

)]

МЕТКИ

[ ЗНАЧЕНИЕ ] (    /    имя данного-2 ) ]    ]

I ЗНАЧ    j    j    имя-реализацин-1|    лнтерал_, })...]

[ЗАПИСИ ДАННЫХ {имяданного-3}... ]

[ BHPCTKAj ™авНН0Г°-4}сТРОК

имя-данного-5

[I

КОНЦОВКА ОТ

целое-9

| ВЕРХНЕЕ ПОЛЕ|НМЯ-Да.“Н0Г0 ]--| целое-10

НИЖНЕЕ ПОЛЕ ( имя ланного'7 [--I целое-11

[АЛФАВИТ имя-алфавита-1].

2.5.2. Относительный файл

ОФ имя-файла-1

[ВНЕШНЕЕ]

[ГЛОБАЛЬНОЕ]

[ В БЛОКЕ [ОТ целое-1 ДО] целое-2    }]

216

Страница 218

ГОСТ 2255ft—89

целое-3 ЛИТЕР ПЕРЕМЕННОЕ ЧИСЛО I [ОТ целое-4] [ДО целое-5) ЛИТЕР]

|В ЗАВИСИМОСТИ ОТ имя-данного-11 ОТ целое-6 ДО целое-7 ЛИТЕР

В ЗАПИСИ

)]

СТАНДАРТНЫ

ОПУЩЕНЫ

ЗНАЧЕНИЕ П    \    имя-данного-2 ]]

[(

ЗНАЧ }(имя*реализацин-1 [ литерал_, Ц

[ЗАПИСИ ДАННЫХ [нмя-данного-3}... ].

2.5.3. Индексный файл ОФ имя-файла-1

[ВНЕШНЕЕ]

[ГЛОБАЛЬНОЕ!

В БЛОКЕ [ОТ целое-1 ДО) целое-2 [

целое-3 ЛИТЕР

ПЕРЕМЕННОЕ ЧИСЛО Г [ОТ целое-4] [ДО целое-5] ЛИТЕР)

[В ЗАВИСИМОСТИ ОТ имя-данного-1)

ОТ целое-6 ДО целое-7 ЛИТЕР

СТАНДАРТНЫ

ОПУШИМ Ы


[


В ЗАПИСИ

МЕТКИ


}!


Г fЗНАЧЕНИЕ I IЗНАЧ

13АПИСИ ДАННЫХ {нмя-данного-3}... ]. 2.5.4. Сортируемый-слнвасмый файл ОС нмя-файла-1


){


I имя-данного-2 ** [литерал-1


)}


имя-реализации


целое-1 ЛИТЕР ПЕРЕМЕННОЕ ЧИСЛО

I

[ [ОТ целое-2] [ДО целое-3) ЛИТЕР) [В ЗАВИСИМОСТИ ОТ имя-даного-1) ОТ целое-4 ДО целое-5 ЛИТЕР

В ЗАПИСИ

Страница 219

С. 218 ГОСТ 22558-89

Г [ ЗАПИСЬ ) .................1

{ ЗАПИСИ I ДАННЫХ {нмя-данного-3}...    .

2.5.5. Файл отчетов ОФ имя-файла-1 [ВНЕШНЕЕ] (ГЛОБАЛЬНОЕ]

В БЛОКЕ fОТ целое-1 ДО) цслос-2 {j ]

[ В ЗАПИСИ / целое'3 ЛИТЕР    I    1

|b_dAimLii j от целое 4 ^ целое.5 ЛИТЕР j J

Г мртП1{ СТАНДАРТНЫ П

j A1EjJ<H | опущены П

ОЗНАЧЕНИЕ } f    f    имя-даныого-2 ) 1

ЗНАЧ~ / ( имя-реализации-1 j литсрал,2    |    )

[АЛФАВИТ имя-алфавита-\]

[ ОТЧЕТ ) .

( ОТЧЕТЫ / {имя-огчета-1}... .

2.6. Общий формат статьи описания данного

Формат |

нмя-даиного -1

ЗАПОЛНИТЕЛЬ

номер-уровня

ЗАП

(ПЕРЕОПРЕДЕЛЯЕТ имя-данного-2) (ГЛОБАЛЬНОЕ]

[ВНЕШНЕЕ)

Г | ШАБЛОН 1

I j щ    |    строка-литер

218

Страница 220

ГОСТ 22558-89 С. 219

ДВОИЧНОЕ

ДЕСЯТИЧНОЕ

(ВЫЧИСЛЕНИИ

ДЛЯ

ВЫДАЧИ I ИНДЕКСА

[1^|шОТий)1°ТДЁЛЬН9-11

~ ПОВТОРЯЕТСЯ целос-2 РАЗ

Г,,_ ВОЗРАСТАНИЮ |П|Л.МЯ ,    .

110 уБыВАНИЮ-IКЛЮЧА (имя-данного-З)... 1 ...

[ИНДЕКСИРУЕТСЯ {имя-индекса-1}... ]

ПОВТОРЯЕТСЯ ОТ целое-1 ДО целое-2 РАЗ В ЗАВИСИМОСТИ ОТ имя-да иного-4

И^IbS— )КЛЮЧА <»-Да.шого.З> [ИНДЕКСИРУЕТСЯ {имя-индекса-1}... J

[вЫДЕ_ЛЕН0[|шШ|

ГСДВИНУТО ВПРАВ01

(ПРОБЕЛ КОГДА НУЛЬ]

ГI ЗНАЧЕНИЕ )    ]

ПЗНАЧ j литерал-1 J.

Формат 2

66 имя-данного-1 ПЕРЕИМЕНОВЫВАЕТ имя-даиного-2 [ПО имя-даниого-З].

Формат 3

88 имя-усло*ия-1 j |й$Г~}|ЛИтерал-1 литерал-2] J ...

Страница 221

С. 220 ГОСТ 22558 -89

2.7. Общий формат статьи описания коммуникации

Формат 1

QK имя-коммуникации-1 ДЛЯ [НАЧАЛЬНОГО] ВВОДА

"((СИМВОЛИЧЕСКАЯ ОЧЕРЕДЬ имя-данного*]]

(СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-1 имяданного-2]

(СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-2 нмя-данного-3]

[СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-3 имя-данного-4)

[ДАТА СООБЩЕНИЯ имя-данного-5]

[ВРЕМЯ СООБЩЕНИЯ нмя-данного-6]

[СИМВОЛИЧЕСКИИ ИСТОЧНИК нмя-данного-7]

[ДЛИНА ТЕКСТА имя-данного-81

[КЛЮЧ КОНЦА имя-данного-9]

(КЛЮЧ СОСТОЯНИЯ имя-данного-10]

[ЧИСЛО СООБЩЕНИИ имя-данного-11 ]]

[имя-данного-1, имя-данного-2, нмя-данного-3, имя-данного-4, имя-данного-5, нмя-данного-6, имяданного-7, имя даиного-8,, имя-данного-9, нмя-данного-10, имя данного !I]

Формат 2

ОК имя-коммуникации-1 ДЛЯ ВЫВОДА [ЧИСЛО АДРЕСАТОВ имя-данного-11 [ДЛИНА ТЕКСТА имя-данного-2]

[КЛЮЧ СОСТОЯНИЯ нмя-данного-3]

[ТАБЛИЦА АДРЕСАТОВ ПОВТОРЯЕТСЯ целое-1 РАЗ [ИНДЕКСИРУЕТСЯ (имя-индекса-1)... ] 1 [КЛЮЧ ОШИБКИ имя-данного-4]

[СИМВОЛИЧЕСКИЙ АДРЕСАТ имя-данного-51.

220

Страница 222

ГОСТ 2ZS5e-89 С. 221

Формат 3

OK имя'коммуникацни-l

ДЛЯ [НАЧАЛЬНОГО ВВОДА-ВЫВОДА

” f [ДАТА СООБЩЕНИЯ имя-данного-1]

f ВРЕМЯ СООБЩЕНИЯ имя-дан ного-2)

(СИМВОЛИЧЕСКИИ ТЕРМИНАЛ имя даиного-З]

[ДЛИНА ТЕКСТА имяданного-4]

[КЛЮЧ КОНЦА имя-даниого-51

[КЛЮЧ СОСТОЯНИЯ нмя-данного-6] ]

[имя-данного-1, нмя-данного-2, иыя-данного-3, имя-данного-4, имя-данного-5, нмя-данного-6]

2.8. Общий формат статьи описания отчета

00 имя-отчета-1 [ГЛОБАЛЬНОЕ]

[С КОДОМ литерал-11

| УПРАВЛЕНИЕ ПО | j]

1 ]]

{имя-ланного-1}... КОНЦУ [имя-данного'1

[РАЗМЕР СТРАНИЦЫ целое-1 СТРОК [ЗАГОЛОВОК целое-21 [ПЕРВЫЙ ФРАГМЕНТ целое-31 [ПОСЛЕДНИЙ ФРАГМЕНТ целое-4] [КОНЦОВКА

целое-5]].

2.9. Общий формат статьи описания труппы отчета

Формат 1 01 [имя-данкого-1]

[НА СЛЕДУЮЩЕЙ СТРАНИЦЕ

целое-3

СЛЕДУЮЩАЯ ГРУППА ПЛЮС целое-4

НА СЛЕДУЮЩЕЙ СТРАНИЦЕ

221

Страница 223

С. 222 ГОСТ 22558-89

ЗАГОЛОВОК ОТЧЁТА )

30    (

ЗАГОЛОВОК СТРАНИЦЫ 1 ЗС    |

УПРАВЛЯЕМЫЙ ЗАГОЛОВОК 1 УЗ    I

нмя-данного-2

КОНЦУ

УПРАВЛЯЕМАЯ КОНЦОВКА УК

П0 i КОНЦУ f КОНЦОВКА СТРАНИЦЫ I (КС    )

( КОНЦОВКА ОТЧЕТА \

(ко    )

(ДЛЯ ВЫДАЧИ].

Формат 2

номер-уровня [нмяданного-1]

целое-1 (НА СЛЕДУЮЩЕЙ

[НОМЕР СТРОКИ

СТРАН НЦЕ|

ПЛЮС целое 2

[ДЛЯ ВЫДАЧИ 1.

Формат 3

номер-уровня [имя-даиного-1] f ШАБЛОН 1

I щ    I    строка-литер

[ДЛЯ ВЫДАЧИ]

[ J3HAKL {} ЖДМЬВД |

222

Страница 224

ГОСТ 22S58—89 С. 223

[СДВИНУТО ВПРАВО|

[ПРОБИЛ КОГДА НУЛЬ!

(целое-1 [НА СЛЕДУЮЩЕЙ) 1 НОМЕР СТРОКИ    СТРАНИЦЕ]^

[ ПЛЮС цедое-2

[НОМЕР СТОЛБЦА целое 3|

ИСТОЧНИК идентификатор-1    »

ЗНАЧЕНИЕ!

ЗПАЧ (литерал-1

(СУЛЕМА {идентификатор-2} ...

[ДЛЯ {имя-данного-2}

[СБРОСИТЬ поС^у*"""0-3 }J

[ОПРЕДЕЛЯЕТ ГРУППУ].

2.10. Общий формат раздела процедур

Формат 1

[РАЗДЕЛ ПРОЦЕДУР [ИСПОЛЬЗ: i {имя данного}...). [ДЕКЛАРАТИВЫ.

{СЕКЦИЯ имя-секции [номер-сегмента].

Оператор ИСПОЛЬЗОВАТЬ.

[имя-параграфа.

[ предложение!

КОНЕЦ ДЕКЛАРАТИВ.

{СЕКЦИЯ имя-секции [номер-сегмента].

[имя-параграфа.

[предложение] ... ]

Формат 2

[РАЗДЕЛ ПРОЦЕДУР [ИСПОЛЬЗУЯ {имя-данного-1}...].

{пмя-параграфа.

[предложение] ...}...]

223

Страница 225

С. 224 ГОСТ 22358 —89

2.11. Общий формат глаголов Кобола

2.11.1

ПРИНЯТЬ идентификатор-1 [С мнемоническое-имя-1]

ДАТУ

ПРИНЯТЬ В идентифнкагор-2

ДЕНЬ

ДЕНЬ-НЕДЕЛИ

ВРЕМЯ

ПРИНЯТЬ ЧИСЛО СООБЩЕНИЙ имя коммуникации-1 2.11.2

СЛОЖИТЬ (ИЯ"*™™*-! | ... с {идентификатор-2 -\ литерал-1    )    —

[ОКРУГЛЯЯ])...

[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1]

[БЕЗ ПЕРЕПОЛНЕНИЯ повел ительный-оператор-2]

[КОНЕЦ-СЛОЖИТЬ!

rnmifuTk ( идентификатор-1 \ I идснтификатор-2 СЛОЖИТЬ j литсрал ,    )    . .. С{ лигерал-2

ПОЛУЧАЯ {идентификатор-3 [ОКРУГЛЯЯ}}...

[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1]

[БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-21

[КОНЕЦ-СЛОЖИТЬ)

СЛОЖИТЬ {^BETCTBEHHOj „де,1гйфика10р,

С_идентификатор-2 [ОКРУГЛЯЯ 1

[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1]

[БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2] [КОНЕЦ-СЛОЖИТЬ]

2.11.3

ИЗМЕНИТЬ {имя-процедуры-1 [ДЛЯ ПЕРЕХОДА] К^имя-лро-цедуры-2}...

224

Страница 226

ГОСТ 22558-89 С. 225

2.11.4

ВЫЗВАТЬ


идентификатор-1 литерал!


ИСПОЛЬЗУЯ

f [ССЫЛКУ НА] {ндентифнкатор-2}... )

| ЗНАЧЕНИЕ {идентификатор 2}... J"j

|ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1]

[КОНЕЦ-ВЫЗВАТЬ]

ВЫЗВАТЬ (и»нт«ф»к.тор.| |

-1 литерал-1

I ИСПОЛЬЗУЯ

I [ССЫЛКУ НА] {иденгификатор-2}.. [ЗНАЧЕНИЕ {идентификатор-2}...

[ПРИ ОШИБКЕ повелнтелышйоператор-1] [БЕЗ ОШИБКИ повелительный-операгор-2] [КОНЕЦ-ВЫЗВАТЬ!

2.11.5

ОСВОБОДИТЬ

2.11.6

{^—--[имя-файла-1 ГС УДАЛЕНИЕМ]

3_АКРЫТЬ    БЕз ПЕРЕМОТКИ]

имя файла-1 | С ЗАМКОМ J

ЗАКРЫТЬ {имя-файяа-1 Г С ЗАМКОМ]}...

2.11.7

ВЫЧИСЛИТЬ {идентификатор-1 [ОКРУГЛЯЯ]) арнфметическое-выражение-1

(ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1]

226

8 Зак. 254

Страница 227

226 ГОСТ 22W8-89

1БЕЗ ПЕРЕПОЛНЕНИЯ повелигелькый-огтератор-2| [КОНЕЦ-ВЫЧИСЛИТЬ]

2.11.8

ПРОДОЛЖИТЬ

2.11.9

УДАЛИТЬ ЗАПИСЬ имя-файла-1 [ПРИ ОШИБКЕ КЛЮЧА повел ительный-оператор-If [БЕЗ ОШИБКИ КЛЮЧА повелителЫ1ый-оператор-2) ГКОНЕЦ-УДАЛИТЬ]

2.11.10

ВВОД ГС ТЕРМИНАЛА]

ВВОД-ВЫ ВОД С ТЕРМИНАЛА

ЗАПРЕТИТЬ

ВЫВОД

ммя-коммуникации-1

КЛЮЧ ( иденти4>нкат0р'1 I] —-\ литерал -1    J J

2.11.11

пыл.тк/идентификатор! 1

рсимлю < литерал-1    |    ■    •    ■    Г    НА    мнемоническое-имя-

.TL

(БЕЗ ПРОДВИЖЕНИЯ!

2.11.12

РАЗДЕЛИТЬ нл/"Ле"Т"ф,!Ка,0р 1

-1 литерал-1

{идентификатор-2 [ОКРУГЛЯЯ)} • - -[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-П [БЕЗ ПЕРЕПОЛНЕНИЯ повел1пельный-оператор-2] [КОНЕЦ-РАЗДЕЛИТЬ]

/а I Л1

РАЗДЕЛИТЬ НА

литерал-1    Д    литерал-2

ПОЛУЧАЯ {идентификатор-3 [ОКРУГЛЯЯ]} ■ - -[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1]

Страница 228

ГОСТ 22558-89 С. 227

[БЕЗ ПЕРЕПОЛНЕНИЯ иовелнтсльный-оператор-2] [КОНЕЦ-РАЗДЕЛИТЬ)

РАЗДЕЛИТЬ 1 иДс«™фикатор-1 } цд [идентификатор-2 ---{ литерал-1    J-( литерал-2

ПОЛУЧАЯ (идентнфикатор-3 [ОКРУГЛЯЯ]}...

(ПРИ ПЕРЕПОЛНЕНИИ повелнтельный-оператор-!]

[БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2) (КОНЕЦ-РАЗДЕЛИТЫ

РАЗДЕЛИТЬ НА I идентификатор ! | J идентификатор-2 1 -I литерал-1    ]    (    литерал-2

ПОЛУЧАЯ идентификатор-3 [ОКРУГЛЯЯ]

ОСТАТОК идентифнкатор-4

[ПРИ ПЕРЕПОЛНЕНИИ повелнтелышй-оператор-11 [БЕЗ ПЕРЕПОЛНЕНИЯ повелительныйоператор-21 [КОНЕЦ РАЗДЕЛИТЬ!

РАЗДЕЛИТЬ [ ндентиФнкат°Р'1 1 Нд | идентификатор-2 -1-\ литерал-1    J — (литерал-2

ПОЛУЧАЯ идеитнфикатор-3 [ОКРУГЛЯЯ] ОСТАТОК идентификатор-4 [ПРИ ПЕРЕПОЛНЕНИИ повелнтельный-оператор-1]

[БЕЗ ПЕРЕПОЛНЕНИЯ повслительный-оператор-2| [КОНЕЦ РАЗДЕЛИТЬ]

2.11.13

[ ВВОД [С ТЕРМИНАЛА!

РАЗРЕШИТЬ ВВОД-ВЫВОД С ТЕРМИНАЛА |ВЫВОД

имя-коммуникации-1

Ключ ( нДС1,тиФикат°Р-1 }1 —-I литерал-1    }J

Страница 229

С. 228 ГОСТ 22558-89

2.11.14

ВОИТИ В имя-языка-1 [кмя-программпого модуля-1].

2.11.15

идентификатор-1 литерал*1 выражение-1 ИСТИНА

ОЦЕНИТЬ

ЛОЖЬ

идентификатор-2 п лнтерал-2 выражение-2 ИСТИНА

[

ТАКЖЕ

ложь

{{КОГДА ЛЮБОЕ

условие-1 ИСТИНА

ЛОЖЬ

идеиткфнкатор-3 литерал-3

ГНЕ1

арифметнческое-выражеиие-3 иденгнфикатор-4 ПО лнтерал-4

арифметическое- выраженис-2]

ГТАКЖЕ

ЛЮБОЕ условие-1 ИСТИНА ЛОЖЬ

идентификатор-5 литерал-5

[НЕ1

арифметическое- выражение-3

идентнфикатор-6 ПО литерал-6

арифметическое- выражение-4

228

Страница 230

ГОСТ 22558-89 С. 229

покелительиый*олератор-1}...

[ИНАЧЕ повелнтелышй-оператор-21

[КОНЕЦ-ОЦЕНИГЬ]

2.11.16 ВЫЙТИ

ВЫЙТИ ИЗ ПРОГРАММЫ

2.11.17

ГЕНЕРИРОВАТЬ (имя'дакног®'! J --j имя-отчета-1 J

2.11.18

ПЕРЕЙТИ К (имя-процедуры-1|

ПЕРЕЙТИ К {имя-процедуры-1} ... В ЗАВИСИМОСТИ ОТ идентификатор'1

2.11.19

Tv-nM    , ТГ. Г{оисратор-1}...    \

ЕСЛИ условие ! ТО [СЛЕДуЮщЕН ПРЕДЛОЖЕНИЕ)

( ИНАЧЕ {олсратор-2}... [КОНЕЦ-ЕСЛИ]

ИНАЧЕ СЛЕДУЮЩЕЕ ПРЕДЛОЖЕНИЕ I КОНЕЦ-ЕСЛИ

2.11.20

ИНИЦИИРОВАТЬ (идентификатор-1}..

БУКВЕННОЕ

1

БЦ

ЗАМЕНЯЯ

ЧИСЛОВОЕ

БИР

L

ЧР

ДАННОЕ НА J идентификатор-2}

— (литерал-1

2.11.21

НАЧАТЬ (имя-отчета-1}...

229

Страница 231

2.11.22

ПРОСМОТРЕТЬ идентификатор-1 СЧИТАЯ

' ЛИТЕРЫ 1(59 II илС -[ I ПОСЛЕ I \ литерал-2


1 ВЕДУЩИЕ И1 литерал-1


идентификатор-3


идентифнкатор-


ДО 1 ПОСЛЕ(


В идентифккагор-2


{идентификатора литерал-2

ПРОСМОТРЕТЬ идентификатор-1 ЗАМЕНЯЯ

nuTFDM Hi J идентификатор-5) Гf ДО    1 I идентификатор-

и ■

. in ) Li di па    л    И)    ПОСЛЕ    П.----------л

1 литерал-3

литерал-2

ВСЕ

ВЕДУЩИЕ

ПЕРВЫЙ

Нидентифнкатор-З 1    i идентификатор-5 1

литерал-1    }-[литерал-3    J

[(до )('

идентификатор

[ j ПОСЛЕ) [ литерал-2

Страница 232

ПРОСМОТРЕТЬ идентификатор-! СЧИТАЯ

Н идентификатор-4) I литерал-2    |J - * •

ЛИТЕРЫ I (

( ВСЕ 1 Jf идентификатор-3 |Г/ДО \ j ВЕДУЩИЕ ||1 литерал-1    Щ ПОСЛЕ/

В_ндентифнкатор-2

f идентификатор | лнтерал-2

ЗАМЕНЯЯ

ЛИТЕРЫ НА I нле,|ТНФика1°Р*5 I Г| ДО ) / ндентнфнкатор-4 1]

| 11 ПОСЛЕ I j литерал-2    /J“

1 литерал 3

ВСЕ

ВЕДУЩИЕ

ПЕРВЫП

идентнфнкатор-3 ]    | идентифнкатор-5

лнтсрал-1    I    — {литерал-3

а ДО 1 J идентификатор^ | I ПОСЛЕ | [ литерал-2    IJ "' (1' ‘

ПРОСМОТРЕТЬ идентификатор-1 ПРЕВРАЩАЯ ! "ле1,ТИфН.КаТОр'6 | В I ‘'Ден™Ф»катоР-7

-( лнтерал-4    1    —    [    лшерал-5

ГI ДО | / идентификатор I j ПОСЛЕ | ( литерал-2

4п...

Страница 233

С. 232 ГОСТ 22558-89

2.11.23

СЛИТЬ пмя-файла-1

1

[АЛФАВИТ имя-алфавита-11

ИСПОЛЬЗУЯ имя-файла-2 {имя-файла-3}...

ПРОЦЕДУРА ВЫВОДА имя-процедуры-1

[ПО имя-процедуры-2]

ПОЛУЧАЯ {нмя-файла-4}...

2.11 24

ПОМЕСТИТЬ | идентификатор-1 j в {идентификатор.2}...

-\ литерал-1    J —

____„______ [ СООТВЕТСТВЕННО |

ПОМЕСТИ ГЬ | ^QQTB-^идентификатор-!

В идснтификатор-2

2.11.25

УМНОЖИТЬ /нлвнтификетор-1 ) Нд (идентификатор-2 -I литерал-1    \    —

[ОКРУГЛЯЯ]). ■■

[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1]

[БЕЗ ПЕРЕПОЛНЕНИЯ повелительныйоператор-2] [КОНЕЦ-УМНОЖИТЬ]

УМНОЖИТЬ I идентиФ*кат0Р’1 j НА I “!”"*"И,0Р'21 -1 литерал-1    |    —[литерал-2    J

ПОЛУЧАЯ {идентнфикатор-3 [ОКРУГЛЯЯ])...

[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1)

Г БЕЗ ПЕРЕПОЛНЕНИЯ повелительный оператор-2]

[ КОНЕЦ-УМНОЖИТЬ]

232

Страница 234

.1!

ГОСТ 225в»-8* С. 233

2.11.26

ВХОДНОЙ I нмя-файла-1

РЕВЕРСНО

| БЕЗ ПЕРЕМОТКИ |( ••• ВЫХОДНОЙ (имя-файла-2

ОТКРЫТЬ

ОТКРЫТЬ

ОТКРЫТЬ

[БЕЗ ПЕРЕМОТКИ]}. ■■ ВХОДНОИ-ВЫХОДИОИ {имя-файла-З}.

ДОПОЛНЯЕМЫЙ {имя-файла-4}...

ВХОДНОЙ {имя-файла-1}...

ВЫХОДНОЙ (имя-файла-2}...

ВХОДНОИ ВЫХОДНОЙ {имя-файла-З}... I ДОПОЛНЯЕМЫЙ {имя-файла-4}...

ВЫХОДНОЙ {имя-файла-1

[БЕЗ ПЕРЕМОТКИ]}... ДОПОЛНЯЕМЫЙ (имя-файла-2}...

2.11.27

ВЫПОЛНИТЬ [имя-процедуры-1 [ПО имя-процедуры-2]] [повели?ельиый-оператор-1 КОНЕЦ ВЫПОЛНИТЬ] ВЫПОЛНИТЬ [имя-процедуры-1 [ПО имя-процедуры-2]] идентификатор-1 1 f РАЗ

} целое-1    J    {    РАЗА

[повел ительный-оператор-1 КОНЕЦ-ВЫПОЛНИТЬ] ВЫПОЛНИТЬ [имя-процедуры-1 [ПО имя процедуры-2] ]

[ С ПРОВЕРКОЙ В |    } j ДО условие-1

[повелительный-оператор-1 КОНЕЦ-ВЫПОЛНИТЬ] ВЫПОЛНИТЬ [имя-процедуры-1 [ПО имя-процедуры-2]]

|с ПРОВЕРКОЙ В | »™j]

233

Страница 235

С. 2И ГОСТ 22558-89

меняя!'",,ифика7'2!от

-1 имя-индекса-1

идентификатор-3 имя-индекса-2 литерал-1


НА( идентификатора)

—I литерал-2    | —

идеитификатор-6 имя-индекса-4 литерал-3

ЗАТЕМ! няеи'ификатор-Б I QT -[ имя-индекса-3 | —

н^{—ИГ'7}^—• *]...

fповелительиый-оператор-1 КОНЕЦ-ВЫПОЛНИТЬ]

2.11.28

ОЧИСТИТЬ имя-коммуникации-!

2.11.29

ЧИТАТЬ [СЛЕДУЮЩУЮ] ЗАПИСЬ имя-файла-1

[JJ идентификатор-1]

[В КОНЦЕ повелительиый-оператор-1]

|НЕ В КОНЦЕ повелителькый-оператор-2] [КОНЕЦ-ЧИТАТЬ]

ЧИТАТЬ ЗАПИСЬ имя-файла-1 fB идентификатор-1]

[ПРИ ОШИБКЕ КЛЮЧА повелнтельный-оператор-3|

[БЕЗ ОШИБКИ КЛЮЧА повелительный-опсратор-4] [КОНЕЦ-ЧИТАТЬ].

ЧИТАТЬ ЗАПИСЬ имя-файла-1 [^идентификатор-!]

[КЛЮЧ имя-данного-Ц

[ПРИ ОШИБКЕ КЛЮЧА повелнтельный-оператор-З]

[БЕЗ ОШИБКИ КЛЮЧА повелительный-оператор-4]

[КОНЕЦ-ЧИТАТЬ)

234

Страница 236

ГОСТ 22658-89 С. 235

2.11.30

ПОЛУЧИТЬ {gggjjffHE | имя-коммуникации _В

идентификатор I | НЕТ ДАННЫХ повелительиый-оператор-1J [ЕСТЬ ДАННЫЕ повелительный-оператор-2] [КОНЕЦ-ПОЛУЧИТЬ)

2.11.31

ПЕРЕДАТЬ имя-записи-1 [ИЗ ПОЛЯ идентификаiop-1]

2.11.32

ВЕРНУТЬ ЗАПИСЬ имя-файла-1JB идентификатор-Ц [В КОНЦЕ повелительный-опсратор-11 | НЕ В КОНЦЕ повелительный-оператор-21 ГКОНЕЦ-ВЕРНУТЬ!

2.11.33

ОБНОВИТЬ имя-записи 1 [ИЗ ПОЛЯ идентификатор-1} ОБНОВИТЬ имя записи-1 [ИЗ ПОЛЯ идентификатор-1]

[ПРИ ОШИБКЕ КЛЮЧА повелительный-оператор-1 ]

[БЕЗ ОШИБКИ КЛЮЧА повслнтельный-оператор-2| (КОНЕЦ-ОБНОВИТЬ!

2.11.34

ИСКАТЬ В идентификатор ! [ МЕНЯЯ ( »лентиФ"ка™Р-2 ) | --|    -[ имя-индекса-1    ||

[В КОНЦЕ повелительный-операгор-11

I    I f повел ительный-опера гор-2    ||

| -КРГДА. У^овие-1 ( СЛЕдуЮщЕЕ.ПрЕдЛ0ЖЕнин..«

[КОНЕЦ-ИСКАТЬ]

ИСКАТЬ ОСОБО В идентификатор-1 [В КОНЦЕ

повелительиый-оператор-1 J

Страница 237

С. 236 ГОСТ 22558-89

имя-данного-1

РАВНО


идентификатор-3 литерал-1

КОГДА

арифметическое- выражение-1

имя-условия-1

РАВНО


нмя-данного-2

идентификатор-4 литерал-2

И

арифметическое- виражение-2

имя-условия-2

( повелительный-оператор-2    )

I СЛЕДУЮЩЕЕ ПРЕДЛОЖЕНИЕ [

[КОНЕЦ-ИСКАТЬ]

2.11.35

ПОСЛАТЬ нмя-коммуннкации-1 ИЗ ПОЛЯ идентификатор ! ПОСЛАТЬ имя коммуникации-1 [ИЗ ПОЛЯ идентификатор-1]

( С идентификатор-2 I С ИКС I С ИКЩ

С ИКГ

Г/До )

j идентификатор-3 I целое-1

миемоничсское-ии

ПРОДВИЖЕНИЯ

I 1 ПОСЛЕ f

СТРАНИЦЫ


[ЗАМЕНЯЯ СТРОКУ]

2.11.36

идентификатор 2 ... НА имя-иидекса-2 целое-1

(идентификатор-11 нмя-индекса-1 / ''

УСТАНОВИТЬ

236

Страница 238

ГОСТ 22558-89 С. 237

« [ПРИБАВЛЯЯ) УСТАНОВИТЬ {имя-иидскса-3}... ВЫЧИТАЯ— J

| идентификатор-3 |

{целое-2    J

УСТАНОВИТЬ ((мнемоническое имя-1}... НА

ГВКЛЮЧЕНО I ) ВЫКЛЮЧЕНО [ >•••

УСТАНОВИТЬ {имя-условия-1}... НА ИСТИНА

2.11.37

СОРТИРОВАТЬ имя файла-1

__ВОЗРАСТАНИЮ |__________„1

УБЫВАНИЮ-} КЛЮЧА {имя-даяного-1}    .

ГС ДУБЛИРОВАНИЕМ!

[АЛФАВИТ имя-алфавита-1]

ПРОЦЕДУРА ВВОДА имя-процедуры-1    ]

[ПО имя-процедуры-2)    I

ИСПОЛЬЗУЯ (имя-файла-2)...    J

I ПРОЦЕДУРА ВЫВОДА имя-процедуры-3    j

Г    [ПО нмя-процедуры-4|    I

I ПОЛУЧАЯ {имяфайла-3}...    J

2.11.38

ПОДВЕСТИ ЗАПИСЬ имя-файла-1

РАВЕН

БОЛЬШЕ

ключ

>

НЕ МЕНЬШЕ

имя-даниого-1

НЕ <

БОЛЬШЕ ИЛИ РАВЕН

> —

[ПРИ ОШИБКЕ КЛЮЧА повелительный-оператор-1] [БЕЗ ОШИБКИ КЛЮЧА повелительный-оператор-2) [КОНЕЦ-ПОДВЕСТИ1

237

Страница 239

С. 238 ГОСТ 22558-89

2.11.39

ОСТАНОВИТЬ

\РАБОТУ | литерал-1

2.11.40

| идентификатор-1 | литерал-1

ОГРАНИЧИВАЯСЬ

СОБРАТЬ

идеитнфикатор-2

литерал-2

РАЗМЕРОМ

В идентификатор-3 [УКАЗАТЕЛЬ идентификатор-41 [ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-11 [БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2] [КОНЕЦ-СОБРАТЬ]

2.11.41

ОТНЯТЬ | ^д^ификатор.!} ■ • * (идентификатор-2

[ОКРУГЛЯЯ]}...

[ПРИ ПЕРЕПОЛНЕНИИ повелнтельный-оператор-1 ] [БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2] |КОНЕЦ-ОТНЯТЬ]

отнять! ■vmp:r1    .)... от! ■■"'W™-2    „    1

-| идентификатор-1 J —( идентификатор-2 J

ПОЛУЧАЯ {иденгифнкатор-3 [ОКРУГЛЯЯ])...

[ПРИ ПЕРЕПОЛНЕНИИ повелительный-опсратор-11

|БЕЗ ПЕРЕПОЛНЕНИЯ повелителышй-оператор-21

[КОНЕЦ-ОТНЯТЬ!

[ СООТВЕТСТВЕННО ) uinnio соОТ В    идентификатор-1

ОТ идентификатор-2 [ОКРУГЛЯЯ]

[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1]

238

Страница 240

ГОСТ 22568-89 С. 239

(БЕЗ ПЕРЕПОЛНЕНИЯ повелнтельный-операгор-2) [КОНЕЦ-ОТНЯТЬ]

2. И.42

ПОДАВИТЬ ПЕЧАТЬ

2.11.43

ЗАКОНЧИТЬ (имя-отчета-1}...

2.11.44

РАЗОБРАТЬ идентификатор-1

ОГРАНИЧИВАЯСЬ |В