с) Ключ состояния коммуникации = 9х. Состояние, определяемое реализа­цией.

Обоснование

Этот новый диапазон значений ключа состояния коммуникации позволяет реализации определять множество различных условий ошибки. Это предостав­ляет возможность пользователю проверять условия ошибки, определяемые реали­зацией, подобно возможности ГОСТ 22558 для проверки значений состояния ввода-вывода для ошибок ввода-вывода, определяемых реализацией.

  1. Ключ ошибки коммуникации (1 КОМ). Добавлены новые значения ключа ошибки коммуникации. Эти новые значения описаны ниже.

  1. Значение ключа ошибки коммуникации = 2. Символический адресат за­прещен.

Обоснование

Был выполнен оператор SEND (ПОСЛАТЬ) и адресат, к которому отно­сится этот ключ ошибки, запрещен. В ГОСТ 22558 это условие не распознавалось пользователем.

  1. Значение ключа ошибки коммуникации = 5. Символический адресат уже разрешен (запрещен).

Обоснование

Был выполнен оператор ENABLE (РАЗРЕШИТЬ) или DISABLE (ЗАПРЕ­ТИТЬ) и адресат, к которому относится этот ключ ошибки, уже разрешен (за­прещен). В ГОСТ 22558 это условие не распознавалось пользователем.

  1. Значение ключа ошибки коммуникации = 6. Превышена вместимость вы­ходной очереди.

Обоснование

Был выполнен оператор SEND (ПОСЛАТЬ) и система управления сооб­щениями не смогла включить в очередь сообщение, сегмент сообщения или пор­цию сообщения или сегмента сообщения, поскольку выходная очередь адресата, к которому относится это значение ключа ошибки коммуникации, заполнена. В ГОСТ 22558 это условие пользователем не распознавалось.

  1. Значение ключа ошибки коммуникации = А до Z. Условие, определяемое реализацией.

Обоснование

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

ПРИЛОЖЕНИЕ 2

СПИСКИ ЭЛЕМЕНТОВ ЯЗЫКА

  1. Список устаревших элементов языка

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

  1. элементы языка, которые подлежат удалению из стандарта Кобола, опре­деляются в настоящем стандарте как устаревшие элементы языка (до их уда­ления);

  2. взаимоотношение между устаревшими элементами и другими элементами языка не определено, если только не оговорено другое;

  3. устаревшие элементы языка будут удалены в следующей редакции стан­дарта;

  4. требуется, чтобы соответствующая стандарту реализация Кобола поддер­живала устаревшие элементы языка для подмножеств и уровней необязательных модулей, для которых объявлена поддержка.

Далее следует список элементов языка, объявляемых в настоящем стандар­те устаревшими. Для каждого элемента списка приводится обоснование отнесе­ния этого элемента к категории устаревших элементов.

  1. Замена литеры двумя литерами (1 ЯДР). Если набор литер состоит ме­нее чем из 51 (72) литер, вместо одной литеры могут представляться две литеры. Эта возможность отнесена к категории устаревших элементов.

Обоснование

Эта спецификация привнесена с тех времен, когда оборудование не могло обеспечить полный набор литер Кобола. Такое ограничение на количество литер, допускаемых оборудованием, больше не существует.

  1. ALL литерал (ВСЕ литерал) и числовое или числовое редактируемое данное (2 ЯДР). Стандартная константа ALL литерал (ВСЕ литерал), когда она связана с числовым или числовым редактируемым данным и когда длина литерала больше единицы, относится к категории устаревших элементов.

Обоснование

Причиной считать этот элемент устаревшим послужило то, что результат пе­ремещения ALL литерал (ВСЕ литерал) в числовое данное часто непредсказуем. Например, соответственно интерпретации, операторы

01 A PIC 99V99. 01 А Ш 99Т99.

MOVE ALL «99» ТО А. ПОМЕСТИТЬ ВСЕ «99» В А.

