ГОСТ 22558-89 сторінка 112 з 116
Обоснование
Фраза MULTIPLE FILE ТАРЕ (НА ОДНОЙ КАТУШКЕ) могла бы быть функцией операционной системы, а не отдельной Кобол-программы. Поэтому фраза MULTIPLE FILE ТАРЕ (НА ОДНОЙ КАТУШКЕ) отнесена к категории устаревших элементов.
Фраза LABEL RECORDS (МЕТКИ) (1 ПОД, 1 ОТД, 1 ИПД, 1 ГОТ). Фраза LABEL RECORDS (МЕТКИ) статьи описания файла отнесена к категории устаревших элементов и рассматривается как необязательная фраза.
Обоснование
Фраза LABEL RECORDS (МЕТКИ) рассматривается как необязательная фраза категории устаревших элементов. Определение наличия меток файла рассматривается как функция операционной системы и поэтому не относится к Ко- бол-программе.
Фраза VALUE OF (ЗНАЧЕНИЕ) (1 ПОД, 1 ОТД, 1 ИПД, 1 ГОТ). Фраза VALUE OF (ЗНАЧЕНИЕ) статьи описания файла отнесена к категории устаревших элементов.
Обоснование
Описание элементов метки файла рассматривается как функция операционной системы и не относится к Кобол-программе. Поэтому фраза VALUE OF (ЗНАЧЕНИЕ) отнесена к категории устаревших элементов.
Фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) (1 ПОД, 1 ОТД, 1 ИПД). Фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) статьи описания файла отнесена к категории устаревших элементов.
Обоснование
Фраза DATA- RECORDS (ЗАПИСИ ДАННЫХ) избыточна и может привести к несоответствию документации.
Оператор ALTER (ИЗМЕНИТЬ) (1 ЯДР).
Оператор ALTER (ИЗМЕНИТЬ) отнесен к категории устаревших элементов. Обоснование
ІТспользование в программе оператора ALTER (ИЗМЕНИТЬ) приводит к затруднению понимания программы и ее поддержки. Оператор ALTER (ИЗМЕНИТЬ) не имеет уникального назначения, поскольку оператор GO ТО DEPENDING (ПЕРЕЙТИ В ЗАВИСИМОСТИ ОТ) служит для той же цели.
Фраза KEY (КЛЮЧ) оператора DISABLE (ЗАПРЕТИТЬ) (2 КОМ). Фраза KEY (КЛЮЧ) оператора DISABLE (ЗАПРЕТИТЬ) отнесена к категории устаревших элементов и рассматривается как необязательная фраза.
Обоснование
Фраза KEY (КЛЮЧ) оператора DISABLE (ЗАПРЕТИТЬ) используется как парольное средство доступа для оператора DISABLE (ЗАПРЕТИТЬ). Тем не менее не указаны правила для определения, когда значение в фразе KEY .„ (КЛЮЧ) соответствует системному паролю, вследствие чего ситуация определяется реализацией. Таким образом, функция, обеспечиваемая фразой KEY (КЛЮЧ), немобильна.
Фраза KEY (КЛЮЧ) оператора ENABLE (РАЗРЕШИТЬ) (2 КОМ). , Фраза KEY (КЛЮЧ) оператора ENABLE (РАЗРЕШИТЬ) отнесена к категории устаревших элементов и рассматривается как необязательная фраза
Обоснование
Фраза KEY"(КЛЮЧ) оператора ENABLE (РАЗРЕШИТЬ) используется как парольное средство доступа для оператора ENABLE (РАЗРЕШИТЬ). Тем не менее правила для определения, когда значение в фразе KEY (КЛЮЧ) соответствует системному паролю, не указаны, вследствие чего ситуация определяется реализацией. Таким образом, функция, обеспечиваемая фразой KEY (КЛЮЧ), немобильна.
Оператор ENTER (ВРИТИ) (1 ЯДР). Оператор ENTER (ВОЙТИ) отнесена к категории устаревших элементов.
Обоснование
Оператор ENTER (ВОЙТИ) был предвестником оператора CALL (ВЫЗ- . ВАТЬ) и вызова внешних подпрограмм. Оператор ENTER (ВОЙТИ) не обеспечивает мобильность, поскольку является необязательным и определяется реали
зацией; поэтому оператор ENTER (ВОЙТИ) не является хорошим объектом для стандартизации.
Необязательность имени-процедуры-1 в операторе GO ТО (ПЕРЕЙТИ К) (2 ЯДР). Необязательность имени-процедуры-1 в операторе GO ТО (ПЕРЕЙТИ К) отнесено к категории устаревших элементов.
Обоснование
Необязательность имени-процедуры-1 в операторе GO ТО (ПЕРЕЙТИ К) зависит от оператора ALTER (ИЗМЕНИТЬ). Если имя-процедуры-1 не указано в формате 1 оператора GO ТО (ПЕРЕЙТИ К), то оператор ALTER (ИЗМЕНИТЬ), ссылающийся на этот оператор GO ТО (ПЕРЕЙТИ К), должен быть выполнен до выполнения оператора GO ТО (ПЕРЕЙТИ). Поскольку оператор ALTER (ИЗМЕНИТЬ) отнесен к категории устаревших элементов языка, необязательность имени-процедуры-1 в операторе GO ТО (ПЕРЕЙТИ К) также отнесена к категории устаревших элементов.
Фраза REVERSED (РЕВЕРСНО) оператора OPEN (ОТКРЫТЬ) (2 ПОД). Фраза REVERSED (РЕВЕРСНО) оператора OPEN (ОТКРЫТЬ) отнесена к категории устаревших элементов.
Обоснование
Последовательный файл может быть открыт для ввода с чтением в обратном порядке. Оборудование, необходимое для обеспечения таких действий, используется не очень широко. Следовательно, это средство редко реализуется и не является хорошим объектом для стандартизации. Поскольку это средство из списка средств, зависящих от оборудования, оно является необязательным и может быть по желанию реализовано или не реализовано.
Оператор STOP литерал (ОСТАНОВИТЬ литерал) (1 ЯДР). Вариант литерал оператора STOP (ОСТАНОВИТЬ) отнесен к категории устаревших элементов.
Обоснование
Общее правило (4) оператора STOP (ОСТАНОВИТЬ) гласит: «Если указан вариант STOP литерал-1 (ОСТАНОВИТЬ литерал-1), выполнение единицы исполнения приостанавливается, а литерал-1 сообщается оператору. Продолжение функционирования единицы исполнения начинается со следующего выполнимого' оператора в том случае, когда подключена зависящая от реализации процедура управления возобновлением единицы исполнения».
Назначение оператора STOP литерал (ОСТАНОВИТЬ литерал) по существу определяется реализацией и поэтому программы, использующие его, немобильны.
Модуль сегментации. Модуль сегментации отнесен к категории устарев ших элементов.
Обоснование
К настоящему моменту функция, обеспечиваемая модулем сегментации, обеспечивается на уровне операционной системы, внешнем по отношению к исходному коду Кобола. Поэтому средства сегментации остаются в настоящем стандарте как устаревший элемент, подлежащий удалению в следующей редакции стандарта.
Решение сделать модуль сегментации необязательным позволяет имеющимся реализациям по-прежнему предлагать это средство с целью совместимости, не вынуждая при этом новые реализации обеспечивать средства, базирующиеся на устаревшей технологии.
Модуль отладки. Модуль отладки отнесен к категории устаревших элементов.
Обоснование
К настоящему моменту функция, обеспечиваемая модулем отладки, зачастую обеспечивается средством диалоговой отладки, не требующим исходных ■операторов Кобола. Поэтому средства отладки остаются в настоящем стандарте как устаревший элемент, подлежащий удалению в следующей редакции стандарта.
Решение сделать модуль отладки необязательным позволяет имеющимся реализациям по-прежнему предлагать это средство с целью совместимости, не вынуждая при этом новые реализации обеспечивать средства, базирующиеся на устаревшей технологии.
Список элементов языка, определяемых реализацией
Ниже следует список элементов языка настоящего стандарта, для которых спецификация синтаксиса или правил доопределяется в реализации.
Системное-имя. Правила образования системного-имени определяются реализацией (см. ч. 4, п. 4.2.2.1.2).
Представление данных. Выбор основания системы счисления обычно зависит от арифметических возможностей вычислительной машины (см. ч. 4, п. 4.3.4).
Алгебраический знак. Если не использована фраза SIGN (ЗНАК), знаки числа будут представлены так, как это определяет реализация (см. ч. 4, п. 4.3.5).
Выравнивание данных. Каждая реализация, обеспечивающая специальные типы выравнивания, должна описать действие неявного заполнителя и семантику операторов, ссылающихся на содержащие его группы (см. ч. 4, п. 4.3.7).
Внешний переключатель. Внешний переключатель является устройством оборудования или программным средством, определяемым и именуемым реализа- дисй (см. ч. 4, п. 4.5).
Внешний переключатель. Реализация определяет область действия (программа, единица исполнения и т. п.) каждого внешнего переключателя и возможности (внешние по отношению к Коболу), используемые для изменения состояния внешнего переключателя (см. ч. 4, п. 4.5).
Область В. Область В занимает конечное число позиций литер, определяемое реализацией (см. ч. 4, п. 7.2).
Имя-машииы в параграфе SOURCE-COMPUTER (ИСХОДНАЯ-МАШИ- НА). Имя-машииы является системным-именем, поэтому правила образования имени-машины определяются реализацией (см. ч. 6, п. 4.3.3, синтаксическое правилі! (1)).
(о) Имя-машины в параграфе OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА). Имя-машииы является системным-именем, поэтому правила образования имени-машины'определяется реализацией (см. ч. 6. п. 4.4.3, синтаксическое правил-! fl)).
ПО) Фраза MEMORY SIZE (РАЗМЕР ПАМЯТИ).
Если подмножество, задаваемое пользователем, меньше минимальной конфигурации, требуемой для выполнения объектной программы, необходимые меры определяются реализацией (см. ч. 6, п. 4.4.4, общее правило (1)).
I И) Программная основная последовательность.
При отсутствии фразы PROGRAM COLLATING SEQUENCE (ПРОГРАММНЫЙ АЛФАВИТ) используется внутренняя основная последовательность (см. ч 6, п. 4.1.4. общее правило (6)).
Имя-реализации в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ- ИМЕНА), Имя-реализации является системным именем, поэтому правила образования имени-реализации определяются реализацией (см. ч. 6, п. 4.5.2).
STANDARD-1 (СТАНДАРТ-А) во фразе ALPHABET (АЛФАВИТ). Если между отдельными литерами стандартного и внутреннего наборов отсутет-
вует соответствие и оно никак не определено, это соответствие определяется реализацией (см. ч. 6, п. 4.5.4, общее правило 4 а).
Имя-реализации во фразе ALPHABET (АЛФАВИТ).
Если задана фраза имя-реализании-2, набор кодов литер или соответствующая основная последовательность определяется реализацией. Реализация также определяет соответствие между литерами или литерой набора кодов, специфицированного фразой имя-реализации-2, и внутренним набором кодов литер (см. ч. 6, п. 4.5.4, общее правило 4в). _
Фраза RERUN (ПЕРЕПРОГОН). Реализация должна обеспечивать хотя бы один вариант фразы RERUN (ПЕРЕПРОГОН) (см. ч. 7, п. 2.12.4, общее правило (2)).
Фраза RECORD (В ЗАПИСИ). Если в статье описания записи не указана фраза RECORD (В ЗАПИСИ) или если во фразе RECORD (В ЗАПИСИ) указан диапазон позиций литер, реализация определяет, какой получается тип записей — переменной длины или фиксированной длины (см. ч. 2, п. 2.1.4.3).
Фраза INDEXED BY (ИНДЕКСИРУЕТСЯ). Имя-индекса, идентифицируемое в исходной программе посредством фразы INDEXED BY (ИНДЕКСИРУЕТСЯ), не определяется в программе, так как его размещение и формат зависят от машины и, не будучи данными, имена-индексов не могут быть связаны с какой-либо структурой данных (см. ч. 6, п. 5.8.3, синтаксическое правило (13)).
Фраза SIGN (ЗНАК). Если статья описания числового данного не содержит необязательную фразу SIGN (ЗНАК), а строка литер его шаблона содержит символ S (3), то позиция и представление знака определяется реализацией (см. ч. 6, п. 5.12.4, общее правило (4)).
Фраза SIGN (ЗНАК). Если вариант SEPARATE CHARACTER (ОТДЕЛЬНО) не указан, представление знака данного определяет реализация (см. ч. S, п. 5.12.4, общее правило 5в).
Фраза SYNCHRONIZED (ВЫДЕЛЕНО). Фраза SYNCHRONIZED (ВЫДЕЛЕНО), в которой не указано ни RIGHT (ВПРАВО), ни LEFT (ВЛЕВО), означает, что элементарное данное нужно расположить между естественными границами таким образом, чтобы достичь наиболее эффективного его использования. Особенности размещения определяются реализацией (см. ч. 6, п. 5.13.4, общее правило (2)).
Фраза SYNCHRONIZED (ВЫДЕЛЕНО). Реализация должна указывать, как обрабатываются элементарные данные, связанные с фразой SYNCHRONIZED (ВЫДЕЛЕНО), в зависимости от: (а) формата внешнего представления содержащих их записей или групп, в описании которых указана фраза SYNCHRONIZED (ВЫДЕЛЕНО); (б) необходимого порождения неявных заполнителей, если элементарное данное, непосредственно предшествующее данному, описание которого содержит фразу SYNCHRONIZED (ВЫДЕЛЕНО), не оканчивается на естественной границе (см. ч. 6. п. 5.13.4, общее правило (8)).
Фраза SYNCHRONIZED (ВЫДЕЛЕНО). Реализация может задавать автоматическое выравнивание внутри записи для любого внутреннего формата данных, за исключением данных, использование которых указано DISPLAY (ДЛЯ ВЫДАЧИ). Однако запись в целом может быть выделена (см. ч. 6, п. 5.13.4, общее правило (9)).
Фраза об использовании USAGE IS BINARY (ДВОИЧНОЕ). Каждая реализация определяет точное воздействие фразы BINARY (ДВОИЧНОЕ) на выравнивание и представление данного в памяти машины, включая представление любого алгебраического знака. Реализацией должно быть распределено достаточно памяти для размещения десятичных значений максимального диапазона, определяемого строкой литер шаблона (см. ч. 6, п. 5.14.4, общее правило (3)).
Фраза об использовании USAGE IS COMPUTATIONAL (ДЛЯ ВЫ- ЧИСЛЕНИИ). Каждая реализация определяет точное воздействие фразы USAGE IS COMPUTATIONAL (ДЛЯ ВЫЧИСЛЕНИЙ) на выравнивание и представление данного в памяти машины, включая представление алгебраического знака и допустимый диапазон значений данных (см. ч. 6, п. 5.14.4, общее правило (4)).
Фраза об использовании USAGE IS INDEX (ДЛЯ ИНДЕКСА). Каждая реализация определяет точное воздействие фразы USAGE IS INDEX (ДЛЯ ИНДЕКСА) на выравнивание и представление данного в памяти машины, включая действительные значения, присвоенные номеру вхождения элемента таблицы (см. ч. 6, п. 5.14.4, общее правило (7)).
Фраза об использовании USAGE IS PACKED-DECIMAL (ДЕСЯТИЧ- НОЕ). Каждая реализация определяет точное воздействие фразы USAGE IS PACKED-DECIMAL (ДЕСЯТИЧНОЕ) на выравнивание и представление данного в памяти машины, включая представление алгебраического знака. Реализацией должен быть выделен достаточный объем памяти для размещения максимального значения, соответствующего десятичным позициям числа, определяемого строкой литер шаблона (см. ч. 6, п. 5.14.4, общее правило (9)).
Арифметическое выражение. Каждая реализация указывает способы, используемые в обработке арифметических выражений (см. ч. 6, п. 6.2.3, правило (6)).
Оператор ACCEPT (ПРИНЯТЬ). Мнемоническое имя в операторе ACCEPT (ПРИНЯТЬ) должно связываться с устройством оборудования (см. ч. 6, п. 6.5.3, синтаксическое правило (1)).
Оператор ACCEPT (ПРИНЯТЬ). Любое преобразование данных, требуемое при их перемещении с внешнего устройства в данное, представленное идентификатором-1, определяется реализацией (см. ч. 6. п. 6.5.4, общее правило (1)).
Оператор ACCEPT (ПРИНЯТЬ). Размер одной передачи для каждого устройства оборудования определяется реализацией (см. ч. 6, п. 6.5.4, общее правило (2)).
Оператор ACCEPT (ПРИНЯТЬ). Если вариант FROM (С) не указан, то используется устройство, определяемое реализацией как стандартное (см. ч. 6, п. 6.5.4, общее правило (5)).
Оператор ADD (СЛОЖИТЬ). Выделение достаточного поля памяти для выполнения вычислений без потери значащих цифр обеспечивается компилятором (см. ч. 6, п. 6.6.4, общее правило (4)).
Оператор COMPUTE (ВЫЧИСЛИТЬ). Каждая реализация определяет приемы обработки арифметических выражений (см. ч. 6, п. 6.8.4, общее правило (3)).
Оператор DISPLAY (ВЫДАТЬ). Мнемоническое-имя в операторе DISPLAY (ВЫДАТЬ) связывается с устройством оборудования (см. ч. 6, п. 6.10.3, синтаксическое правило (1)).
Оператор DISPLAY (ВЫДАТЬ). Любое преобразование данных, которое может потребоваться при выводе литерала-1 или данного, соотнесенного идентификатору-1, на внешнее устройство, определяется реализацией (см. ч. 6, п. 6.10.4, общее правило (1)).
Оператор DISPLAY (ВЫДАТЬ). Размер одной передачи для каждого устройства определяется реализацией (см. ч. 6, п. 6.10.4, общее правило (2)).
Оператор DISPLAY (ВЫДАТЬ). Если не указана фраза UPON (НА), используется стандартное выводное устройство реализации (см. ч. 6, п. 6.10.4, общее правило (7)).
Оператор ENTER (ВОЙТИ). Имя-языка-1 определяется реализацией (см. ч. 6, п. 6.12.3, синтаксическое правило (1)).
Оператор SEARCH ALL (ИСКАТЬ ОСОБО). Начальная установка имени-индекса для идентификатора-1 игнорируется и установка имени-индекса меняется в ходе операции поиска способом, определяемым реализацией (см. ч. 6, п. 6.22.4, общее правило (4)).
Оператор SET (УСТАНОВИТЬ). Каждая реализация определяет, на какие внешние переключатели может ссылаться оператор SET (УСТАНОВИТЬ) (см. ,ч. 6, п. 6.23.3, синтаксическое правило (5)).
Побачили розбіжність з офіційним текстом?