Перейти до вмісту
ГОСТ 22558-89
/ 116

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

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

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

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

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

Указание имени-алфавита-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 (имя-алфавита) определяет набор кодов литер:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

WORKING-STORAGE SECTION.

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

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

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

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

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

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

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

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

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

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

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

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

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

Назначение

Статья описания данного задает характеристики отдельного данного.

Общий формат Формат 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 РАЗ


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


для

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

ВЫДАЧИ

ИНДЕКСА )


ДВОИЧНОЕ

ДЕСЯТИЧНОЕ


[ ШАБЛОН 1

I щ 1 строка-литер


[ПЕРЕОПРЕДЕЛЯЕТ имя-данного-2]


имя-данного-1 ЗАПОЛНИТЕЛЬ ЗАП


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


Г/JUSTIFIEDI 1

{just (RIGHT

[BLANK WHEN ZERO]

[VALUE IS литерал-1].


/ SYNCHRONIZED 1 LEFT

[ SYNC ) [ RIGHT


[INDEXED BY {имя-индекса-1} ... ]


Г [ ASCENDING 1 ,,rv ,

[ DESCENDING / KEY IS <ИМЯанног°-3} • • •

[INDEXED BY {имя-индекса-1} ... ]

OCCURS целое-1 TO целое-2 TIMES DEPENDING

ON имя-данного-4

Г [ ASCENDING ] vv T„ , ]

{ DESCENDING [ KEY IS {Имяанног°-3}


“OCCURS целое-2 TIMES

[СДВИНУТО ВПРАВО]

[ПРОБЕЛ КОГДА НУЛЬ]

ЗНАЧЕНИЕ]

ЗНАЧ лтера-'-І

Формат 2

66 имя-данного-1 RENAMES имя-данного-2

6 имя-данного-3


Г THROUGH j THRU


6 имя-данного-1 ПЕРЕИМЕНОВЫВАЕТ имя-данного-2

[ПО имя-данного-3].

Формат 3

йй , J VALUE IS

88имя-условия-1 ARE

THROUGH ] THRU литерал-


литерал-1

ос і f ЗНАЧЕНИЕ ] , .

88 имя-условия-1 { . TT (литерал-1 [ПО

ІопАЧ j

литерал-2]}....

С и н т а к с и ч e с к и e правила

Номер уровня в формате 1 может быть любым числом от 01 до 49, или 77.

В формате 1 имя-данного-1 или фраза FILLER (ЗАПОЛ* НИТЕЛЬ), если она указана, должны непосредственно следовать за номером уровня. Фраза REDEFINES (ПЕРЕОПРЕДЕЛЯЕТ), если она указана, должна непосредственно следовать за именем- данного-1 или фразой FILLER (ЗАПОЛНИТЕЛЬ), если они ука- заны, иначе она должна непосредственно следовать за номером уровня. Остальные фразы могут следовать в любом порядке.

Фраза PICTURE (ШАБЛОН) должна быть задана для каждого элементарного данного, за исключением индексного дащ ного, для которого употребление этой фразы запрещено.

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

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

Фразы SYNCHRONIZED (ВЫДЕЛЕНО), PICTURE (ШАБ­ЛОН), JUSTIFIED (СДВИНУТО) и BLANK WHEN ZERO (ПРО­БЕЛ КОГДА НУЛЬ) могут задаваться только для элементарного данного.

; (2) Формат 3 используется для имени условия. Каждое имя

[ условия определяется отдельной статьей с номером уровня 88.

I В формате 3 указывается имя-условия, а также одно значение, ' несколько значений или диапазон значений, связанных с име- I нем-условия. Статьи имени условия для конкретной условной переменной должны следовать за статьей, описывающей дан-

і ное, к которому относится имя-условия. Имя-условия может от- ' носиться к любому элементарному или групповому данному, за : исключением другого имени условия, индексного данного, дан- : ного с номером уровня 66, или группы, содержащей данные с описанием, включающим фразы JUSTIFIED (СДВИНУТО), ; SYNCHRONIZED (ВЫДЕЛЕНО) или фразу об использовании

Побачили розбіжність з офіційним текстом?

Повідомити про неточність

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

Перейти до форми зворотного зв'язку

Дивіться також

Весь розділ →