ГОСУДАРСТВЕННЫЙ СТАНДАРТ
СОЮЗА ССР
ЯЗЫК ПРОГРАММИРОВАНИЯ
КОБОЛ
ГОСТ 22558—89
(СТ СЭВ 6184—88, ИСО 1989—85)
ЧАСТИ 1—7
Издание официальное
5 р. 90
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО УПРАВЛЕНИЮ
КАЧЕСТВОМ ПРОДУКЦИИ И СТАНДАРТАМ
Москв
а
УДК 681.3.06:006.354 Группа П85
ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР
Г
ЯЗЫК ПРОГРАММИРОВАНИЯ КОБОЛ
Programming language COBOL
ОСТОКСТУ 40Ю2.
Дата введения 01.01.91
Часть 1. ОСНОВНЫЕ ПОЛОЖЕНИЯ
ВВЕДЕНИЕ К СТАНДАРТУ
Область действия и назначение
Настоящий стандарт распространяется на форму и интерпретацию программ, выраженных в русской или английской нотации языка Кобол. Он предназначен для обеспечения высокой степени машинной независимости Кобол-программ и их совместимости в различных системах автоматической обработки данных.
Структура спецификаций языка
Организация спецификаций Кобола в настоящем документе базируется на понятии функционального обрабатывающего модуля. В языке выделены одиннадцать функциональных обрабатывающих модулей:
ядро;
последовательный ввод-вывод;
относительный ввод-вывод;
индексный ввод-вывод;
межпрограммные связи;
сортировка-слияние;
обработка исходных текстов;
генератор отчетов;
коммуникации;
отладка;
сегментация.
Девять из модулей, как указано ниже, содержат элементы, которые в модуле разделены на элементы уровня 1 и элементы уров-
Издание официальное
★ © Издательство стандартов, 1991
Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен без разрешения Госстандарта СССР ня 2. Элементы уровня 1 модуля являются подмножеством элементов уровня 2 того же модуля; два модуля содержат только элементы уровня 1.
Модуль ядра содержит элементы языка для внутренней обработки данных в базисной структуре четырех разделов программ. Ядро также содержит элементы языка для определения таблиц и доступа к ним. Элементы ядра разделены на два уровня. Уровень 1 ядра содержит элементы, необходимые для выполнения основных внутренних операций, т. е. элементарные варианты различных фраз и операторов. Уровень 2 ядра обеспечивает более широкие возможности внутренней обработки данных.
Модуль последовательного ввода-вывода содержит элементы языка для определения файлов с последовательной организацией и доступа к ним. Элементы модуля последовательного ввода-вывода разделены на два уровня. Уровень 1 модуля последовательного ввода-вывода включает элементы для основных возможностей определения и доступа к последовательным файлам. Уровень 2 модуля последовательного ввода-вывода содержит элементы для полных возможностей определения и доступа к последовательным файлам.
Модуль относительного ввода-вывода содержит элементы языка для определения файлов массовой памяти, записи которых идентифицируются своими относительными номерами, доступа к ним. Элементы модуля относительного ввода-вывода разделены на два уровня. Уровень 1 относительного ввода-вывода содержит элементы для основных возможностей определения файлов с относительной организацией и доступа к ним. Уровень 2 относительного ввода-вывода содержит элементы для более полных возможностей, включающих возможность как произвольного, так и последовательного доступа к файлу в одной и той же программе Кобола.
Модуль индексного ввода-вывода содержит элементы языка для определения файлов массовой памяти и доступа к ним. Записи этих файлов идентифицируются значением ключа и доступны посредством индекса. Элементы модуля индексного ввода-вывода разделены на два уровня. Уровень 1 индексного ввода-вывода содержит элементы для основных возможностей определения и доступа к индексным файлам. Уровень 2 индексного ввода-вывода содержит элементы для более полных возможностей, включающих дополнительные ключи и возможность как произвольного, так и последовательного доступа к файлу в одной и той же программе Кобола.
Модуль межпрограммных связей содержит элементы языка, позволяющие программе поддерживать связь с одной или несколькими другими программами. Элементы модуля межпрограммных связей разделяются на два уровня. Уровень 1 межпрограммныхсвязей предоставляет элементы для передачи управления другой программе, известной во время компиляции, и для доступа к определенным общим данным в обеих программах. Уровень 2 межпрограммных связей предоставляет элементы для передачи управления другой программе, не идентифицированной во время компиляции, и для обеспечения вложенности программ.
Модуль сортировки-слияния содержит элементы языка для упорядочения одного или нескольких файлов. Модуль сортировки- слияния также содержит элементы языка для соединения двух или более идентично упорядоченных файлов. По желанию пользователь может применить некоторую специальную обработку к каждой из отдельных записей посредством процедур ввода или вывода. Модуль сортировки-слияния содержит элементы только одного уровня.
Модуль обработки исходного текста содержит элементы языка для вставки и замены текста исходной программы как части компилируемой исходной программы. Элементы модуля обработки' исходного текста разделены на два уровня. Уровень 1 модуля предоставляет возможность копирования текста в исходную программу из единственной библиотеки. Уровень 2 данного модуля предоставляет дополнительные возможности изменения библиотечного текста в процессе копирования, определения нескольких библиотек Кобола во время компиляции и изменения текста исходной программы.
Модуль генератора отчетов содержит элементы языка для полуавтоматического производства печатных отчетов. Модуль генератора отчетов содержит элементы только одного уровня.
Модуль коммуникаций содержит элементы языка для получения, обработки и создания сообщений или их частей и для связи с коммуникационными устройствами при помощи системы управления сообщениями. Элементы модуля коммуникаций разделены на два уровня. Уровень 1 коммуникаций предоставляет элементы для основных возможностей передачи или получения полных сообщений. Уровень 2 коммуникаций предоставляет элементы для более широких возможностей, включающих возможность посылать или получать сегменты сообщения.
Модуль отладки предоставляет средства, при помощи которых пользователь может указывать свой алгоритм отладки — условия, при которых данные или процедуры контролируются во время выполнения программы. Элементы модуля отладки разделяются на два уровня. Уровень 1 модуля отладки предоставляет основные возможности отладки, включающие возможность указывать выборочное или полное контролирование параграфов. Уровень 2 модуля отладки предоставляет полные возможности отладки в языке Кобол.
Модуль сегментации обеспечивает совмещение памяти для секций раздела процедур во время выполнения. Элементы модуля сегментации разделены на два уровня. Уровень 1 сегментации предусматривает номера сегментов секций и фиксированные границьь сегментов. Уровень 2 сегментации добавляет средства изменения границы сегментов.
Структура документа
Настоящий документ состоит из 17 частей.
Часть 1 содержит справочные сведения о языке и состоит из= введения к стандарту и списка элементов языка.
Часть 2 представляет концепции, имеющие отношение к использованию и организации средств языка Кобол.
Часть 3 состоит из глоссария, определяющего термины в соответствии с их значением в Коболе.
Часть 4 содержит общие сведения.
Часть 5 содержит сводки форматов в английской и русской нотациях.
Части 6—16 содержат спецификации одиннадцати функциональных обрабатывающих модулей. В этих частях спецификации уровня 2 выделены рамкой.
В частях 2—16 включены подробные спецификации стандарта языка Кобол. В части 17 содержатся приложения.
Рекомендации по использованию текста стандарта
Очевидно, что стандарт будет изучаться с нескольких различных точек зрения.
Ключом к изучению стандарта, кроме оглавления, служит также список элементов по модулям, в котором содержится подробная конкретизация каждого элемента стандарта Кобола в данном модуле. Например, установить содержание уровня 1 модуля последовательного ввода-вывода можно, найдя список элементов Кобола, включающий общие сведения, статьи раздела оборудования, статьи раздела данных и глаголы раздела процедур, имеющие отношение к модулю последовательного ввода-вывода.
Спецификация каждого из элементов языка производится как для русской, так и для английской нотаций. Там, где это требуется в тексте настоящего стандарта, приводятся форматы. Между конструкциями английской и русской нотаций языка Кобол, специфицированных настоящим стандартом, существует полное семантическое соответствие, если исходные данные объектной программы подготовлены без использования русского алфавита. Там, где в тексте требуется ссылка на лексические элементы языка, первым приводится лексический элемент английской нотации, за ним в скобках следует элемент русской нотации. Форматы языковых конструкций приводятся также для английской и русской нотаций. Спецификации особенностей использования данных, представленных в русской лексике, снабжаются пометкой «для русской нотации».
Определение модулей и их уровней, на которых появляются определенные средства языка, приводится в списке элементов Кобола по разделам Кобола. В этом списке приведены в деталях все элементы стандарта языка Кобол и указано их появление в различных модулях. Элементы, не содержащиеся полностью на одном уровне модуля, приведены в деталях, достаточных для определения нахождения каждого подэлемента. Например, оператор READ (ЧИТАТЬ) появляется на уровне 1 модуля последовательного ввода-вывода, относительного ввода-вывода и индексного ввода-вывода. Так как определенные фразы оператора READ (ЧИТАТЬ) появляются только на уровне 2 этих модулей, подэлементы оператора READ (ЧИТАТЬ) вынесены в отдельный список.
Графическое представление 11 функциональных обрабатывающих модулей, образующих стандарт Кобола, показано в табл. 1, в которой используются сокращения (например, 2 ИПД 0,2), указывающие иерархическую позицию каждого уровня в функциональном обрабатывающем модуле, также как и число уровней, на которые разделены элементы модуля. Сокращенная запись состоит (слева направо) из однозначного числа, указывающего позицию уровня в иерархии, трехбуквенного обозначения модуля и двух однозначных чисел, указывающих минимальный и максимальный уровни модуля. Число нуль указывает, что допустимо пустое подмножество, соответствующее наименьшему уровню в модуле. Например, 2 ИПД 0,2 указывает, что этот уровень является вторым уровнем модуля индексного ввода-вывода, который содержит нулевой уровень и два ненулевых уровня (уровень 1 и уровень 2). 2 Я ДР 1,2 указывает, что этот уровень является вторым ненулевым уровнем ядра, которое состоит из двух ненулевых уровней (уровень 1 и уровень 2).
Для указания модулей используются следующие обозначения.
Ядро ЯДР
Последовательный ввод-вывод ПОД
Относительный ввод-вывод ОТД
Индексный ввод-вывод ИПД
Межпрограммные связи МПС
Сортировка-слияние СРТ
Обработка исходных текстов ОИТ
Генератор отчетов ГОТ
Коммуникации КОМ
Отладка ОТЛ
Сегментация СЕГ |
|
|
|
Обязательн ые (обязательны в под |
||
Подмножества Кобола |
Ядро |
Последовательный ввод-вывод |
Относительный ввод-вывод |
Индексный ввод-вывод |
Межпрограммные связи |
|
Максимальное |
2 ЯДР 1.2 |
2 ПОД 1,2 |
2 ОТД 0,2 |
2 ИПД 0,2 |
2 МПС 1,2 |
|
Промежуточное |
1 ЯДР 1,2 |
1 ПОД 1,2 |
1 ОТД 0,2 |
I ИПД 0.2 |
1 МПС 1,2 |
|
Минимальное |
1 ЯДР 1,2 |
1 ПОД 1,2 |
Нуль (пустое подмножество) |
Нуль (пустое подмножество) |
1 МПС 1,2 |
|
Определение реализации стандарта языка Кобол
В этом документе представлены описания средств языка, образующих стандарт языка Кобол. Стандарт языка Кобол состоит из 11 модулей, семь из которых обязательны и четыре — необязательны. В п. 1.5 и его подпунктах определены критерии для правильного определения того, насколько реализация соответствует стандарту языка Кобол.
1.5.1.Определение подмножеств
Имеются три подмножества стандарта языка Кобол: максимальное подмножество, промежуточное подмножество и минимальное подмножество. Каждое подмножество состоит из уровня семи обязательных модулей: ядра, последовательного ввода-вывода, относительного ввода-вывода, индексного ввода-вывода, межпрограммных связей, сортировки-слияния и обработки исходных текстов. В табл. 1 подмножество стандарта языка Кобол представлено одной из трех горизонтальных строк в столбцах обязательных модулей. Четыре модуля (генератор отчетов, коммуникации, отладка и сегментация) являются необязательными в трех подмножествах стандарта языка Кобол.