1. числовые литералы должны быть целыми без знака и иметь значения от 1 до целого, равного количеству литер во внутреннем наборе литер;

  2. нечисловые литералы, указанные после слов THROUGH (ПО) и ALSO (ТАКЖЕ), должны состоять из одной литеры.

  1. Литерал-1, литерал-2, литерал-3, литерал-4 и литерал-5 не должны совпадать по написанию со стандартными констан­тами, являющимися символическими литерами.

  2. Слова THROUGH и THRU эквивалентны.

  3. Во фразе SYMBOLIC CHARACTERS (СИМВОЛИЧЕ­СКАЯ ЛИТЕРА) одна и та же литера может встречаться толь­ко один раз.

  4. Соответствие между символической-литерой-1 и целым-1 определяется позицией во фразе SYMBOLIC CHARACTERS (СИМВОЛИЧЕСКАЯ ЛИТЕРА). Первая символическая лите­ра-1 соответствует первому целому-1, вторая — второму и так далее.

  5. Между экземплярами символического-имени-1 и экземп­лярами целого-1 должно быть взаимно однозначное соответст­вие.

  6. Порядковая позиция, определяемая целым-1, должна существовать во внутреннем наборе кодов литер. Если указана фраза IN (ИЗ), то эта порядковая позиция должна существо­вать в наборе литер, определяемом именем-алфавита-2.

  7. Правила для литералов фразы литерал-4 следующие:

  1. числовые литералы должны быть целыми без знака и иметь значения от 1 до целого, равного количеству литер во внутреннем наборе литер;

  2. нечисловые литералы, указанные после слова THROUGH ЩО) , должны состоять из одной литеры.

  1. Литерал не должен быть стандартной константой.

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

  1. Все фразы, указанные в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) некоторой программы; относятся ко всем содержащимся в ней программам. На определенные в дан­ном параграфе имена условий можно ссылаться из любой включен­ной в эту программу программы.

  2. Если имя-реализации-1 относится к внешнему переключа­телю, то состояния переключателя должны быть связаны с имена­ми условий и опрашиваются посредством проверки имен условий (п. 6.3.1.4 настоящей части).

  3. Если имя-реализации-1 относится к внешнему переключа­телю, то состояние этого переключателя может быть изменено оператором SET (УСТАНОВИТЬ) формата 3, в качестве операнда которого указывается мнемоническое имя, связанное с этим пере­ключателем (п. 6.2.3 настоящей части). Разработчик определяет, какие внешние переключатели можно использовать в операторе SET (УСТАНОВИТЬ).

  4. Указание имени-алфавита-1 обеспечивает средства при­своения некоторого имени заданному набору кодов литер и (или) основной последовательности. Если указанное имя-алфавита-1 ис­пользуется во фразе PROGRAM. COLLATING SEQUENCE (ПРО­ГРАММНЫЙ АЛФАВИТ) (см. п. 4.4 настоящей части) или во фразе COLLATING SEQUENCE (АЛФАВИТ) оператора SORT (СОРТИРОВАТЬ) или MERGE (СЛИТЬ) (ч. И, пп. 4.1, 4.4), фраза имя-алфавита задает основную последовательность. Если имя-алфавита-1 используется | Во фразе SYMBOLIC CHARAC- | I TERS (СИМВОЛИЧЕСКАЯ ЛИТЕРА) или | во фразе CODE^SET (АЛФАВИТ) в описании файла (ч. 7, п. 3.4) то фраза ALPHABET (имя-алфавита) определяет набор кодов литер:

  1. если задана фраза STANDARD-R (СТАНДАРТ-Р), набор кодов литер или соответствующая основная последовательность определяется в соответствии с упорядоченностью русского алфа­вита.

Если задана фраза STANDARD-1 (СТАНДАРТ-А), набор ко­дов литер или соответствующая основная последовательность оп­ределяется Американским Национальным Стандартным Кодом для Обмена Информацией, Х3.4—1968.

Если задана фраза STANDARD-2 (СТАНДАРТ-М), то набор кодов определяется Международной версией 7-битового кода, оп­ределенной в Международном стандарте 646, 7-битовый Код ли­тер для обмена информацией.

Если между отдельными литерами стандартного и внутреннего наборов отсутствует соответствие, это соответствие устанавлива­ет реализация;

  1. если задана фраза NATIVE (ВНУТРЕННИЙ), использует­ся внутренний набор кодов литер или внутренняя основная после­довательность;

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

  3. если фраза имя-алфавита содержит литералы, соответст­вующее имя-алфавита не может упоминаться во фразе CODE­SET (АЛФАВИТ) (ч. 7, п. 3.4), при этом основная последова­тельность определяется следующим образом:

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

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