MOVE ALL «123» ТО А. ПОМЕСТИТЬ ВСЕ «123» В А.

  1. дадут соответственно значения 99.00 и 31.00.Параграфы AUTHOR (АВТОР), INSTALLATION (ПРЕДПРИЯТИЕ), DATE-WRITTEN (ДАТА-НАПИСАНИЯ), DATE-COMPILED- (ДАТА-ТРАНС- ЛЯЦИИ) и SECURITY (ПОЛНОМОЧИЯ) (1 ЯДР). Эти параграфы раздела оборудования отнесены к категории устаревших элементов.

Обоснование

Назначение параграфов AUTHOR (АВТОР), INSTALLATION (ПРЕДПРИ­ЯТИЕ), DATE-WRITTEN (ДАТА-НАПИСАНИЯ), DATE-COMPILED (ДАТА- ТРАНСЛЯЦИИ) и SECURITY (ПОЛНОМОЧИЯ) может быть достигнуто по­средством использования строк комментария в разделе идентификации, посколь­ку эти параграфы не влияют на работу Кобол-программы.

Чистка и регуляризация языка Кобол достигается объявлением устаревшими многих определяемых реализацией элементов. Форматы параграфов DATE- COMPILED (ДАТА-ТРАНСЛЯЦИИ) и SECURITY (ПОЛНОМОЧИЯ) являют­ся примером параграфов статьи-комментария, определяемых реализацией.

Взаимодействие оператора COPY (КОПИРОВАТЬ) со статьями коммента­риев в параграфах AUTHOR (АВТОР), INSTALLATION (ПРЕДПРИЯТИЕ), DATE-WRITTEN (ДАТА-НАПИСАНИЯ), DATE-COMPILED (ДАТА-ТРАНСЛЯ­ЦИИ) и SECURITY (ПОЛНОМОЧИЯ) часто неоднозначно, например, наличие слова COPY (КОПИРОВАТЬ) в статье-комментарии и использование оператора COPY (КОПИРОВАТЬ) в статье-комментарии.

  1. Фраза MEMORY SIZE (РАЗМЕР ПАМЯТИ) (1 ЯДР).

Фраза MEMORY SIZE (РАЗМЕР ПАМЯТИ) параграфа OBJECT-COMPU­TER (РАБОЧАЯ-МАШИНА) отнесена к категории устаревших элементов языка.

Обоснование

Эта анахроническая возможность языка сохранилась с того времени, когда многие системы требовали определения размера памяти для загрузки единицы исполнения. Емкость памяти для семейства главных моделей часто колебалась от 8К до 64К максимум. Кобол-программы используют фразу MEMORY SIZE (РАЗМЕР ПАМЯТИ) для генерирования объектов для специальных моделей.

Эта возможность рассматривается как функция операционной системы в сов­ременной вычислительной среде. В стандарте Кобола фраза MEMORY SIZE (РАЗМЕР ПАМЯТИ) необязательна. Таким образом нет стандартных соответ­ствующих реализаций Кобола, требующих использования фразы MEMORY SIZE (РАЗМЕР ПАМЯТИ) для определения размера памяти объектной машины.

  1. Фраза RERUN (ПЕРЕПРОГОН) (1 ПОД, 1 ОТД, 1 ИПД), Фраза RERUN (ПЕРЕПРОГОН) параграфа I-O-CONTROL (УПРАВЛЕНИЕ-ВВО- ДОМ-ВЫВОДОМ) отнесена к категории устаревших элементов.

Обоснование

Обеспечиваются семь форм фразы RERUN (ПЕРЕПРОГОН). Требуется, чтобы реализация поддерживала по крайней мере одну из них.

Эта возможность рассматривается как функция операционной системы в сов­ременной вычислительной среде.

