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

811 страниц

2443.00 ₽

Купить ГОСТ 22558-89 — бумажный документ с голограммой и синими печатями. подробнее

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

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

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

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

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

 Скачать PDF

Оглавление

Часть 1 Основные положения

1 Введение к стандарту

     1.1 Область действия и назначение

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

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

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

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

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

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

2 Список элементов языка по модулям

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

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

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

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

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

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

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

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

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

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

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

     2.12 Список элементов в модуле сегментации

3 Список элементов по разделам Кобола

     3.1 Общее описание

     3.2 Список элементов понятий языка

     3.3 Список элементов раздела идентификации

     3.4 Список элементов раздела оборудования

     3.5 Список элементов раздела данных

     3.6 Список элементов раздела процедур

Часть 2 Концепции и средства языка

1 Введение

2 Файлы

     2.1 Свойства файла

     2.2 Обработка файлов

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

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

     3.2 Структура отчета

     3.3 Операторы раздела процедур генератора отчетов

4 Обработка таблиц

     4.1 Определение таблиц

     4.2 Начальные значения таблиц

     4.3 Ссылки на табличные элементы

     4.4 Индексирование

5 Общая область памяти

6 Организация программ и программных связей

     6.1 Понятие программы и единицы исполнения

     6.2 Доступные данные и файлы

     6.3 Классы программ

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

     6.5 Внутрипрограммные связи

     6.6 Сегментация

7 Средства коммуникации

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

     7.2 Объектная программа Кобола

     7.3 Связь программы на Коболе с системой управления сообщениями и коммуникационными устройствами

     7.4 Понятие сообщений и сегментов сообщения

     7.5 Понятие очередей

     7 6 Понятие коммуникации транзакций

Часть 3 Глоссарии (словарь терминов Кобола)

1 Введение

2 Определения

Часть 4 Основные понятия

1 Введение

2 Обозначения, используемые в форматах и правилах

3 Правила

4 Понятия языка

     4.1 Набор литер

     4.2 Структура языка

     4.3 Понятие машинно-независимого описания данного

     4.4 Явные и неявные спецификации

     4.5 Внешний переключатель

5 Исходная Кобол-программа

     5.1 Введение

     5.2 Организация

     5.3 Структура

6 Разделы

     6.1 Раздел идентификации

     6.2 Раздел оборудования

     6.3 Раздел данных

     6.4 Раздел процедур

7 Формат представления

     7.1 Общее описание

     7.2 Описание формата представления

     7.3 Форматы раздела, секции, параграфа

     7.4 Статьи раздела данных

     7.5 Декларативы

     7.6 Заголовок конца программы

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

Часть 5 Форматы языка

1 Сводка форматов английской нотации

2 Сводка форматов русской нотации

Часть 6 Ядро

1 Введение в модуль ядра

     1.1 Назначение

     1.2 Характеристика уровней

     1.3 Ограничения по уровням, касающиеся общих характеристик языка

2 Исходная программа на Коболе

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

     2.2 Организация

     2.3 Структура

     2.4 Заголовок конца программы

3 Раздел идентификации в ядре

     3.1 Общее описание

     3.2 Организация

     3.3 Параграф PROGRAM-ID (ПРОГРАММА)

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

4 Раздел оборудования в ядре

     4.1 Общее описание

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

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

     4.4 ПАРАГРАФ OBJECT-COMPUTER (РАБОЧАЯ МАШИНА)

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

5 Раздел данных в ядре

     5.1 Общее описание

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

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

     5.4 Фраза BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ)

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

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

     5.7 Номер-уровня

     5.8 Фраза OCCURS (ПОВТОРЯЕТСЯ)

     5.9 Фраза PICTURE (ШАБЛОН)

     5.10 Фраза REDEFINES (ПЕРЕОПРЕДЕЛЯЕТ)

     5.11 Фраза RENAMES (ПЕРЕИМЕНОВЫВАЕТ)

     5.12 Фраза SIGN (ЗНАК)

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

     5.14 Фраза об использовании

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

