ADD идентификатор/литерал ТО идентификатор-литерал GIVING идентификатор
СЛОЖИТЬ идентификатор/литерал С идентификатор-литерал ПОЛУЧАЯ идентификатор.
Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) оператора ADD (СЛОЖИТЬ) (1 ЯДР). Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) предоставляет программисту возможность указывать процедуры, которые должны быть выполнены, когда не выполняется условие переполнения для оператора ADD (СЛОЖИТЬ).
Оператор CALL (ВЫЗВАТЬ) (2 МПС). Вариант BY CONTENT (ЗНАЧЕНИЕ) указывает, что вызываемая программа не может изменять значение параметра фразы USING (ИСПОЛЬЗУЯ) в операторе CALL (ВЫЗВАТЬ), но вызываемая программа может изменять значение соответстцующего данного в заголовке раздела процедур программы. Вариант BY REFERENCE (ССЫЛКУ) означает, что параметр фразы USING (ИСПОЛЬЗУЯ) оператора CALL (ВЫЗВАТЬ) должен рассматриваться так же, как и параметр в ГОСТ 22558.
Оператор CALL (ВЫЗВАТЬ) (I МПС). Параметры, передаваемые в операторе CALL (ВЫЗВАТЬ), могут быть данными, имеющими уровни, отличные от 01 или 7 7. Параметры, передаваемые в операторе CALL (ВЫЗВАТЬ), могут быть индексированы или указываться модификацией ссылки.
Варианты ON EXCEPTION (ПРИ ОШИБКЕ) и NOT ON EXCEPTION (БЕЗ ОШИБКИ) оператора CALL (ВЫЗВАТЬ) (2 МПС). Вариант ON EXCEPTION (ПРИ ОШИБКЕ) оператора CALL (ВЫЗВАТЬ) эквивалентен варианту ON OVERFLOW (ПРИ ПЕРЕПОЛНЕНИИ) оператора CALL (ВЫЗВАТЬ). Вариант NOT ON EXCEPTION (БЕЗ ОШИБКИ) обеспечивает программисту возможность указать процедуры, которые должны выполняться, когда программа, указанная в операторе CALL (ВЫЗВАТЬ), может быть доступна для выполнения.
Вариант REEL/UNIT (КАТУШКУ/ТОМ) оператора CLOSE (ЗАКРЫТЬ) (1 ПОД, 1 ГОТ). Вариант REEL/UNIT (КАТУШКУ/TOM) оператора CLOSE (ЗАКРЫТЬ) может относиться к файлам на одной катушке (томе) и разрешена в данном стандарте для файла отчетов.
Вариант FOR REMOVAL (С УДАЛЕНИЕМ) оператора CLOSE (ЗАКРЫТЬ) (2 ПОД, 1 ГОТ). Вариант FOR REMOVALjC УДАЛЕНИЕМ) оператора CLOSE (ЗАКРЫТЬ) разрешается для последовательного файла на одной ка- тушке/томе
Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) оператора COMPUTE (ВЫЧИСЛИТЬ) (2 ЯДР). Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) оператора COMPUTE (ВЫЧИСЛИТЬ) предоставляет программисту возможность указывать процедуры, которые должны быть выполнены, когда для оператора COMPUTE (ВЫЧИСЛИТЬ) не выполняется условие переполнения.
Оператор CONTINUE (ПРОДОЛЖИТЬ) (1 ЯДР). Оператор CONTINUE (ПРОДОЛЖИТЬ) указывает, что нет в наличии выполнимого оператора, и приводит к неявной передаче управления следующему выполнимому оператору.
Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) оператора DELETE (УДАЛИТЬ) (1 ОТД, 1 ИНД). Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) оператора DELETE (УДАЛИТЬ) предоставляет программисту возможность указать процедуры, которые должны быть выполнены, когда для оператора DELETE (УДАЛИТЬ) не выполняется условие ошибки ключа.
Оператор DISPLAY (ВЫДАТЬ) (1 ЯДР). Для оператора DISPLAY (ВЫДАТЬ) разрешена стандартная константа ALL литерал (ВСЕ литерал).
В ГОСТ 22558 стандартная константа ALL литерал (ВСЕ литерал) не разрешалась в операторе DISPLAY (ВЫДАТЬ).
Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) оператора DIVIDE (РАЗДЕЛИТЬ) (1 ЯДР). Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) оператора DIVIDE (РАЗДЕЛИТЬ) обеспечивает программисту возможность указывать процедуры, которые должны быть выполнены, когда для оператора DIVIDE (РАЗДЕЛИТЬ) не выполняется условие переполнения.
Вариант WITH NO ADVANCING (БЕЗ ПРОДВИЖЕНИЯ) оператора DISPLAY (ВЫДАТЬ) (2 ЯДР). Вариант WITH NO ADVANCING (БЕЗ ПРОДВИЖЕНИЯ) оператора DISPLAY (ВЫДАТЬ) обеспечивает программисту возможность взаимодействия с устройством, обладающим вертикальным позиционированием.
Оператор EVALUATE (ОЦЕНИТЬ) (2 ЯДР). Оператор EVALUATE (ОЦЕНИТЬ) описывает многоветвящуюся, многосвязную структуру, в которой оценивается несколько условий для определения последующих действий объектной программы.
Оператор EXIT PROGRAM (ВЫИТИ ИЗ ПРОГРАММЫ) (1 МПС). Оператор EXIT PROGRAM (ВЫИТИ ИЗ ПРОГРАММЫ) не обязательно должен быть единственным оператором в параграфе.
Оператор GO ТО DEPENDING ON (ПЕРЕЙТИ 3 ЗАВИСИМОСТИ) ЯДР). Число имен-процедур, требуемых в операторе GO ТО DEPENDING (ПЕРЕЙТИ В ЗАВИСИМОСТИ), снижено до единицы.
Оператор IE (ЕСЛИ) (1 ЯДР). Необязательное слово THEN (ТО) добавлено в общий формат оператора IF (ЕСЛИ).
Оператор INITIALIZE (ИНИЦИИРОВАТЬ) (2 ЯДР). Оператор INITIALIZE (ИНИЦИИРОВАТЬ) обеспечивает возможность устанавливать выбранные типы полей данных в предопределенные значения.
Оператор INSPECT (ПРОСМОТРЕТЬ) (2 ЯДР). Многократные повторения варианта BEFORE/AFTER (ДО/ІЮСЛЕ) позволяют начать операцию подсчета/замепы после того, как начался просмотр начал данных, и/ил и закончить до конца просмотра концов данных.
Оператор INSPECT (ПРОСМОТРЕТЬ) (2 ЯДР). Слова АШІ..ЕА- DING (ВСЕ/ВЕДУЩИЕ) могут быть размещены среди многих идентификато- ров/литералов и возможны многократные повторения варианта REPLACING CHARACTERS (ЗАМЕНЯЯ ЛИТЕРЫ).
Оператор INSPECT CONVERTING (ПРОСМОТРЕТЬ ПРЕВРАЩАЯ) (2 ЯДР). Вариант CONVERTING (ПРЕВРАЩАЯ) обеспечивает новую разновидность оператора INSPECT (ПРОСМОТРЕТЬ).
Оператор MERGE (СЛИТЬ) (1 СРТ). В варианте GIVING (ПОЛУЧАЯ) оператора MERGE (СЛИТЬ) разрешается несколько имен-файлов. Файлы, указанные в операторе MERGE (СЛИТЬ), могут содержать записи переменной длины. Файл, указанный в варианте USING (ИСПОЛЬЗУЯ) или GIVING (ПОЛУЧАЯ) оператора MERGE (СЛИТЬ), может быть относительным или индексным файлом.
Оператор MOVE (ПОМЕСТИТЬ) (2 ЯДР). Числовое редактируемое данное может быть помещено в числовое или числовое редактируемое данное; таким образом, имеет место доредактирование.
Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) оператора MULTIPLY (УМНОЖИТЬ) (1 ЯДР). Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) обеспечивает программисту возможность указать процедуры, которые должны быть выполнены, когда для оператора MULTIPLY (УМНОЖИТЬ) не выполняется условие переполнения.
Вариант EXTEND (ДОПОЛНЯЕМЫЙ) оператора OPEN (ОТКРЫТЬ) (2 ОТД, 2 ЙЇІД). Вариант EXTEND (ДОПОЛНЯЕМЫЙ) оператора OPEN (ОТКРЫТЬ) может быть использован для относительного или индексного файла.
Оператор PURGE (ОЧИСТИТЬ) (2 КОМ). Оператор PURGE (ОЧИСТИТЬ) побуждает систему управления сообщениями ликвидировать любое незавершенное сообщение, которое было передано одним или несколькими операторами SEND (ПОСЛАТЬ).
Оператор PERFORM (ВЫПОЛНИТЬ) (1 ЯДР). Имя-процедуры может быть опущено, что равнозначно последовательному выполнению повелительных операторов, предшествующих фразе END-PERFORM (КОНЕЦ-ВЫПОЛ- НИТЬ), закапчивающей этот оператор PERFORM (ВЫПОЛНИТЬ).
Оператор PERFORM (ВЫПОЛНИТЬ) (2 ЯДР). Вариант TEST AFTER (С ПРОВЕРКОЙ ПОСЛЕ) означает, что проверка условия должна проводиться после выполнения указанного набора операторов. Вариант TEST BEFORE (С ПРОВЕРКОЙ ДО) означает, что проверка условий должна проводиться до выполнения указанного набора операторов.
Оператор PERFORM (ВЫПОЛНИТЬ) (2 ЯДР). В варианте VARYING (МЕНЯЯ) оператора PERFORM (ВЫПОЛНИТЬ) должно быть разрешено по крайней мере шесть фраз AFTER (ЗАТЕМ). В предыдущем стандарте разрешалось максимум две фразы AFTER (ЗАТЕМ).Оператор READ (ЧИТАТЬ) (2 ПОД, 2 ОТД, 2 ИПД). Если оператор READ (ЧИТАТЬ) используется с вариантом INTO (В), разрешаются записи переменной длины. Вариант NEXT (СЛЕДУЮЩУЮ) разрешен в операторе READ (ЧИТАТЬ), ссылающемся на файл с последовательной организацией.
Вариант NOT AT END (НЕ В КОНЦЕ) оператора READ (ЧИТАТЬ (I ПОД, 1 ОТД, 1 ИНД). Вариант NOT AT END (НЕ В КОНЦЕ) оператора READ (ЧИТАТЬ) обеспечивает программисту возможность указывать процедуры, которые должны быть выполнены, если для оператора READ (ЧИТАТЬ) не выполняется условие «в конце».
Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) оператора READ (ЧИТАТЬ) (I ОТД, 1 ИИД). Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) оператора READ (ЧИТАТЬ) обеспечивает программисту возможность указывать процедуры, которые должны быть выполнены, когда условие ошибки ключа для оператора READ (ЧИТАТЬ) не выполняется.
Вариант WITH РАТА (ЕСТЬ ДАННЫЕ) оператора RECEIVE (ПОЛУЧИТЬ) (1 КОМ). Вариант WITH DATA (ЕСТЬ ДАННЫЕ) оператора RECEIVE (ПОЛУЧИТЬ) предоставляет программисту возможность указать процедуры, которые должны быть выполнены, когда система управления сообщениями делает данные доступными во время выполнения оператора RECEIVE (ПОЛУЧИТЬ).
Оператор REPLACE (ЗАМЕНИТЬ) (2 ОИТ). Оператор REPLACE (ЗАМЕНИТЬ) приводит к замене каждого вхождения указанного текста в исходной программе на соответствующий текст, указанный в операторе REPLACE (ЗАМЕНИТЬ).
Оператор RETURN (ВЕРНУТЬ) (1 СРТ). Записи переменной длины разрешены, если в операторе RETURN (ВЕРНУТЬ) имеется вариант INTO (В).
Вариант NOT AT END (НЕ В КОНЦЕ) оператора RETURN (ВЕРНУТЬ) (1 СРТ). Вариант NOT AT END (НЕ В КОНЦЕ) оператора RETURN (ВЕРНУТЬ) предоставляет программисту возможность указывать процедуры, которые должны быть выполнены, если для оператора RETURN (ВЕРНУТЬ) не выполняется условие «в конце».
) Оператор REWRITE (ОБНОВИТЬ) (2 ОТД, 2 ИПД). Запись в относительном или индексном файле может заменяться записью другой длины
Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) оператора REWRITE (ОБНОВИТЬ) (1 ОТД, 1 ИПД). Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) оператора REWRITE (ОБНОВИТЬ) предоставляет программисту возможность указывать процедуры, которые должны быть выполнены, если условие ошибки ключа для оператора REWRITE (ОБНОВИТЬ) не выполняется.
Оператор SEND (ПОСЛАТЬ) (2 КОМ). Вариант REPLACING LINE (ЗАМЕНЯЯ СТРОКУ) предоставляет новую возможность оператора SEND (ПОСЛАТЬ).
Оператор SET (УСТАНОВИТЬ) (1 ЯДР). В ряде операндов, предшествующих слову ТО (В) оператора SET (УСТАНОВИТЬ), теперь могут одновременно встречаться и имена-индексов и идентификаторы. Два новых варианта оператора SET (УСТАНОВИТЬ) позволяют изменять установку внешнего переключателя и значение условной переменной.
Оператор SORT (СОРТИРОВАТЬ) (1 СРТ). В варианте GIVING (ПОЛУЧАЯ) оператора SORT (СОРТИРОВАТЬ) разрешается несколько имен- файлов. Файл, указанный в операторе SORT (СОРТИРОВАТЬ), может содержать записи переменной длины. Файл, указанный в варианте USING (ИСПОЛЬЗУЯ) или GIVING (ПОЛУЧАЯ) оператора SORT (СОРТИРОВАТЬ), может быть относительным или индексным файлом. Файлы, указанные в вариантах 760USING .(ИСПОЛЬЗУЯ) и GIVING (ПОЛУЧАЯ), могут находиться на одной и тол же физической катушке. Если указан вариант DUPLICATES (С ДУБЛИРОВАНИЕМ), записи, значения ключей которых идентичны, остаются после завершения сортировки в том же порядке, в котором они были при вводе в процесс сортировки.
Операторы SORT (СОРТИРОВАТЬ) и MERGE (СЛИТЬ) (1 СРТ), Процедуры ввода и вывода операторов SORT (СОРТИРОВАТЬ) и MERGE (СЛИТЬ) могут содержать явные передачи управления в точки вне процедуры ввода или вывода. Остальная часть раздела процедур может содержать передачи управления в точки внутри процедуры ввода или вывода. Имя-параграфа может быть указано в варианте INPUT PROCEDURE (ПРОЦЕДУРА ВВОДА) или OUTPUT PROCEDURE (ПРОЦЕДУРА ВЫВОДА).
Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) оператора START (ПОДВЕСТИ) (1 ОТД, 1 ИПД). Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) предоставляет программисту возможность указывать процедуры, подлежащие выполнению, если для оператора START (ПОДВЕСТИ) не выполняется условие ошибки ключа.
Оператор STRING (СОБРАТЬ) (2 ЯДР). Идентификатор в варианте INTO (В) оператора STRING (СОБРАТЬ) может быть групповым данным.
Вариант NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ) оператора STRING (СОБРАТЬ) (2 ЯДР). Вариант NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ) обеспечивает программисту возможность указывать процедуры, подлежащие выполнению, если для оператора STRING (СОБРАТЬ) выполняется условие переполнения.
Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) оператора SUBTRACT (ОТНЯТЬ) (1 ЯДР). Вариант NOT ON SIZE ERROR (БЕЗ ПЕРЕПОЛНЕНИЯ) обеспечивает программисту возможность указывать процедуры, подлежащие выполнению, если для оператора SUBTRACT (ОТНЯТЬ) не выполняется условие переполнения.
Вариант NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ) оператора UNSTRING (РАЗОБРАТЬ) (2 ЯДР). Вариант NOT ON OVERFLOW (БЕЗ ПЕРЕПОЛНЕНИЯ) обеспечивает программисту возможность указывать процедуры, подлежащие выполнению, если для оператора UNSTRING (РАЗОБРАТЬ) не выполняется условие переполнения.
Оператор USE (ИСПОЛЬЗОВАТЬ) (1 ПОД, 1 ОТД, J ИПД). Декларативный оператор USE AFTER EXCEPTION/ERROR (ИСПОЛЬЗОВАТЬ ПОСЛЕ ОШИБКИ), указывающий имя файла, имеет приоритет над декларативным оператором, указывающим режим открытия файла.
Оператор USE (ИСПОЛЬЗОВАТЬ) (2 МПС). Вариант GLOBAL (ГЛОБАЛЬНО) указывает, что соответствующие декларативные процедуры вызываются во время выполнения любой программы, содержащейся в программе, включающей в себя оператор USE (ИСПОЛЬЗОВАТЬ).
Оператор USE BEFORE REPORTING (ИСПОЛЬЗОВАТЬ ДО ВЫДАЧИ) (2 МПС). Вариант GLOBAL (ГЛОБАЛЬНО) указывает, что соответствующие декларативные процедуры вызываются во время выполнения любой программы, содержащейся в программе, включающей в себя оператор USE BEFORE REPORTING (ИСПОЛЬЗОВАТЬ ДО ВЫДАЧИ).
Вариант NOT END-OF-PAGE (НЕ В КОНЦЕ СТРАНИЦЫ) оператора WRITE (ПИСАТЬ). Вариант NOT END-OF-PAGE (НЕ В КОНЦЕ СТРАНИЦЫ) обеспечивает программисту возможность указывать процедуры, подлежащие выполнению, если для оператора WRITE (ПИСАТЬ) не выполняется условие конца страницы.
Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) оператора WRITE (ПИСАТЬ) (1 ОТД, 1 ИПД). Вариант NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) обеспечивает программисту возможность указывать процедуры, подлежащие выполнению, если для оператора WRITE (ПИСАТЬ) не выполняется условие ошибки ключа.
Существенные изменения, потенциально влияющие на имеющиеся программы
Ниже приводится список изменений, которые могли бы воздействовать на существующие программы, например, добавление правила для ранее не определенных ситуаций или изменение правила для существующего глагола. Для каж- .дого элемента этого списка приводится обоснование введения такого изменения.
Основные изменения вызваны стремлением повысить переносимость программ и облегчить написание новых программ, а также дать уточнение неясных или двусмысленных правил. Добавления новых средств также преследуют цель снизить стоимость разработки программ. Ожидается, что затраты на изменение существующих программ должны окупиться экономией при разработке и сопровождении программ. В этол части содержится список изменений, потенциально влияющих па имеющиеся программы. В тех случаях, где в ГОСТ 22558 имелись неясности, сделаны уточнения в соответствии с фактическим промышленным стандартом, если таковой имелся. В любом случае уточняющие разъяснения не приводят к несовместимости стандартов; они могут только привести к возможности ■несовместимости между некоторой отдельной реализацией и настоящим стандартом. Обоснования, включенные в следующий список, относятся прежде всего к воздействию изменений па Кобол-программы, соответствующие правилам ГОСТ '22558. Остается неясным влияние изменений на программы, в которых: