1. декларатива внутри программы, в которой находится опе­ратор, вызвавший уточняющее условие;

  2. декларатива, в которой задана фраза GLOBAL (ГЛО­БАЛЬНО) и которая находится внутри программы, прямо со­держащей программу, которая была проверена последней на уточняющую декларативу;

  3. любая декларатива, выбранная путем применения прави­ла 16 для каждой более объемлющей содержащей программы до тех пор, пока правило 16 не будет применено к самой объемлю­щей программе. Если уточняющая декларатива не найдена, ни­чего не выполняется. .

Часть 11. МОДУЛЬ СОРТИРОВКИ-СЛИЯНИЯ

  1. ВВЕДЕНИЕ В МОДУЛЬ СОРТИРОВКИ-СЛИЯНИЯ

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

Модуль сортировки-слияния обеспечивает возможности упоря­дочения записей одного или более файлов или комбинирования за­писей двух или более одинаково упорядоченных файлов в соответ­ствии с набором определенных пользователем ключей, содержа­щихся в каждой записи. При желании пользователь может приме­нить некоторую специальную обработку для каждой отдельной за­писи, используя процедуры ввода или вывода. Такая специальная обработка может быть применена до и (или) после того, как запи­си упорядочены оператором SORT (СОРТИРОВАТЬ), или после того, как записи были объединены оператором MERGE (СЛИТЬ).

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

    1. Сортируемый файл

Сортируемый файл — это совокупность записей, которые долж- ни быть упорядочены оператором SORT (СОРТИРОВАТЬ). Сор­тируемый файл не имеет меток, которыми может управлять прог­раммист, и правила блокирования и распределения внутренней па­мяти является внутренней функцией оператора SORT (СОРТИ­РОВАТЬ).

Операторы RELEASE (ПЕРЕДАТЬ) и RETURN (ВЕРНУТЬ) не определяют буферных областей, блокирования, размещения на катушках. Таким образом, сортируемый файл представляется внутренним файлом, который создается (с помощью оператора RE­LEASE (ПЕРЕДАТЬ)) из входного, файла, обрабатывается (с по­мощью оператора SORT (СОРТИРОВАТЬ)) и выводится (с по­мощью оператора RETURN (ВЕРНУТЬ)) в выходной файл.

Сортируемый файл называется в статье управления файлом и описывается в статье описания сортируемого-сливаемого файла. На сортируемый файл ссылаются в операторх RELEASE (ПЕРЕ­ДАТЬ), RETURN (ВЕРНУТЬ) и SORT (СОРТИРОВАТЬ).

  1. Сливаемый файл

Сливаемый файл — это совокупность записей, предназначен­ных для слияния с помощью оператора MERGE (СЛИТЬ). Про­граммист не может управлять метками сливаемого файла; прави­ла блокирования и распределения внутренней памяти являются внутренней функцией оператора MERGE (СЛИТЬ). Оператор RETURN (ВЕРНУТЬ) не определяет буферных областей, блоки­рования, размещения на катушках. Таким образом, сливаемый файл представляется внутренним файлом, который создается из входных файлов посредством их слияния (с помощью оператора MERGE (СЛИТЬ)) и выводится (оператором RETURN (ВЕР­НУТЬ)) в выходной файл.

Сливаемый файл называется в статье управления файлом и описывается в статье описания сортируемого-сливаемого файла. На сливаемый файл ссылаются в операторах RETURN (ВЕР­НУТЬ) и MERGE (СЛИТЬ).

  1. РАЗДЕЛ ОБОРУДОВАНИЯ В МОДУЛЕ СОРТИРОВКИ-СЛИЯНИЯ

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

Информация, относящаяся к секции ввода-вывода, содержится в ч. 7, п. 2.1.

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

Информация, относящаяся к параграфу FILE-CONTROL (УП­РАВЛ ЕНИЕ-ФАЙЛАМИ), содержится в ч. 7, п. 2.2.

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

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

    2. Статья управления файлом объявляет существенные свойства файла сортировки или файла слияния.Общий формат

SELECT имя-файла-1 ASSIGN ТО ( имя-реализации-1 ]