6 Раздел процедур в ядре

     6.1 Общее описание

     6.2 Арифметические выражения

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

     6.4 Общие фразы и правила для форматов операторов

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

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

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

     6.8 Оператор COMPUTE (ВЫЧИСЛИТЬ)

     6.9 Оператор CONTINUE (ПРОДОЛЖИТЬ)

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

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

     6.12 Оператор ENTER (ВОЙТИ)

     6.13 Оператор EVALUATE (ОЦЕНИТЬ)

     6.14 Оператор EXIT (ВЫЙТИ)

     6.15 Оператор GO TO (ПЕРЕЙТИ)

     6.16 Оператор IF (ЕСЛИ)

     6.17 Оператор INITIALIZE (ИНИЦИИРОВАТЬ)

     6.18 Оператор INSPECT (ПРОСМОТРЕТЬ)

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

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

     6.21 Оператор PERFORM (ВЫПОЛНИТЬ)

     6.22 Оператор SEARCH (ИСКАТЬ)

     6.23 Оператор SET (УСТАНОВИТЬ)

     6.24 Оператор STOP (ОСТАНОВИТЬ)

     6.25 Оператор STRING (СОБРАТЬ)

     6.26 Оператор SUBTRACТ (ОТНЯТЬ)

     6.27 Оператор UNSTRING (РАЗОБРАТЬ)

7 Отладка в ядре

     7.1 Общее описание

     7.2 Переключатель времени компиляции

     7.3 Отладочные строки

Часть 7 Модуль последовательного ввода-вывода

1 Введение в модуль последовательного ввода-вывода

     1.1 Назначение

     1.2 Характеристика уровней

     1.3 Понятия языка

2 Раздел оборудования в модуле последовательного ввода вывода

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

     2.2 Параграф FILE CONTROL (УПРАВЛЕНИЕ ФАЙЛАМИ)

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

     2.4 Фраза ACCESS MODE (ДОСТУП)

     2.5 Фраза FILE STATUS (СОСТОЯНИЕ ФАЙЛА)

     2.6 Фраза ORGANIZATION IS SEQUENTIAL (ОРГАНИЗАЦИЯ ПОСЛЕДОВАТЕЛЬНАЯ)

     2.7 Фраза PADDING CHARACTER (ЛИТЕРА ЗАПОЛНИТЕЛЬ)

     2.8 Фраза RECORD DELIMITER (ОГРАНИЧИТЕЛЬ ЗАПИСИ)

     2.9 Фраза RESERVE (РЕЗЕРВИРОВАТЬ)

     2.10 Параграф I О CONTROL (УПРАВЛЕНИЕ ВВОДОМ ВЫВОДОМ)

     2.11 Фраза MULTIPLE PILE ТАРE (НА ОДНОЙ КАТУШКЕ)

     2.12 Фраза RERUN (ПЕРЕПРОГОН)

     2.13 Фраза SAME AREA (ОБЩАЯ ОБЛАСТЬ)

3 Раздел данных в модуле последовательного вывода вывода

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

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

     3.3 Фраза BLOCK CONTAINS (В БЛОКЕ)

     3.4 Фраза CODE SET (АЛФАВИТ)

     3.5 Фраза DATA RECORDS (ЗАПИСИ ДАННЫХ)

     3.6 Фраза LABEL RECOKDS (МЕТКИ)

     3.7 Фраза LINAGE (ВЕРСТКА)

     3.8 Фраза RECORD (В ЗАПИСИ)

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

4 Раздел процедур в модуле последовательного ввода вывода

     4.1 Общее описание

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

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

     4.4 Оператор READ (ЧИТАТЬ)

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

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

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

Часть 8 Модуль относительного ввода-вывода