порядок, в котором литералы появляются во фразе имя-ал­фавита, точно определяет используемую основную последова­тельность (в возрастающем порядке);

не указанные явно литералами литеры внутренней основной последовательности занимают позиции в основной последова­тельности, следующие за явно заданными во фразе имя-алфа­вита литерами. Относительный порядок литер, не указанных в определяемой основной последовательности, соответствует внут­ренней основной последовательности;

если задана фраза THROUGH (ПО), последовательность литер внутреннего набора, начиная от литеры, заданной значе­нием литерала-1, и кончая литерой, заданной значением лите­рала-2, занимает последовательные позиции определяемой ос­новной последовательности. Кроме того, последовательность ли­тер, заданных фразой THRU (ПО), может задавать литеры внутреннего набора либо в возрастающем, либо в убывающем порядке;

если указана фраза ALSO (ТАКЖЕ), литеры внутреннего набора, заданные значением литерала-1, литерала-3, литера­ла-4 ... , ставятся в соответствие одной и той же позиции опре­деляемой основной последовательности или набора кодов ли­тер, используемых для представления данных, и если имя-ал­фавита-1 используется во фразе SYMBOLIC CHARACTERS (СИМВОЛИЧЕСКАЯ ЛИТЕРА), то только литерал-1 исполь- зуется для представления литеры во внутреннем наборе литер.

  1. Литера, которая занимает самую старшую позицию в задаваемой программной основной последовательности, ставит­ся в соответствие стандартной константе HIGH-VALUE (НАИ- БОЛЫПЕЕ-ЗНАЧЕНИЕ), кроме случая, когда эта последняя стандартная константа используется в качестве литерала в па­раграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА).

Если таких литер несколько, то стандартной константе HIGH-VALUE (НАИБОЛЬШЕЕ-ЗНАЧЕНИЕ) ставится в соот­ветствие литера, указанная последней из них.

  1. Литера, которая занимает самую младшую позицию в задаваемой программной основной последовательности, ставит­ся в соответствие стандартной константе LOW-VALUE (НАИ- МЕНЫПЕЕ-ЗНАЧЕНИЕ), кроме случая, когда эта стандартная константа используется в качестве литерала в параграфе SPE­CIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА). Если таких литер несколько, стандартной константе LOW-VALUE (НАИМЕНЬ- ШЕЕ-ЗНАЧЕНИЕ) ставится в соответствие литера, указанная первой из них.

  2. Стандартные константы HIGH-VALUE (НАИБОЛЬ­ШЕЕ-ЗНАЧЕНИЕ) и LOW-VALUE (НАИМЕНЬШЕЕ-ЗНАЧЕ- НИЕ), определенные как литералы в параграфе SPECIAL-NA­MES (СПЕЦИАЛЬНЫЕ-ИМЕНА), соответствуют литерам, име­ющим наибольшую и наименьшую позиции во внутренней ос­новной последовательности.

  3. Если не указана фраза IN (ИЗ), то символическая-лите- ра-1 представляет литеру, чья порядковая позиция во внут­реннем наборе определяется целым-1. Если фраза IN (ИЗ) ука­зана, то целое-1 определяет порядковую позицию литеры, на­ходящейся в наборе литер, названном ииенем-алфавита-2.

  4. Внутреннее представление символической-литеры-1 яв- I ляется внутренним представлением литеры внутреннего набора.

  5. Фраза CLASS (КЛАСС) обеспечивает соответствие име­ни, указанному во фразе набору литер. На имя-класса-1 можно ссылаться только в условии класса. Литеры, указанные значения­ми литералов в этой фразе, определяют набор литер, из которых состоит значение данного, принадлежащего к этому классу.

Значение каждого литерала специфицирует

порядковый номер литеры во внутреннем наборе, если лите­рал числовой. Его значение не должно превышать числа литер во внутреннем наборе;

действительное значение литеры во внутреннем наборе, если ли­терал нечисловой. Если значение нечислового литерала состоит из нескольких литер, то каждая литера литерала включается в на­бор литер, идентифицируемый именем-класса-1.