ДЛЯ имя-файла-1 НАЗНАЧИТЬ [ имя-реализации-1 j _

т (литерал-1 J

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

  1. Каждый сортируемый или сливаемый файл, описанный » разделе данных, должен быть назван в одной статье управления файлом. Каждый сортируемый или сливаемый файл, описанный во фразе SELECT (ДЛЯ), должен иметь статью описания сорти­руемого или сливаемого файла в разделе данных.

  2. Если имя-файла-1 представляет сортируемый или сливае­мый файл, то разрешается только фраза ASSIGN (НАЗНАЧИТЬ),, которая должна следовать за именем-файла-1 в параграфе FILE­CONTROL (УПРАВЛЕНИЕ-ФАИЛАМИ).

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

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

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

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

Параграф І-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВО- ДОМ) указывает общие области памяти, которые используются различными файлами, включая сортируемые и сливаемые файлы.

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

I-O-CONTROL.

AREA FOR имя-файла-1


[RECORD

([ SAME SORT j SORT-MERGE



{имя-файла-2}... ] .. ..

УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ.

ЗАПИСИ

[ [ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ

СОРТИРОВКИ-СЛИЯНИЯ

ДЛЯ имя-файла-1 {имя-файла-2} ... ] ... .]

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

  1. Допустимость варианта RECORD (ЗАПИСИ) во фразе SAME (ОБЩАЯ ОБЛАСТЬ) зависит от уровня реализации моду­ля последовательного ввода-вывода.

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

Фраза SAME RECORD/SORT/SORT-MERGE AREA (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ/СОРТИРОВКИ/СОРТИРОВКИ-СЛИЯ- НИЯ) для модуля сортировки-слияния описана в п. 2.5.

  1. Фразы SAME RECORD AREA (ОБЩАЯ ОБЛАСТЬ ЗАПИ­СИ) и SAME SORT/SORT-MERGE AREA (ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ/СОРТИРОВКИ-СЛИЯНИЯ)

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

Фразы SAME RECORD (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ) и SAME SORT/SORT-MERGE (ОБЩАЯ ОБЛАСТЬ СОРТИРОВ­КИ/СОРТИРОВКИ-СЛИЯНИЯ) определяют область памяти, ко­торую одновременно используют разные файлы, среди которых имеется хотя бы один сортируемый или сливаемый файл.

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

R

AREA FOR имя-файла-1

SAME

ECORD SORT SORT-MERGE

{имя-файла-2}.. .

З

для

АПИСИ

С

ОБЩАЯ ОБЛАСТЬ

ОРТИРОВКИ

СОРТИРОВКИ-СЛИЯНИЯ

I имя-файла-1 {имя-файла-2}...

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

  1. Каждое имя-файла, указанное во фразе SAME RECORD ^ОБЩАЯ ОБЛАСТЬ ЗАПИСИ) или SAME SORT/SORT-MERGE (ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ/СОРТИРОВКИ-СЛИЯ­НИЯ), должно быть указано в параграфе FILE-CONTROL (УП- РАВЛЕНИЕ-ФАЙЛАМИ) той же самой программы.

  2. Имя-файла-1 и имя-файла-2 не могут ссылаться на опреде­литель внешнего файла.

  3. Варианты SORT (СОРТИРОВКИ) и SORT-MERGE (СОРТИРОВКИ-СЛИЯНИЯ) эквивалентны..

  4. Имя сортируемого или сливаемого файла не должно быть указано во фразе SAME (ОБЩАЯ) без вариантов RECORD (ЗА­ПИСИ), SORT (СОРТИРОВКИ) или SORT-MERGE (СОРТИ­РОВКИ-СЛИЯНИЯ).

  5. Фраза SAME (ОБЩАЯ) может быть включена в програм­му (в любом из трех возможных вариантов) более одного раза,, однако:

  1. имя-файла не должно появляться более чем в одной фразе SAME RECORD AREA (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ);

имя-файла, указывающее сортируемый или сливаемый файл, не может появляться более чем в одной фразе SAME SORT AREA(ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ) или SAME SORT-MERGE AREA (ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ-СЛИЯНИЯ);

- в) если имя-файла, не относящееся к сортируемому или сливае­мому файлу, появляется во фразе SAME (ОБЩАЯ ОБЛАСТЬ) и в одной или более фразах SAME SORT AREA (ОБЩАЯ ОБ­ЛАСТЬ СОРТИРОВКИ) или SAME SORT-MERGE AREA (ОБ­ЩАЯ ОБЛАСТЬ СОРТИРОВКИ-СЛИЯНИЯ) (см. ч. 7, п. 2.13), то все файлы, указанные в этой фразе SAME (ОБЩАЯ ОБЛАСТЬ) должны быть указаны в той же фразе SAME SORT AREA (ОБ­ЩАЯ ОБЛАСТЬ СОРТИРОВКИ) или SAME SORT-MERGE AREA (ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ-СЛИЯНИЯ).

(6) Файлы, указанные во фразах SAME SORT AREA (ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ), SAME SORT-MERGE AREA (ОБ­ЩАЯ ОБЛАСТЬ СОРТИРОВКИ-СЛИЯНИЯ) или SAME RE­CORD AREA (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ), могут иметь раз­личную организацию или доступ.

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

  1. Фраза SAME RECORD AREA (ОБЩАЯ ОБЛАСТЬ ЗАПИ­СИ) указывает, что два или белее файлов, представленных именем- файла-1 и именем-файла-2, должны использовать общую область памяти для обработки текущей логической записи. Все файлы мо­гут быть открыты одновременно. Логическая запись в общей об­ласти записи рассматривается как логическая запись каждого от­крытого выходного файла, имя которого встречается во фразе SA­ME RECORD AREA (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ), и как логиче­ская запись читавшегося последним входного файла, имя которого встречается в этой же фразе SAME RECORD AREA (ОБЩАЯ ОБ­ЛАСТЬ ЗАПИСИ)- Это равносильно неявному переопределению области, то есть записи располагаются с самой левой позиции ли­теры.

  2. Если используется фраза SAME SORT AREA (ОБЩАЯ ОБ­ЛАСТЬ СОРТИРОВКИ) или SAME SORT-MERGE AREA (ОБ­ЩАЯ ОБЛАСТЬ СОРТИРОВКИ-СЛИЯНИЯ), то хотя бы одно из имен-файлов должно указывать сортируемый или сливаемый файл. Эта фраза указывает, что память используется следующим обра­зом: '

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

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

  3. файлы, не являющиеся сортируемыми или сливаемыми, не- используют одну и ту же область памяти. Если пользователь хо­чет, чтобы эти файлы использовали общую область памяти, о» должен включить в программу фразу SAME (ОБЩАЯ ОБЛАСТЬ) или SAME RECORD (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ), называю­щую эти файлы;

  4. во время выполнения операторов SORT (СОРТИРОВАТЬ) или MERGE (СЛИТЬ), ссылающихся на файл, указанный во- фразах SAME SORT AREA (ОБЩАЯ ОБЛАСТЬ СОРТИРОВКИ) или SAME SORT-MERGE AREA (ОБЩАЯ ОБЛАСТЬ СОРТИ­РОВКИ-СЛИЯНИЯ), не должен быть открыт никакой файл, не являющийся сортируемым или сливаемым файлом, указанный в этой фразе.

  1. РАЗДЕЛ ДАННЫХ В МОДУЛЕ СОРТИРОВКИ-СЛИЯНИЯ

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

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

Общий формат секции файлов в модуле сортировки-слияни» приведен ниже.

FILE SECTION.

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

{статья-описания-записи}

СЕКЦИЯ ФАЙЛОВ.

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

{статья-описания-записи}’...]...

  1. Статья описания с о р т и р у е м о г о-с л и в а е мо­го ф а й л а