1 Введение в модуль относительного ввода вывод

     1.1 Назначение

     1.2 Характеристика уровней

     1.3 Понятия языка

2 Раздел оборудования в модуле относительного ввода вывода

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

     2.2 Параграф FILE CONTROL (УПРАВЛЕНИЕ ФАЙЛАМИ)

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

     2.4 Фраза ACCESS MODE (ДОСТУП)

     2.5 Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ)

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

3 Раздел данных в модуле относительного ввода вывода

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

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

4 Раздет процедур в модуле относительного ввода вывода

     4.1 Общее описание

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

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

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

     4.5 Оператор READ (ЧИТАТЬ)

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

     4.7 Оператор START (ПОДВЕСТИ)

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

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

Часть 9 Модуль индексного ввода-вывода

1 Введение в модуль индексного ввода-вывода

     1.1 Назначение

     1.2 Характеристика уровней

     1.3 Понятия языка

2 Раздел оборудования в модуле индексного ввода-вывода

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

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

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

     2.4 Фраза ACCESS MODE (ДОСТУП)

     2.5 Фраза ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ)

     2.6 Фраза ORGANIZATION IS INDEXED (ОРГАНИЗАЦИЯ ИНДЕКСНАЯ)

     2.7 Фраза RECORD KEY (КЛЮЧ ЗАПИСИ)

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

3 Раздел данных в модуле индексного ввода-вывода

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

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

4 Раздел процедур в модуле индексного ввода-вывода

     4.1 Общее описание

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

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

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

     4.5 Оператор READ (ЧИТАТЬ)

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

     4.7 Оператор START (ПОДВЕСТИ)

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

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

Часть 10 Модуль межпрограммных связей

1 Введение в модуль межпрограммных связей

     1.1 Назначение

     1.2 Характеристика уровней

     1.3 Понятия языка

2 Вложенные исходные программы

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

     2.2 Организация

     2.3 Структура

     2.4 Начальное состояние программы

     2.5 Заголовок конца программы

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

     3.1 Параграф PROGRAM-ID (ПРОГРАММА) и вложенные исходные программы

4 Раздел данных в модуле межпрограммных связей

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

     4.2 Статья описания файла в модуле межпрограммных связей

     4.3 Статья описания данного в модуле межпрограммных связей

     4.4 Статья описания отчета в модуле межпрограммных связей

     4.5 Фраза EXTERNAL (ВНЕШНЕЕ)

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

5 Раздел процедур в модуле межпрограммных связей

     5.1 Заголовок раздела процедур

     5.2 Оператор CALL (ВЫЗВАТЬ)

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

     5.4 Оператор EXIT PROGRAM (ВЫЙТИ ИЗ ПРОГРАММЫ)

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

     5.6 Оператор USE BEFORE REPORTING (ИСПОЛЬЗОВАТЬ ВЫДАЧИ)

Часть 11 Модуль сортировки слияния

1 Введение в модуль сортировки слияния

     1.1 Назначение

     1.2 Понятия языка

2 Раздел оборудования в модуле сортировки слияния

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

     2.2 Параграф TILE CONTROL (УПРАВЛЕНИЕ ФАЙЛАМИ)

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

     2.4 Параграф I О CONTROL (УПРАВЛЕНИЕ ВВОДОМ ВЫВОДОМ)

     2.5 Фразы SAME RECORD AREA (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ), SАMI SORT/SORT MERGE AREA (ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ/СОРТИРОВКИ СЛИЯНИЯ)

3 Раздел данных в модуле сортировки слияния

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

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

4 Раздел процедур в модуле сортировки слияния

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

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

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

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

Часть 12 Модуль обработки исходных текстов

1 Введение в модуль обработки исходных текстов

2 Оператор COPY (КОПИРОВАТЬ)

3 Оператор REPLACE (ЗАМЕНИТЬ)

Часть 13 Модуль генератора отчетов

1 Введение в модуль генератора отчетов

     1.1 Назначение

     1.2 Понятия языка