Фраза RERUN (ПЕРЕПРОГОН) обеспечивает только наполовину возмож­ности перепрогона/рестарта. То есть синтаксис и семантика для рестарта не оп­ределены. Из-за разнообразия форм фразы RERUN (ПЕРЕПРОГОН) нет гаран­тии, что программа, использующая эту фразу, будет переносимой (мобильной).

  1. Фраза MULTIPLE FILE ТАРЕ (НА ОДНОЙ КАТУШКЕ) (2 ПОД, 1 ГОТ). Фраза MULTIPLE FILE ТАРЕ (НА ОДНОЙ КАТУШКЕ) параграфа I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ) раздела оборудования отнесена к категории устаревших элементов.

Обоснование

Фраза MULTIPLE FILE ТАРЕ (НА ОДНОЙ КАТУШКЕ) могла бы быть функцией операционной системы, а не отдельной Кобол-программы. Поэтому фраза MULTIPLE FILE ТАРЕ (НА ОДНОЙ КАТУШКЕ) отнесена к категории устаревших элементов.

  1. Фраза LABEL RECORDS (МЕТКИ) (1 ПОД, 1 ОТД, 1 ИПД, 1 ГОТ). Фраза LABEL RECORDS (МЕТКИ) статьи описания файла отнесена к катего­рии устаревших элементов и рассматривается как необязательная фраза.

Обоснование

Фраза LABEL RECORDS (МЕТКИ) рассматривается как необязательная фраза категории устаревших элементов. Определение наличия меток файла рас­сматривается как функция операционной системы и поэтому не относится к Ко- бол-программе.

  1. Фраза VALUE OF (ЗНАЧЕНИЕ) (1 ПОД, 1 ОТД, 1 ИПД, 1 ГОТ). Фра­за VALUE OF (ЗНАЧЕНИЕ) статьи описания файла отнесена к категории уста­ревших элементов.

Обоснование

Описание элементов метки файла рассматривается как функция операцион­ной системы и не относится к Кобол-программе. Поэтому фраза VALUE OF (ЗНАЧЕНИЕ) отнесена к категории устаревших элементов.

  1. Фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) (1 ПОД, 1 ОТД, 1 ИПД). Фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) статьи описания файла отнесена к категории устаревших элементов.

Обоснование

Фраза DATA- RECORDS (ЗАПИСИ ДАННЫХ) избыточна и может привес­ти к несоответствию документации.

  1. Оператор ALTER (ИЗМЕНИТЬ) (1 ЯДР).

Оператор ALTER (ИЗМЕНИТЬ) отнесен к категории устаревших элементов. Обоснование

ІТспользование в программе оператора ALTER (ИЗМЕНИТЬ) приводит к затруднению понимания программы и ее поддержки. Оператор ALTER (ИЗМЕ­НИТЬ) не имеет уникального назначения, поскольку оператор GO ТО DEPEN­DING (ПЕРЕЙТИ В ЗАВИСИМОСТИ ОТ) служит для той же цели.

  1. Фраза KEY (КЛЮЧ) оператора DISABLE (ЗАПРЕТИТЬ) (2 КОМ). Фраза KEY (КЛЮЧ) оператора DISABLE (ЗАПРЕТИТЬ) отнесена к категории устаревших элементов и рассматривается как необязательная фраза.

Обоснование

Фраза KEY (КЛЮЧ) оператора DISABLE (ЗАПРЕТИТЬ) используется как парольное средство доступа для оператора DISABLE (ЗАПРЕТИТЬ). Тем не менее не указаны правила для определения, когда значение в фразе KEY .„ (КЛЮЧ) соответствует системному паролю, вследствие чего ситуация опреде­ляется реализацией. Таким образом, функция, обеспечиваемая фразой KEY (КЛЮЧ), немобильна.

  1. Фраза KEY (КЛЮЧ) оператора ENABLE (РАЗРЕШИТЬ) (2 КОМ). , Фраза KEY (КЛЮЧ) оператора ENABLE (РАЗРЕШИТЬ) отнесена к категории устаревших элементов и рассматривается как необязательная фраза

Обоснование

