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

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

Фраза об использовании определяет формат данного в памяти

машины.

5.14.2.

Общий формат


USAGE IS

BINARY

COMPUTATIONAL

COMP

DISPLAY

INDEX

PACKED-DECIMAL

■ - .. .■


ДВОИЧНОЕ

ДЕСЯТИЧНОЕ

I

ВЫЧИСЛЕНИИ ВЫЧ ВЫДАЧИ ИНДЕКСА

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

  1. Фраза об использовании может быть указана в любой ста­тье описания данного с номером уровня, отличным от 66 или 88 •

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

  3. Элементарное данное, описание которого содержит фразы BINARY (ДВОИЧНОЕ), COMPUTATIONAL (ДЛЯ ВЫЧИСЛЕ­НИЙ) или PACKED-DECIMAL (ДЕСЯТИЧНОЕ), или элементар­ное данное, подчиненное групповому данному, описание которого содержит указанные фразы, должно быть описано строкой-литер шаблона, определяющей числовые данные, т. э. строкой-литер шаб­лона, содержащей только символы Р (М), S (3), V (Т), 9.

  4. СОМР (ВЫЧ) является сокращением слова COMPUTA­TIONAL (ВЫЧИСЛЕНИЙ).

  5. На индексное данное явно можно ссылаться только в опе­раторах SEARCH (ИСКАТЬ) или SET (УСТАНОВИТЬ), условии отношения, во фразе USING (ИСПОЛЬЗУЯ) заголовка раздела процедур или во фразе USING (ИСПОЛЬЗУЯ) оператора CALL (ВЫЗВАТЬ).

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

  7. Элементарное данное, описанное фразой INDEX (ДЛЯ ИНДЕКСА), не должно быть условной переменной.

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

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

  2. Фраза указывает способ представления данного в памяти машины. Она не влияет на использование данного, хотя специфи­кации для некоторых операторов в разделе процедур могут огра­ничить фразу об использовании для операндов, к которым произ­водится обращение. Фраза об использовании может влиять на вы- 290

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

  1. Фраза BINARY (ДВОИЧНОЕ) означает, что двоичное ос­нование используется для представления числового данного в па­мяти машины. Каждая реализация определяет точное воздействие фразы BINARY (ДВОИЧНОЕ) на выравнивание и представление данного в памяти машины, включая представление алгебраическо­го знака. Реализацией должно быть распределено достаточно па­мяти для размещения десятичных значений максимального диапа­зона, определяемого строкой литер шаблона.

  2. Фраза COMPUTATIONAL (ДЛЯ ВЫЧИСЛЕНИЙ) опре­деляет используемые реализацией основание и формат представ­ления числового данного в памяти машины. Конкретная реализа­ция определяет точное воздействие фразы COMPUTATIONAL (ДЛЯ ВЫЧИСЛЕНИЙ) на выравнивание и представление данно­го в памяти машины, включая представление алгебраического зна­ка и допустимый диапазон значений данных.

  3. Фраза DISPLAY (ДЛЯ ВЫДАЧИ) (указанная явно или неявно) определяет, что для представления данных в памяти ма­шины используется стандартный формат данных и что данные вы­равниваются на границе символа.

  4. Если для элементарного данного или любой группы, к ко­торой принадлежит данное, не задана фраза об использовании, то подразумевается использование DISPLAY (ДЛЯ ВЫДАЧИ).

  5. Фраза INDEX (ДЛЯ ИНДЕКСА) определяет данное как индексное данное, содержащее значение, соответствующее номеру вхождения элемента таблицы. Точное воздействие фразы INDEX (ДЛЯ ИНДЕКСА) на выравнивание и представление данного в памяти машины, включая действительные значения, присвоенные любому номеру вхождения элемента таблицы, определяет кон­кретная реализация.

  6. При выполнении оператора MOVE (ПОМЕСТИТЬ) или оператора ввода-вывода, использующих групповое данное, содер­жащее индексное данное, никакого преобразования индексного дан­ного не происходит.

  1. Фраза PACKED-DECIMAL (ДЕСЯТИЧНОЕ) указывает, что для представления числового данного в памяти машины ис­пользуется десятичное основание. Более того, она указывает, что каждая десятичная позиция должна занимать наименьшую воз­можную область памяти машины. Каждая реализация определяет точное воздействие фразы PACKED-DECIMAL (ДЕСЯТИЧНОЕ) на выравнивание и представление данного в памяти машины, включая представление любого алгебраического знака. Для раз­мещения максимального значения, соответствующего десятичным позициям числа, определяемого строкой литер шаблона, реализа­цией должен быть выделен достаточный объем памяти.Фраза VALUE (ЗНАЧЕНИЕ)

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