В Кобол-программе статья описания сортируемого-сливаемого файла (статья SD (ОС)) является высшим уровнем организации в секции файлов. После заголовка секции файлов следует статья описания сортируемого-сливаемого файла, состоящая из индика­тора уровня SD (ОС), имени-файла и последовательности незави­симых фраз. Фразы статьи описания сортируемого-сливаемого фай­ла (статьи SD (ОС)) определяют размер и имена записей дан­ных, относящихся к сортируемому или сливаемому файлу.

Для таких файлов не предусмотрены управляемые пользовате­лем процедуры меток, а правила объединения записей в блоки и ^выделения внутренней памяти являются внутренней функцией опе­раторов SORT (СОРТИРОВАТЬ) и MERGE (СЛИТЬ).

Статья описания сортируемого-сливаемого файла оканчивается точкой.

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

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

Структура описания записи и допустимых в статье описания за­писи элементов приводится в ч. 4, п. 4.3.2 и ч. 6, п. 5.3. Допустимые в статье описания данных фразы соответствуют уровню модуля ядра, поддерживаемого реализацией.

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

Начальные значения данных в секции файлов не определены.

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

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

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

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

SD имя-файла-1

1

CONTAINS целое-1 CHARACTERS

IS VARYING IN SIZE [ [FROM целое-2] целое-3] CHARACTERS] [DEPENDING ON имя-данного-1] CONTAINS целое-4 TO целое-5

CHARACTERS

-

[

RECORD


ТО

' (RECORD IS 1 ,

5^1^- { RECORDS ARE j <ИМЯанног°-2} • • ' ОС имя-файла-1

целое-1 ЛИТЕР

ПЕРЕМЕННОЕ ЧИСЛО I[ОТ целое-2]

[В ЗАПИСИ { [ДО целое-3] ЛИТЕР]

[В ЗАВИСИМОСТИ ОТ имя-данного-1[

ОТ целое-4 ДО целое-5 ЛИТЕР

[ЗАПИСЬ 1 n<ULI,Tv t m I

I ЗАПИСИ / ДАННЫХ {имяанн0Г02/ • ■ • I ■

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

  1. Индикатор уровня SD (ОС) указывает начало статьи опи­сания сортируемого или сливаемого файла и должен предшество­вать имени-файла.

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

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

  4. Возможность использования формата 2 фразы RECORD (В ЗАПИСИ) зависит от уровня модуля последовательного вво­да-вывода, поддерживаемого реализацией.