Фраза KEY"(КЛЮЧ) оператора ENABLE (РАЗРЕШИТЬ) используется как парольное средство доступа для оператора ENABLE (РАЗРЕШИТЬ). Тем не менее правила для определения, когда значение в фразе KEY (КЛЮЧ) соот­ветствует системному паролю, не указаны, вследствие чего ситуация определяет­ся реализацией. Таким образом, функция, обеспечиваемая фразой KEY (КЛЮЧ), немобильна.

  1. Оператор ENTER (ВРИТИ) (1 ЯДР). Оператор ENTER (ВОЙТИ) отнесена к категории устаревших элементов.

Обоснование

Оператор ENTER (ВОЙТИ) был предвестником оператора CALL (ВЫЗ- . ВАТЬ) и вызова внешних подпрограмм. Оператор ENTER (ВОЙТИ) не обеспе­чивает мобильность, поскольку является необязательным и определяется реали­зацией; поэтому оператор ENTER (ВОЙТИ) не является хорошим объектом для стандартизации.

  1. Необязательность имени-процедуры-1 в операторе GO ТО (ПЕРЕЙТИ К) (2 ЯДР). Необязательность имени-процедуры-1 в операторе GO ТО (ПЕ­РЕЙТИ К) отнесено к категории устаревших элементов.

Обоснование

Необязательность имени-процедуры-1 в операторе GO ТО (ПЕРЕЙТИ К) зависит от оператора ALTER (ИЗМЕНИТЬ). Если имя-процедуры-1 не указано в формате 1 оператора GO ТО (ПЕРЕЙТИ К), то оператор ALTER (ИЗМЕ­НИТЬ), ссылающийся на этот оператор GO ТО (ПЕРЕЙТИ К), должен быть выполнен до выполнения оператора GO ТО (ПЕРЕЙТИ). Поскольку оператор ALTER (ИЗМЕНИТЬ) отнесен к категории устаревших элементов языка, необя­зательность имени-процедуры-1 в операторе GO ТО (ПЕРЕЙТИ К) также от­несена к категории устаревших элементов.

  1. Фраза REVERSED (РЕВЕРСНО) оператора OPEN (ОТКРЫТЬ) (2 ПОД). Фраза REVERSED (РЕВЕРСНО) оператора OPEN (ОТКРЫТЬ) от­несена к категории устаревших элементов.

Обоснование

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

  1. Оператор STOP литерал (ОСТАНОВИТЬ литерал) (1 ЯДР). Вариант литерал оператора STOP (ОСТАНОВИТЬ) отнесен к категории устаревших эле­ментов.

Обоснование

Общее правило (4) оператора STOP (ОСТАНОВИТЬ) гласит: «Если указан вариант STOP литерал-1 (ОСТАНОВИТЬ литерал-1), выполнение единицы ис­полнения приостанавливается, а литерал-1 сообщается оператору. Продолжение функционирования единицы исполнения начинается со следующего выполнимого' оператора в том случае, когда подключена зависящая от реализации процедура управления возобновлением единицы исполнения».

Назначение оператора STOP литерал (ОСТАНОВИТЬ литерал) по сущест­ву определяется реализацией и поэтому программы, использующие его, немо­бильны.

  1. Модуль сегментации. Модуль сегментации отнесен к категории устарев ших элементов.

Обоснование

К настоящему моменту функция, обеспечиваемая модулем сегментации, обеспечивается на уровне операционной системы, внешнем по отношению к ис­ходному коду Кобола. Поэтому средства сегментации остаются в настоящем стандарте как устаревший элемент, подлежащий удалению в следующей редак­ции стандарта.

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

  1. Модуль отладки. Модуль отладки отнесен к категории устаревших эле­ментов.

Обоснование

К настоящему моменту функция, обеспечиваемая модулем отладки, зачас­тую обеспечивается средством диалоговой отладки, не требующим исходных ■операторов Кобола. Поэтому средства отладки остаются в настоящем стандарте как устаревший элемент, подлежащий удалению в следующей редакции стан­дарта.

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