ГОСТ 22558-89
(СТ СЭВ 6184-88,
ИСО 1989-85)
Группа П85
ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР
ЯЗЫК ПРОГРАММИРОВАНИЯ КОБОЛ
Programming language COBOL
ЧАСТИ 1-7
ОКСТУ 4002
Дата введения 1991-01-01
ИНФОРМАЦИОННЫЕ ДАННЫЕ
1. РАЗРАБОТАН И ВНЕСЕН Академией наук УССР
РАЗРАБОТЧИКИ
Е.Л.Ющенко, член-корр. АН УССР (руководитель темы); Л.П.Бабенко, канд. физ.-мат. наук; Г.А.Карпенко; Н.К.Лищитович; Л.А.Мельник; М.Р.Тарановский; Г.В.Пеледов; А.С.Марков; А.А.Севастюк; Л.М.Романовская; Л.К.Загузова
2. УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Государственного комитета СССР по стандартам от 20.12.89 N 3894
3. Срок первой проверки 1996 г.; периодичность проверки - 5 лет.
4. Стандарт полностью соответствует СТ СЭВ 6184-88
5. Стандарт полностью соответствует международному стандарту ИСО 1989-85
6. ВЗАМЕН ГОСТ 22558-77
7. ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ
Обозначение НТД, на который дана ссылка | Номер приложения |
Приложение 1 |
______________
* На территории Российской Федерации документ не действует. Действует ГОСТ 22558-89 (настоящий стандарт). - Примечание изготовителя базы данных.
Настоящий стандарт распространяется на форму и интерпретацию программ, выраженных в русской или английской нотации языка Кобол. Он предназначен для обеспечения высокой степени машинной независимости Кобол-программ и их совместимости в различных системах автоматической обработки данных.
Организация спецификаций Кобола в настоящем документе базируется на понятии функционального обрабатывающего модуля. В языке выделены одиннадцать функциональных обрабатывающих модулей:
ядро;
последовательный ввод-вывод;
относительный ввод-вывод;
индексный ввод-вывод;
межпрограммные связи;
сортировка-слияние;
обработка исходных текстов;
генератор отчетов;
коммуникации;
отладка;
сегментация.
Девять из модулей, как указано ниже, содержат элементы, которые в модуле разделены на элементы уровня 1 и элементы уровня 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).
Для указания модулей используются следующие обозначения.
Ядро | ЯДР |
Последовательный ввод-вывод | ПОД |
Относительный ввод-вывод | ОТД |
Индексный ввод-вывод | ИПД |
Межпрограммные связи | МПС |
Сортировка-слияние | СРТ |
Обработка исходных текстов | ОИТ |
Генератор отчетов | ГОТ |
Коммуникации | КОМ |
Отладка | ОТЛ |
Сегментация | СЕГ |
Таблица 1
Подмно- | Обязательные модули (обязательны в подмножествах) | Необязательные модули (не обязательны в подмножествах) | |||||||||
Ядро | Последо- | Относи- | Индексный ввод- | Межпрог- | Сорти- | Обра- | Гене- | Коммуни- | Отладка | Сегмен- | |
Макси- | 2 ЯДР 1,2 | 2 ПОД 1,2 | 2 ОТД 0,2 | 2 ИПД 0,2 | 2 МПС 1,2 | 1 СРТ 0,1 | 2 ОИТ 0,2 | 1 ГОТ 0,1 | 2 КОМ 0,2 | 2 ОТЛ 0,2 | 2 СЕГ 0,2 |
Проме- | 1 ЯДР 1,2 | 1 ПОД 1,2 | 1 ОТД 0,2 | 1 ИПД 0,2 | 1 МПС 1,2 | 1 СРТ 0,1 | 1 ОИТ 0,2 | 1 КОМ 0,2 | 1 ОТЛ 0,2 | 1 СЕГ 0,2 | |
Мини- | 1 ЯДР 1,2 | 1 ПОД 1,2 | Нуль (пустое подмно- | Нуль (пустое подмн- | 1 МПС 1,2 | Нуль (пустое подмно- | Нуль (пустое подмно- |