2 Раздел оборудования в модуле генератора отчетов

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

     2.2 Параграф FILE CONTROL (УПРАВЛЕНИЕ ФАЙЛАМИ)

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

     2.4 Параграф I О CONTROL (УПРАВЛЕНИЕ ВВОДОМ ВЫВОДОМ)

3 Раздел данных в модуле генератора отчетов

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

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

     3.3 Фраза REPORT (ОТЧЕТ)

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

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

     3.6 Фраза CODE (С КОДОМ)

     3.7 Фраза CONTROL (УПРАВЛЕНИЕ)

     3.8 Фраза PAGE (РАЗМЕР СТРАНИЦЫ)

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

     3.10 Таблицы правил представления

     3.11 Фраза COLUMN NUMBER (НОМЕР СТОЛБЦА)

     3.12 Фраза «имя данного»

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

     3.14 Номер уровня

     3.15 Фраза LINF NUMBER (НОМЕР СТРОКИ)

     3.16 Фраза NEXT GROUP (СЛЕДУЮЩАЯ ГРУППА)

     3.17 Фраза SIGN (ЗНАК)

     3.18 Фраза SOURCE (ИСТОЧНИК)

     3.19 Фраза SUM (СУММА)

     3.20 Фраза TYPE (ТИП)

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

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

4 Раздел процедур в модуле генератора отчетов

     4.1 Общее описание

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

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

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

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

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

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

     4.8 Оператор USE AFTER STANDARD EXCEPTION PROCEDURE (ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБКИ)

     4.9 Оператор USE BEFORE REPORTING (ИСПОЛЬЗОВАТЬ ДО ВЫДАЧИ)

Часть 14 Модуль коммуникаций

1 Введение в модуль коммуникаций

     1.1 Назначение

     1.2 Характеристика уровней

2 Раздел данных в модуле коммуникаций

     2.1 Секция коммуникаций

     2.2 Статья описания коммуникации

3 Раздел процедур в модуле коммуникации

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

     3.2 Оператор DISABLE (ЗАПРЕТИТЬ)

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

     3.4 Оператор PURGE (ОЧИСТИТЬ)

     3.5 Оператор RECEIVE (ПОЛУЧИТЬ)

     3.6 Оператор SEND (ПОСЛАТЬ)

Часть 15 Модуль отладки

1 Введение в модуль отладки

     1.1 Назначение

     1.2 Характеристика уровней

     1.3 Понятия языка

2 Раздел оборудования в модуле отладки

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

3 Раздел процедур в модуле отладки

     3.1 Общее описание

     3.2 Оператор USE FOR DEBUGGING (ИСПОЛЬЗОВАТЬ ДЛЯ ОТКЛАДКИ)

Часть 16 Модуль сегментации

1 Введение в модуль сегментации

     1.1 Назначение

     1.2 Характеристика уровней

     1.3 Область действия

     1.4 Организация

     1.5 Классификация сегментации

     1.6 Управление сегментацией

2 Раздел оборудования в модуле сегментации

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

     2.2 Параграф OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА)

     2.3 Фраза SEGMENT-LIMIT (ГРАНИЦА СЕГМЕНТОВ)

3 Раздел процедур в модуле сегментации

     3.1 Общее описание

     3.2 Номера сегментов

     3.3 Ограничения на программный поток

Приложение 1 Отличия между предыдущим и настоящим стандартом

1 Перечень отличий

     1.1 Перечень отличий в понятиях языка

     1.2 Перечень отличий в разделе идентификации

     1.3 Перечень отличий в разделе оборудования

     1.4 Перечень отличий в разделе данных

     1.5 Перечень отличий в разделе процедур

     1.6 Дополнительный список отличий

2 Существенные изменения

     2.1 Существенные изменения, не влияющие на имеющиеся программы

     2.2 Существенные изменения, потенциально влияющие на имеющиеся программы

