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

    1. Назначение

В идеальном случае все программные сегменты, имеющие номера-сегментов от 0 до 49, специфицируются как постоянные сегменты. Однако, когда доступная память недостаточна для того, чтобы разместить все постоянные сегменты плюс макси­мальный перекрываемый сегмент, становится необходимым сок­ратить число постоянных сегментов. Фраза SEGMENT-LIMIT (ГРАНИЦА СЕГМЕНТОВ) дает пользователю средство, кото­рым он может уменьшить число постоянных сегментов в своей программе с сохранением логических свойств сегментов фикси­рованной части (номера-сегментов от 0 до 49).

  1. Общий формат

SEGMENT-LIMIT IS номер-сегмента

  1. ГРАНИЦА СЕГМЕНТОВ номер-сегментаСинтаксическое правило

Номер-сегмента должен быть целым, принимающим значе­ния от 0 до 49.

  1. Общие правила

  1. Если задана фраза SEGMENT-LIMIT (ГРАНИЦА СЕГ­МЕНТОВ), то в качестве постоянных сегментов объектной про­граммы рассматриваются только сегменты, имеющие номера от О до (но не включая) номера, специфицированного фразой SEGMENT-LIMIT (ГРАНИЦА СЕГМЕНТОВ).

  2. Сегменты, имеющие номера от номера, специфицирован­ного фразой SEGMENT-LIMIT (ГРАНИЦА СЕГМЕНТОВ), до 49, рассматриваются как перекрываемые фиксированные сег­менты.

  3. Если фраза SEGMENT-LIMIT (ГРАНИЦА СЕГМЕН­ТОВ) опущена, все сегменты с номерами-сегментов от 0 до 49 будут рассматриваться как постоянные сегменты объектной про­граммы.

3. РАЗДЕЛ ПРОЦЕДУР В МОДУЛЕ СЕГМЕНТАЦИИ

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

При использовании модуля сегментации в исходном Кобол-про- /рамме раздел процедур содержит секции с номерами сегментов.

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

PROCEDURE DIVISION.