Если фраза THROUGH (ПО) указана, то все литеры внутрен­него набора, начиная с литеры, указанной значением литерала-4,, и кончая литерой, указанной значением литерала-5, включаются в набор литер, идентифицируемый именем-класса-1. Кроме того, ли­теры, указанные во фразе THROUGH (ПО), могут определять ли­теры внутреннего набора в возрастающей или убывающей последо­вательности.

  1. Литерал-6, указанный во фразе CURRENCY SIGN (ВА­ЛЮТНЫЙ ЗНАК), используется во фразе PICTURE (ШАБЛОН) для представления валютного символа. Литерал должен представ­лять одну литеру и не должен совпадать ни с одной из следующих, литер:

  1. цифры: от 0 до 9;

  2. буквы прописные А, В, С, D, Р, R, S, V, X, Y, Z (А, Б, В, Д,. З, Р, К, М, П, Т, X) и строчные или пробел;

  3. специальные * литеры, +, —, „ ., ;, (, ), », /, =. Если эта фраза отсутствует, во фразе PICTURE (ШАБЛОН) используется только валютный символ из набора литер Кобола.

  1. Фраза DECIMAL POINT IS СОММА (ДЕСЯТИЧНАЯ ТОЧКА ЗАПЯТАЯ) означает, что в строке-литер фразы PICTURE (ШАБЛОН) и в числовых литералах функции запятой и точки ме­няются местами.

5. РАЗДЕЛ ДАННЫХ В ЯДРЕ

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

Раздел данных описывает данные, которые обрабатываются объектной программой. Раздел данных не обязателен в исходной Кобол-программе.

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

Секция рабочей памяти входит в раздел данных исходной про­граммы. Секция рабочей памяти описывает записи и их элементы, которые не являются частью файлов данных.

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

WORKING-STORAGE SECTION.

статья-описания-уровня-77 статья-описания-записи

СЕКЦИЯ РАБОЧЕЙ-ПАМЯТИ.

статья-описания-уровня-77 статья-описания-записи

  1. Н е с в я з а н н ы е данные рабочей памяти

Данные и константы в рабочей памяти, которые не имеют ни­какой иерархической связи друг с другом и которые в дальнейшем не потребуется подразделять, нет необходимости группировать в .•записи. Они классифицируются и определяются как несвязанные элементарные данные. Каждое из этих данных определяется от­дельной статьей описания данного, которая начинается со спе­циального номера уровня 77. В каждой статье описания таких дан­ных обязательны следующие фразы: номер уровня 77, имя-данного, PICTURE (ШАБЛОН) или USAGE IS INDEX (ДЛЯ ИНДЕКСА).

Другие фразы описания данного не обязательны, но могут, при необходимости, дополнять описание данного.

  1. Записи рабочей памяти

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

  1. Структура описания записи

Описание записи состоит из набора статей описания данных, которые описывают характеристики отдельной записи. Каждая статья описания данного состоит из номера уровня, за которым мо­жет следовать имя данного или фраза FILLER (ЗАПОЛНИТЕЛЬ), после чего следует, если это требуется, ряд независимых фраз. Описание записи может иметь иерархическую структуру, поэтому фразы, используемые в отдельных статьях, могут сильно отличать­ся, в зависимости от наличия подчиненных статей. Структура опи­сания записи и разрешенные элементы в статье описания записи объясняются в ч. 4, п. 4.3.2 и в п. 5.3 настоящей части.

  1. Начальные значения

Начальное значение любого данного в секции рабочей памяти, за исключением индексного данного, задается в описании данного фразой VALUE (ЗНАЧЕНИЕ). Начальное значение индексного данного и данного, не связанного с фразой VALUE (ЗНАЧЕНИЕ), не определено.

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

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

    2. Статья описания данного задает характеристики отдельного данного.Общий формат Формат 1

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

FILLER


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



[REDEFINES имя-данного-2]



IS строка-литер


’/PICTURE

І РІС

BINARY

COMPUTATIONAL

COMP

DISPLAY

INDEX

PACKED-DECIMAL


[USAGE IS]



[SEPARATE CHARACTER]]


/ LEADING I TRAILING


[ [SIGN IS]



ВЛЕВО

ВПРАВО


ВЫДЕЛЕНО


/ ВОЗРАСТАНИЮ 1 КЛЮЧА

( УБЫВАНИЮ ) КЛЮЧА {имя-данного-3} ... ] ...

[ИНДЕКСИРУЕТСЯ {имя-индекса-1} ... ] ПОВТОРЯЕТСЯ ОТ целое-1 ДО целое-2 РАЗ В ЗАВИСИМОСТИ ОТ имя-данного-4

rrr„ ( ВОЗРАСТАНИЮ ]

1В2 ( УБЫВАНИЮ IКЛЮЧА {имя-данного-3} ... ] ...

[ИНДЕКСИРУЕТСЯ {имя-индекса-1}... ]


~ ПОВТОРЯЕТСЯ целое-2 РАЗ


в {йбсЛЁдний } 'ОТДЕЛЬН°І


для

ВЫЧИСЛЕНИЙ выч

ВЫДАЧИ

ИНДЕКСА )