Фраза VALUE (ЗНАЧЕНИЕ) задает начальное значение дан­ных рабочей памяти, начальное значение данных в секции комму­никаций и значения, связанные с именем-условия.

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

Формат 1

V

/ЗНАЧЕНИЕ І ЗНАЧ

ALUE IS литерал-1

Формат 2


[ VALUE IS ] (

' / THROUGH )

I THRU 1 литерал-З


I VALUES ARE [j литерал-2


(ЗНАЧЕНИЕ)(


і ЗНАЧ ' і 1 литерал-2 [ПО литерал-З] [ . . .

литерал-1



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

  1. Для данного, шаблон которого определяет числовое дан­ное со знаком, литерал, представляющий значение, должен иметь знак.

  2. Все числовые литералы, приведенные во фразе VALUE' (ЗНАЧЕНИЕ), должны принадлежать диапазону значений, опре­деляемых фразой PICTURE (ШАБЛОН), и не должны приводить к усечению значащих цифр. Размер нечисловых литералов не дол­жен превышать размер данного, определяемый фразой PICTURE (ШАБЛОН).

  3. Слова THROUGH и THRU эквивалентны. ЗНАЧ являет­ся сокращением слова ЗНАЧЕНИЕ.

  4. Фраза VALUE (ЗНАЧЕНИЕ) не может быть употреблена ни в одной статье, являющейся частью описания или переопределе- ния внешней записи данных, за исключением статьи имени-усло-^ вия .

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

  1. ) Фраза VALUE (ЗНАЧЕНИЕ) не должна противоречить другим фразам в описании данного или фразам в описании данных внутри иерархии, которой принадлежит данное, описание которого содержит эту фразу. Применяются следующие правила:

  2. если категория данного числовая, все литералы во фразе VALUE (ЗНАЧЕНИЕ) должны быть числовыми литералами. Ес­ли литерал определяет значение данного из рабочей памяти, этот литерал выравнивается согласно стандартным правилам выравни­вания (см. ч. 4, п. 4.3.6);

  3. если категория данного буквенная, буквенно-цифровая, бук­венно-цифровая редактируемая или числовая редактируемая, то все литералы во фразе VALUE (ЗНАЧЕНИЕ) должны быть нечис­ловыми литералами. Литералы выравниваются как буквенно-циф­ровые данные (см. ч. 4, п. 4.3.6).

Литеры редактирования в строке литер шаблона учитываются при определении размера данного, но не влияют на установку на­чального значения данного (см. п. 5.9 настоящей части); поэтому значение редактируемого данного представляется в отредактиро­ванной форме;

  1. присвоение начального значения выполняется независимо от наличия фразы BLANK WHEN ZERO (ПРОБЕЛ КОГДА НУЛЬ) или JUSTIFIED (СДВИНУТО).

  1. П р а в и л а для имен-условий

  1. В статье имени условия фраза VALUE (ЗНАЧЕНИЕ) обязательна. Фраза VALUE (ЗНАЧЕНИЕ) и само имя-усло- вия являются единственными допустимыми фразами в такой статье.

  2. Формат 2 может использоваться только в связи с имена­ми условий (см. ч. 4, п. 4.2.2.1.1.1). При использовании фразы THRU (ПО) литерал-2 должен быть меньше, чем литерал-3.

  1. Статьи описания данных, отличные от и м е н-у с л о в и й

Должны выполняться следующие правила.

  1. Правила употребления фразы VALUE (ЗНАЧЕНИЕ) раз­личны для соответствующих секций раздела данных:

  1. в секции файлов на уровне 1 фраза VALUE (ЗНАЧЕНИЕ) не может использоваться. На уровне 2 она допустима только в | |статьях имен-условий, поэтому начальные значения данных сек­ции файлов не определены;

  2. фраза VALUE (ЗНАЧЕНИЕ) не может использоваться в

секции связи на уровне 1.

В секции связи она допустима только в статьях имен-усло­вий;

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

  1. Фраза VALUE (ЗНАЧЕНИЕ) не должна входить в ста­тью описания данного, которая содержит фразу REDEFINES (ПЕ­РЕОПРЕДЕЛЯЕТ), или в статью, которая подчиняется статье, со­держащей такую фразу. Это правило не применяется к статьям | (имен-условий.

  2. Если фраза VALUE (ЗНАЧЕНИЕ) используется в статье на уровне группы, то литерал должен быть стандартной константой или нечисловым литералом. В этом случае области памяти для группы присваивается начальное значение без учета особенностей элементарных или групповых данных, содержащихся внутри этой группы; при этом фраза VALUE (ЗНАЧЕНИЕ) не может зада­ваться на подчиненных уровнях внутри этой же группы.

  3. Фраза VALUE (ЗНАЧЕНИЕ) не должна задаваться для группы, содержащей данные, описания которых включают фразы JUSTIFIED (СДВИНУТО), SYNCHRONIZED (ВЫДЕЛЕНО) или фразы об использовании (кроме варианта USAGE IS DISPLAY (ДЛЯ ВЫДАЧИ)).

  4. Если фраза VALUE (ЗНАЧЕНИЕ) указана в статье описа­ния данного, связанного с переменно повторяющимся данным, то инициация начального значения происходит так, как если бы зна­чение данного, указанного в варианте DEPENDING ON (В ЗАВИ­СИМОСТИ ОТ) фразы OCCURS (ПОВТОРЯЕТСЯ) было равным максимальному числу вхождений. Переменно повторяющимися данными являются следующие:

  1. групповое данное, содержащее переменно повторяющееся данное;

  2. переменно повторяющееся данное;

  3. данное, подчиненное переменно повторяющемуся данному.

Если фраза VALUE (ЗНАЧЕНИЕ) указана для данного, ука­занного в варианте DEPENDING ON (В ЗАВИСИМОСТИ ОТ), то это значение инициируется после инициации значений данного с переменным числом вхождений.

  1. Если фраза VALUE (ЗНАЧЕНИЕ) формата 1 указана в статье описания данного, содержащей фразу OCCURS (ПОВТО­РЯЕТСЯ), или в статье, подчиненной статье с фразой OCCURS (ПОВТОРЯЕТСЯ), то каждому вхождению элемента данного бу­дет присвоено указанное значение.

6. РАЗДЕЛ ПРОЦЕДУР В ЯДРЕ

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

Раздел процедур содержит процедуры, которые должна выпол­нять объектная программа (см. ч. 4, п. 6.4). Раздел процедур не обязателен в исходной Крбол-программе.Общие форматы раздела процедур ядра показаны ниже.

Формат 1

PROCEDURE DIVISION.

{имя-секции SECTION.

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

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

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

{СЕКЦИЯ имя-секции.

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

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

Формат 2

PROCEDURE DIVISION.

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

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

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

{имя-параграфа, [предложение] ...}...

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

    1. Определение арифметического выраже­ния

Арифметическим выражением может быть идентификатор числового элементарного данного; числовой литерал; стандарт­ная константа ZERO (ZEROS, ZEROES) (НУЛЬ (НУЛИ)), а также идентификаторы, стандартные константы, литералы и вы­ражения, разделенные знаками арифметических операций, ли­бо арифметическое выражение, заключенное в скобки. Любо­му арифметическому выражению может предшествовать унар­ная операция. Допустимые комбинации переменных, числовых литералов, скобок и знаков арифметических операций приведе­ны в п. 6.2.3 настоящей части. Все идентификаторы и литералы, встречающиеся в арифметическом выражении, должны предс­тавлять либо числовые элементарные данные, либо числовые литералы.

  1. 3 н а к и арифметических операций

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

Знак бинарной операции

Смысл операции

+

Сложение

Вычитание

*

Умножение

/

Деление

**

Возведение в степень

Знак унарной операции

Смысл операции

4-

Соответствует умножению на чис­ловой литерал 4-1

Соответствует умножению на чис­ловой литерал —1



  1. Правила вычисления арифметических выражений

Арифметические выражения вычисляются по таким прави­лам:

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

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

  3. ниже указаны способы, которыми идентификаторы, ли­тералы, операции и скобки могут образовывать арифметическое выражение.