Приложение 2 Списки элементов языка

1 Список устаревших элементов языка

2 Список элементов языка, определяемых реализацией

3  Список элементов, языка, зависящих от оборудования

4 Список неопределенных элементов языка

Информационные данные

 
Дата введения01.01.1991
Добавлен в базу01.09.2013
Актуализация01.01.2021

Этот ГОСТ находится в:

Организации:

20.12.1989УтвержденГосстандарт СССР3894

Programming language COBOL

Стр. 1
стр. 1
Стр. 2
стр. 2
Стр. 3
стр. 3
Стр. 4
стр. 4
Стр. 5
стр. 5
Стр. 6
стр. 6
Стр. 7
стр. 7
Стр. 8
стр. 8
Стр. 9
стр. 9
Стр. 10
стр. 10
Стр. 11
стр. 11
Стр. 12
стр. 12
Стр. 13
стр. 13
Стр. 14
стр. 14
Стр. 15
стр. 15
Стр. 16
стр. 16
Стр. 17
стр. 17
Стр. 18
стр. 18
Стр. 19
стр. 19
Стр. 20
стр. 20
Стр. 21
стр. 21
Стр. 22
стр. 22
Стр. 23
стр. 23
Стр. 24
стр. 24
Стр. 25
стр. 25
Стр. 26
стр. 26
Стр. 27
стр. 27
Стр. 28
стр. 28
Стр. 29
стр. 29
Стр. 30
стр. 30

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


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

ГОСТ 22558—89 (СТ СЭВ 6184-88, ИСО 1989-85)

ЧАСТИ 1—7


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


*

о

d

ю


ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО УПРАВЛЕНИЮ КАЧЕСТВОМ ПРОДУКЦИИ И СТАНДАРТАМ Москва


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

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

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

Programming language COBOL

ГОСТ

22558—89

(СТ СЭВ 6184—88, ИСО 1989—85)

ОКСТУ 401 202.

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

Часть 1. ОСНОВНЫЕ ПОЛОЖЕНИЯ 1. ВВЕДЕНИЕ К СТАНДАРТУ

1.1.    Область действия и назначение

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

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

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

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

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

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

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

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

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

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

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

отладка;

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

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

С. 10 ГОСТ 22558-89

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

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

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

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

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

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

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

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

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

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

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

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

10

ГОСТ 22558-89 С. И

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

в указанном уровне модуля.

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

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

Элемент

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

Уровень 1    Уровень    2

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

Набор литер

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

+

+

X

X

X

Литеры, используемые для слов в английской нотации О—9, A—Z, - (дефис) в русской нотации А—Я, D, F, G, I, J, L, N, Q, R, S, U, V, W, Y, Z, 0-9, (дефис)

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

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

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

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

- • > Z(n) *    $(°)    OCR(KP)    ЭВ(ДБ)    /

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

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

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

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

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

Разделители

» ( ) . , ; пробел .......

: (двоеточие) ........

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

Слова Кобола

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

1

+

.X

X

Не более 30 литер.......

Слова, определенные пользователем

имя-алфавита.......

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

имя-условия ......

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

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

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

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

имя-параграфа......

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

имя-программного-модуля .... имя-секции .......

11

Уровень 1 Уровень 2


символ и ческа я-л итера.....

Системные-имена

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

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

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

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

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

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

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

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

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

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

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

Слова специального назначения Стандартные константы ZERO (НУЛЬ), ZEROS, ZEROES (НУЛИ), SPACE (ПРОБЕЛ), SPACES (ПРОБЕЛЫ), HIGH-VALUE (НАИБОЛЬШЕЕ-ЗНАЧЕ-НИЕ),    HIGH-VALUES    (НАИБОЛЫЫИЕ-

ЗНАЧЕНИЯ), LOW-VALUE (НАИМЕНЬ-ШЕЕ-ЗНАЧЕНИЕ), LOW-VALUES (НАИ-МЕНЬШИЕ-ЗНАЧЕНИЯ), QUOTE (КАВЫЧКА), QUOTES (КАВЫЧКИ).....

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

