Статус документа
Статус документа

ГОСТ 22558-89 (СТ СЭВ 6184-88, ИСО 1989-85) Язык программирования Кобол. Части 8-17

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

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

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

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

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

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

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

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

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

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

а) имя-файла не должно появляться более чем в одной фразе 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 RECORD AREA (ОБЩАЯ ОБЛАСТЬ ЗАПИСИ), могут иметь различную организацию или доступ.

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

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

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

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

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

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

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