[DECLARATIVES.

{имя-секции SECTION [номер-сегмента].

Оператор USE.

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

[предложение] . .. ]

END DECLARATIVES.

{имя-секции SECTION [номер-сегмента].

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

[предложение]

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

[ДЕКЛАРАТЙВЫ.

{СЕКЦИЯ имя-секции [номер-сегмента] .

Оператор ИСПОЛЬЗОВАТЬ.

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

X [предложение] ... ]КОНЕЦ ДЕКЛАРАТИВ.

{СЕКЦИЯ имя-секции [номер-сегмента] .

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

[предложение] ... ]

  1. Номера сегментов

    1. Назначение

Классификация секций выполняется с помощью системы номе­ров сегментов. Номер сегмента включается в заголовок секции.

  1. Общий формат

имя-секции SECTION [номер-сегмента] .

СЕКЦИЯ имя-секции [номер-сегмента];.

  1. Синтаксические правила

  1. Номер-сегмента — целое, принимающее значения от 0 до 99.

  2. Если номер-сегмента в заголовке секции опущен, то по умолчанию он предполагается равным 0.

  3. Секции декларатив должны иметь номера-сегментов, мень­шие 50.

  1. Общие правила

  1. Все секции, имеющие один и тот же номер-сегмента, сос­тавляют единый программный сегмент. В уровне 1 все секции, имеющие один и тот же номер-сегмента, должны быть смежными.

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

  1. Сегменты с номерами-сегментов от 0 до 49 принадлежат фиксированной части программы. На уровне 1 все секции с номе­рами-сегментов от 0 до 49 должны быть в исходной программе смежны.

  2. Сегменты с номерами-сегментов от 50 до 99 — независи­мые сегменты.

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

При использовании сегментации на операторы ALTER (ИЗМЕ­НИТЬ), PERFORM (ВЫПОЛНИТЬ), MERGE (СЛИТЬ) и SORT (СОРТИРОВАТЬ) накладываются следующие ограничения.

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

Оператор GO ТО (ПЕРЕЙТИ) в секции с номером сегмента, большим или равным 50, не должен быть объектом оператора ALTER (ИЗМЕНИТЬ) в секции с другим номером сегмента.

Все другие использования оператора ALTER (ИЗМЕНИТЬ) допустимы и выполняются даже в том случае, когда оператор GO ТО (ПЕРЕЙТИ), на который ссылается оператор ALTER (ИЗМЕ­НИТЬ), находится в фиксированном перекрываемом сегменте.

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

Оператор PERFORM (ВЫПОЛНИТЬ), указанный в секции, не принадлежащей независимому сегменту, может иметь в своей об­ласти действия кроме декларативных секций только одну из следу' ющих процедур:

  1. секции и (или) параграфы, полностью содержащиеся в од­ном или более сегментах, не являющихся независимыми;

  2. секции и (или) параграфы, полностью содержащиеся в од­ном независимом сегменте.

Оператор PERFORM (ВЫПОЛНИТЬ), указанный в независи­мом сегменте, может иметь в своей области действия кроме декла­ративных секций только одну из следующих процедур:

  1. секции и (или) параграфы, полностью содержащиеся в од­ном пли более сегментах, не являющихся независимыми;

  2. секции и (или) параграфы, полностью содержащиеся в том же независимом сегменте, что и рассматриваемый оператор PERFORM (ВЫПОЛНИТЬ).

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

Если оператор MERGE (СЛИТЬ) появляется в секции, не при­надлежащей независимому сегменту, то процедура вывода, указан­ная в операторе MERGE (СЛИТЬ) должна содержаться:

  1. полностью внутри сегментов, не являющихся независимы­ми, или

  2. целиком содержаться в одном независимом сегменте.

Если оператор MERGE (СЛИТЬ) появляется в независимом сегменте, то процедура вывода, на которую ссылается оператор MERGE (СЛИТЬ), должна содержаться:

  1. полностью внутри сегментов, не являющихся независимы­ми, или

  2. полностью внутри того же независимого сегмента, в кото­ром находится оператор MERGE (СЛИТЬ).

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

Если оператор SORT (СОРТИРОВАТЬ) появляется в секции, не принадлежащей независимому сегменту, то процедура ввода и процедура вывода, на которую ссылается оператор SORT (СОР­ТИРОВАТЬ), должны появляться:

  1. полностью внутри сегментов, не являющихся независимы­ми, или

  2. ) целиком содержаться в одном независимом сегменте.

Если оператор SORT (СОРТИРОВАТЬ) указан в независимом сегменте, то процедура ввода и процедура вывода, на которые ссы­лается оператор SORT (СОРТИРОВАТЬ), должны содержаться:

  1. полностью внутри сегментов, не являющихся независимы­ми, или

полностью внутри того же независимого сегмента, в кото­ром находится оператор SORT (СОРТИРОВАТЬ).Часть 17. ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ I

Справочное

ОТЛИЧИЯ МЕЖДУ ПРЕДЫДУЩИМ И НАСТОЯЩИМ СТАНДАРТОМ

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

Приложение содержит перечень всех элементов ГОСТ 22558 и настоящего стандарта. Элементы упорядочены соответственно разделам Кобола.

Литера «—» в столбце обозначает отсутствие указанного элемента. Наличие элемента определяется трехбуквенным обозначением модуля согласно следую­щей таблице.

Сокращение

Значение

ЯДР ТАБ ПОД ОТД ИПД МПС СРТ опт БИБ ГОТ ком отл СЕГ

Ядро

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

Последовательный ввод-вывод Относительный ввод-вывод Индексный ввод-вывод Межпрограммные связи Сортировка-слияние Обработка исходных текстов Библиотека

Генератор отчетов Коммуникации Отладка Сегментация



Уровень, на котором встречается элемент в модуле, указан цифрой, пред­шествующей трехбуквенному сокращению имени модуля. Например, 2 ЯДР ука­зывает, что элемент принадлежит второму уровню ядра, а 1 ИПД — что элемент принадлежит первому уровню модуля индексного ввода-вывода. Литера +, сле­дующая за сокращением имспи модуля, обозначает, что элемент является уста­ревшим элементом в данной редакции стандарта Кобола и будет удален в сле­дующей редакции.

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

Элемент

ГОСТ

22558

Настоящий стандарт

4

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

Набор литер

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

0—9, A—Z, — (дефис) (для русской нотации

0—S, A—Z, А—Я — (дефис)) ....

1 ЯДР

1 ЯДР



Элемент

ГОСТ

22558

Настоящий стандарт

Литеры, используемые в пунктуации; « ( ). про-


бел

1 ЯДР

1 ЯДР

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


(точка с запятой)

2 ЯДР

1 ЯДР

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

2 ЯДР

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

2 БИБ

2 ОИТ

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

. z (П) * f (хг)


0 CR (КР) DB (ДБ)

1 ЯДР

1 ЯДР

Литеры, используемые в арифметических опера-


циях, -1 * / **

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

2 ЯДР

2 ЯДР

2 ЯДР

1 ЯДР

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


= < =


'1' ЯДР

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

2 ТАБ

'll ЯДР

Разрешена замена двумя литерами

1 ЯДР

1 ЯДР

Разрешена замена одной литерой


1 ЯДР

Замена одной литерой должна быть сделана для


недостающих литер Кобола

1 ЯДР

Разделители


» ( ) . пробел

1 ЯДР

1 ЯДР

, (запятая) ; (точка с запятой)

2 ЯДР

1 ЯДР

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


2 ЯДР

=

2 БИБ

2 ОИТ

Один или больше пробелов, являющихся частью


разделителя

1 ЯДР

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

Слова Кобола


Максимум 30 литер

1 ЯДР

1 ЯДР

Системные имена и слова, определенные поль­зователем, должны образовывать непересекаю-


щиеся множества

1 ЯДР

Системные имена и слова, определенные поль-


зователем, образуют пересекающиеся множества

1 ЯДР

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


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

1 ЯДР

1 ЯДР

Имя-коммуникации

1 ком

1 ком

Им я-класс а

——

1 ЯДР

Имя-условия

2 ЯДР

2 ЯДР

Имя-данного

1 ЯДР

1 ЯДР

Должно начинаться буквой

1 ЯДР


Не обязательно начинается буквой

2 ЯДР

1 ЯДР

Имя-файла

1 ПОД

я под


1 ОТД

1 отд


1 ипд

1 ипд


11 СР г

1 CPT


1 гот

1 гот

Элемент

ГОСТ

22558

Настоящий стандарт

Имя-индекса

1 ТАБ

1 ЯДР

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

1 ЯДР

1 ЯДР

Имя-библиотеки

2 БИБ

<2 ОИТ

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

1 ЯДР

1 ЯДР

Имя-парапрафа

1 ЯДР

1 ЯДР

Имя-программы

1 ЯДР

1 ЯДР

Имя-записи

1 ПОД

1 отд и- ИПД

1 СРТ

1 иод

1 отд

;!■ ИПД

1 СРТ

Имя-отчета

1 гот

1 гот

Имя-программного-модуля

1 ЯДР

1 ЯДР +

Имя-секции

'1 ЯДР

1 ЯДР

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

1 СЕГ

1 СЕГ -І-

2 ЯДР

Им я-текс та Системные-имена

1 БИБ

1 ОИТ

Имя-машины

1 ЯДР

1 ЯДР

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

1 ЯДР

1 ЯДР

Имя-языка

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

1 ЯДР

1 ЯДР

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

1 ЯДР

1 ЯДР

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

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

1 ЯДР

1 ЯДР

Знаки арифметических операций + — */** Знаки арифметических операций, используемые при индексировании именем-данного,

Знаки арифметических операций, используемые

2 ЯДР

2 ЯДР

1 ЯДР

при индексировании именем-индекса + —

2 ТАБ

1 ЯДР

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

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

2 ЯДР

1 ЯДР

1 ЯДР

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

Связки

Слова специального назначения

Стандартные константы: ZERO (НУЛЬ), SPA­CE (ПРОБЕЛ) HIGH-VALUE (НАИБОЛЬ- ШЕЕ-ЗНАЧЕНИЕ), LOW-VALUE (НАИ- МЕНЬШЕЕ-ЗНАЧЕНИЕ), QUOTE (КАВЫЧ-

1 ЯДР

2 ЯДР

1 ЯДР

КА)

Стандартные константы: ZEROES, ZEROS (НУ­ЛИ), SPACES (ПРОБЕЛЫ), HIGH-VALUES (НАИБОЛЬШИЕ-ЗНАЧЕНИЯ), LOW-VALUES (НАИМЕНЬШИЕ-ЗНАЧЕНИЯ), QUOTES (КА-

1 ЯДР

1 ЯДР

БЫЧКИ)

Стандартные константы: ALL литерал (ВСЕ ли-

2 ЯДР

1 ЯДР

терал)

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

2 ЯДР

2 ЯДР

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

2 ЯДР