Литералы

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

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

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

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

50 уточнителей .    ......

Индексирование

3 уровня индексов.......

7 уровней индексов .    .

Индексирование литералом Индексирование именем-данного Индексирование именем индекса . Относительное индексирование .

Модификация ссылки ...

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


X

X

+

X

X


X

X

X


X


X

X

X

+


X


X

X

X

X

X


X


X


ХХ+ XX X XXX    X    X    XX    Х+    |Х    IXXXXXX


X


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

X

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

X

X

X

X

X

X

X

X

X

X

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

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

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

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

Строки комментария с дробной чертой (/)

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

X

X

X

X

X

X

X

X

X

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

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

Раздел оборудования необязателен

Раздел данных необязателен.....

Раздел процедур необязателен .

Заголовок конца программы.....

X

X

+

+

+

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

Параграф PROGRAM-ID (ПРОГРАММА) .

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

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

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

X

X

4-

4-

4-

4-

4-

4-

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

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

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

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

X

X

X

X

X

+

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

4-

X

X

X

X

X

X

X

X

X

X

МАШИНА)........

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

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

Параграф OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА) ..........

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

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

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

Фраза ALPHABET (АЛФАВИТ) вариант STANDARD-1 (СТАНДАРТ-А) вариант STANDARD-2 (СТАНДАРТ-М) вариант NATIVE (ВНУТРЕННИЙ)

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

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

Фраза CLASS (КЛАСС).....

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

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

X

X

X

X

X

X

X

X

X

вариант IS мнемоническое имя .... вариант ON STATUS IS имя-условия (ВКЛЮЧЕНО имя-условия)......

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

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

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

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

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

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

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

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

Фраза BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ)........

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

Фраза FILLER (ЗАПОЛНИТЕЛЬ)

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

Фраза номер-уровня......

от 01 до 49; одна или две цифры

66..........

77..........

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

фраза INDEXED BY (ИНДЕКСИРУЕТСЯ) . фраза целое-1 ТО целое-2 TIMES DEPENDING ON (целое-1 ДО целое-2 РАЗ В ЗАВИСИМОСТИ ОТ) ........

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

строка-литер содержит не более 30 литер

литеры данных X 9 А.....

операционные символы: S(3) V(T) Р(М) литеры фиксированной вставки В — . 0

$    ( а ) CR (КР) DB (ДБ) /    .    .

X

X

X

X

X

X

X

X

X

X

_

X

X

X

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

+ - Z(n)    $    ( nv )    •    •    •    •

замена валютного знака.....

замена десятичной точки    .

Фраза REDEFINES (ПЕРЕОПРЕДЕЛЯЕТ) .

не может быть вложенной.....

может быть вложенной.....

Фраза RENAMES (ПЕРЕИМЕНОВЫВАЕТ) Фраза SIGN (ЗНАК).....

Фраза SYNCHRONIZED (ВЫДЕЛЕНО) . Фраза USAGE (об использовании)

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

X

X

X

X

X

X

X

X

X

X

X

X

X

_

X

X

BINARY (ДВОИЧНОЕ).....

COMPUTATIONAL" (ДЛЯ ВЫЧИСЛЕНИИ) DISPLAY (ДЛЯ ВЫДАЧИ)    .

INDEX (ДЛЯ ИНДЕКСА)    .

PACKED-DECIMAL (ДЕСЯТИЧНОЕ) . Фраза VALUE (ЗНАЧЕНИЕ) .

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

несколько литералов ......

литерал-1 THROUGH литерал-2 (литерал-1 ПО

литерал-2)........

несколько диапазонов литералов

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

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

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

_ * !

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

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

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

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

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

[NOT] > ([НЕ] >).....

[NOT] LESS THAN ([НЕ] МЕНЬШЕ)

[NOT]< ([НЕ] <).....

[NOT] EQUAL TO ([NE] РАВНО) . [NOTH ([HE] =)    .    -    -    •

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

>=........

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

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

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

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

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

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

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

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

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

Сложное условие......

Знаки логических операций AND (И) OR

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

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

15


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

__

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

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

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

Арифметические операторы.....

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

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

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

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

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

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

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

число передач данных не ограничивается .

фраза FROM мнемоническое-имя (С мнемониче-

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

фраза FROM DATE/DAY/DAY-OF-WEEK/TIME (ДАТУ/ДЕНЬ/ДЕНЬ/-НЕДЕЛИ/ВРЕМЯ)

Оператор 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 (КОНЕЦ-ВЫЧИСЛИТЬ) Оператор CONTINUE (ПРОДОЛЖИТЬ)

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

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

16

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

_

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 * (БЕЗ ПРОДВИЖЕНИЯ) .......

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

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

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

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

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

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

фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) ........

фраза END-DIVIDE (КОНЕЦ-РАЗДЕЛИТЬ) .

Оператор ENTER (ВОЙТИ).....

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

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

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

TRUE/FALSE (ИСТИНА/ЛОЖЬ)

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

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

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

фраза WHEN OTHER (ИНАЧЕ) фраза END-EVALUATE (КОНЕЦ-ОЦЕНИТЬ) .

Оператор EXIT (ВЫЙТИ).....

Оператор GO ТО (ПЕРЕЙТИ К) .

имя-процедуры обязательно.....

имя-процедуры необязательно .

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

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

Оператор IF (ЕСЛИ)......

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

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

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

фраза END-IF (КОНЕЦ-ЕСЛИ)

17


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

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

ЛЕ)........

несколько фраз 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 (БЕЗ ПЕРЕПОЛ

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

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

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

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

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

НИТЬ) ...    ...

фраза TIMES (РАЗ).....

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

фраза TEST 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

X

X


ХХХХХ IXXX ХХХХ XX ХХХХ X X XXX X X XX X ХХХХ XX XXX


X


U


фраза    VARYING    (МЕНЯЯ)    .

х

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

фраза AFTER (ЗАТЕМ).....

допускаются по крайней мере 6 фраз AFTER

(ЗАТЕМ)........

Оператор    SEARCH    (ИСКАТЬ)    .

фраза    VARYING    (МЕНЯЯ)    .

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

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

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

Оператор SET (УСТАНОВИТЬ)    X

имя-индекса/идентификатор ТО (НА) .    .    X

имя-индекса UP BY/DOWN BY (имя-индекса ПРИБАВЛЯЯ/ВЫЧИТАЯ) ....    X

мнемоническое-имя ТО ON/OFF (мнемоническое-имя НА ВКЛЮЧЕНО/ВЫКЛЮЧЕНО) .    .    X

имя-условия ТО TRUE (имя-условия НА ИСТИНА) .......... -

Оператор STOP (ОСТАНОВИТЬ) ....    X

RUN (РАБОТУ)....... X

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

Оператор STRING (СОБРАТЬ) . несколько DELIMITED BY (ОГРАНИЧИВАЯСЬ) .........

фраза WITH POINTER (УКАЗАТЕЛЬ) фраза ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ) .........

фраза NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ) .........

фраза END-STRING (КОНЕЦ-СОБРАТЬ)

несколько фраз WHEN (КОГДА) фраза END-SEARCH (КОНЕЦ-ИСКАТЬ) Оператор SEARCH ALL (ИСКАТЬ ОСОБО) фраза AT END (В КОНЦЕ) . фраза WHEN (КОГДА) . фраза END-SEARCH (КОНЕЦ-ИСКАТЬ)

Оператор SUBTRACT (ОТНЯТЬ) ....    X

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

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

FROM идентификатор (ОТ идентификатор) .    X

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

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

GIVING несколько идентификаторов (ПОЛУЧАЯ несколько идентификаторов) ...    X

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

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

фраза NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) ......... X

фраза END-SUBTRACT (КОНЕЦ-ОТНЯТЬ) .    X

19


С. 2 ГОСТ 22558-89

ня 2. Элементы уровня 1 модуля являются подмножеством элементов уровня 2 того же модуля; два модуля содержат только элементы уровня 1.

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

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

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

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

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

2

Элемент


Уроьень 1    Уровень    2


фраза CORRESPONDING (СООТВЕТСТВЕННО) .........

Оператор UNSTRING (РАЗОБРАТЬ)

фраза DELIMITED BY (ОГРАНИЧИВАЯСЬ)

фраза DELIMITER IN (ОГРАНИЧИТЕЛЬ В)

фраза COUNT IN (СЧЕТ В)

фраза WITH POINTER (УКАЗАТЕЛЬ)

фраза TALLYING (СЧИТАЯ В)

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


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

фраза NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ) .........

фраза END-UNSTRING (КОНЕЦ-РАЗОБРАТЬ)


X

X

X

X

X

X

X

X

X

X


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


Элемент


Уровень 1    Уровень    2


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


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


имя-записи Зарезервированные слова Специальный регистр (СЧЕТЧИК-ВЕРСТКИ) Состояние ввода-вывода РАЗДЕЛ ОБОРУДОВАНИЯ


LINAGE-COUNTER


X

X

X

X

__

X

X

X


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

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

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

фраза SELECT (ДЛЯ) .... фраза OPTIONAL (НЕОБЯЗАТЕЛЬНОГО) только входной, входной-выходной и дополняе


мый ........

фраза ACCESS MODE IS SEQUENTIAL (ДОС ТУП ПОСЛЕДОВАТЕЛЬНЫЙ) . фраза ASSIGN (НАЗНАЧИТЬ) .

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


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

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


X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X


ГОСТ 22558-89 С. 3

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

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

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

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

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

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

з

С. 4 ГОСТ 22558-89

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4

ГОСТ 22558-89 С. 5

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

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

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

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

следующие обозначения.

Ядро

ЯДР

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

под

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

отд

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

ИПД

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

МПС

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

СРТ

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

оит

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

гот

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

ком

Отладка

отл

Сегментация

СЕГ

5

Подмножества

Кобола

Обязатедьн ме (обязательны в под

ЯДРО

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

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

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

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

Максима ль-ное

2 ЯДР 1.2

2 ПОД 1,2

2 ОТД 0,2

2 ИПД 0,2

2 МПС 1,2

Промежу

точное

1 ЯДР 1,2

1 ПОД 1,2

1 ОТД 0,2

: ипд 0.2

1 МПС 1,2

Минималь

ное

1 ЯДР 1,2

1 ПОД 1,2

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

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

1 МПС 1,2

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

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

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

Имеются три подмножества стандарта языка Кобол:    макси

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

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

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

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

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

6

ГОСТ 22558-89 С. 7

Таблица 1

модули

множествах)

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

Сортиров

ка-слияние

Обработка

исходных

текстов

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

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

Отладка

Сегментация

1 СРТ 0,1

2 ОПТ 0,2

2 КОМ 0,2

2 ОТЛ 0,2

2 СЕГ 0,2

1 СРТ 0,1

1 ОИТ 0,2 .

1 ГОТ 0,1

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

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

1 КОМ 0,2

1 ОТЛ 0,2

1 СЕГ 0,2

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

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

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

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

Реализация должна поддерживать синтаксис и обеспечивать

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

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

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

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

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

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

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

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

1.5.2.5. Уточнения

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

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

ГОСТ 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

1

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

2

   ©    Издательство    стандартов,    1991

Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен без разрешения Госстандарта СССР