Максимальное подмножество стандарта языка Кобол содер­жит все элементы наивысшего уровня всех обязательных модулей, а именно:

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

элементы уровня 1 сортировки-слияния.

Промежуточное подмножество стандарта языка Кобол содер­жит все элементы уровня 1 всех обязательных модулей:

Таблица 1

модули множествах)

Необязательные модули (не обязательны в подмножествах)


Сортиров­ка-слияние

Обработка исходных текстов

Г енератор отчетов

Коммуникации

Отладка

Сегментация


1 СРТ 0,1 !

1 СРТ 0,1

2 ОНТ 0.2

1 ОИТ 0,2 ■

1 ГОТ 0,1

2 КОМ 0,2

2 ОТЛ 0,2

2 СЕГ 0,2

1 КОМ 0,2

1 ОТЛ 0,2

1 СЕГ 0і,2

Нуль (пустое подмноже­ство)

Нуль (пус­тое под­множество)



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

Минимальное подмножество стандарта языка Кобол содержит все элементы уровня 1 ядра, последовательного ввода-вывода и межпрограммных связей.

  1. Определение соответствия реализации стандарту

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

Соответствующая стандарту реализация данного подмножест­ва стандарта языка Кобол должна полностью поддерживать все элементы языка этого подмножества (п. 1.5.2.5 настоящей части).

Кроме того, каждая реализация должна удовлетворять требо­ваниям, изложенным ниже (пп. 1.5.2.1—1.5.2.4).

  1. Замена элементов или дополнительные элементы языка

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

Г.5.2.2. Соглашения о стандартных элементах языка

Реализация должна поддерживать синтаксис и обеспечивать функции всех элементов стандарта языка Кобол, как это определе­но данным уровнем модуля, включаемым в реализацию, за исклю­чением элементов языка, зависящих от специфических компонент оборудования, которые приведены в п. 1.5.2.5.1 настоящей части. Если реализация поддерживает синтаксис элементов стандарта языка Кобол для данного уровня модуля, отличного от того, под­держка которого объявлена, реализация должна обеспечить функ­ции, определенные стандартом языка Кобол для данного синтак­сиса, или идентифицировать эти элементы языка как нестандарт­ные расширения (п. 1.5.2.5.2 настоящей части).

  1. Устаревшие элементы языка

Устаревшие элементы языка — элементы в стандарте языка Кобол, которые будут изъяты при следующем пересмотре стандар­та (приложение 2, п. 1). Устаревшие элементы языка не были ни усилены, ни модифицированы в процессе пересмотра. Взаимодей­ствие между устаревшими и остальными элементами языка не оп­ределено, если не оговорено специально в стандарте. Элементы языка, которые предполагается изъять из стандарта, будут снача­ла идентифицированы как устаревшие элементы языка.

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

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

  1. Действия, обеспечиваемые вне исходной программы

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

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

  1. Уточнения

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

Элементы языка, зависящие от оборудованияРяд элементов языка рассчитан на определенный тип техниче­ских средств (приложение 2, п. 3). Для того, чтобы реализация удовлетворяла требованиям этого стандарта, разработчик должен указать технические средства, которые поддерживает реализация. Более того, когда объявлена поддержка специфических техниче­ских средств, должны быть реализованы все элементы языка, ко­торые зависят от этих средств, если модуль, в котором они появля­ются, включен в реализацию. Элементы языка, имеющие отноше­ние к специфическим компонентам оборудования, для которых не объявлена поддержка реализации, нет необходимости реализо­вать. Отсутствие таких элементов должно быть указано реализа­цией стандарта языка Кобол.

  1. Расширение элементов языка

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

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

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

  1. Зарезервированные слова

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

  1. Замена литер

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

  1. Оператор ENTER (ВОЙТИ)

По усмотрению разработчика, реализация стандарта языка Кобол может включать или не включать оператор ENTER (ВОЙ­ТИ).

  1. Соответствие исходной программы стандарту

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

Для того, чтобы исходная программа соответствовала опреде­ленному подмножеству стандарта языка Кобол, она должна вклю­чать в себя только элементы языка этого подмножества.

В стандарте языка Кобол имеется ряд ситуаций, в которых ре­зультат выполнения оператора не определен или непредсказуем (приложение 2, п. 4). Исходная Кобол-программа, допускающая такие ситуации, не соответствует стандарту, поскольку результат выполнения не определен стандартом языка Кобол.

  1. Сочетание соответствующей стандарту программы и соот­ветствующей стандарту реализации

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

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

2. СПИСОК ЭЛЕМЕНТОВ ПО МОДУЛЯМ

  1. Общее описание

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

Столбец, озаглавленный «Уровень 1», определяет уровень 1 элементов модуля. Столбец, озаглавленный «Уровень 2», опреде­ляет уровень 2 элементов модуля.Символ «X» в столбце означает наличие указанного элемента в указанном уровне модуля.

Символ «—» в столбце означает отсутствие указанного элемен­та в указанном уровне модуля.

Символ «-|-» в столбце означает наличие указанного элемента в указанном уровне модуля; однако этот элемент является уста­ревшим элементом в стандарте Кобола, поэтому он будет удален в следующей редакции стандарта.

  1. Список элементов в модуле ядра

У

Элемент

ровень 1 Уровень 2

понятия. ЯЗЫКА

Набор литер

Литеры, используемые для слов

в

X

X

X

X

X

английской нотации 0—9, А—Z, - (дефис) в русской нотации А—Я, D, F, G, I, J, L, N, Q, R, S, U, V, W, Y, Z, 0-9, - (дефис)

Литеры, используемые для пунктуации " () . , ; пробел

Литеры, используемые для пунктуации : (двое­точие)

Литеры, используемые для редактирования В + - • , И(П) * $(°) OCR(KP) ОВ(ДБ) /

Литеры, используемые в арифметических операци­ях * / **

Литеры, используемые в отношениях = > —

Литеры, используемые при индексировании ф- — . Разрешена замена одной литерой . . . . Разрешена замена парами литер . . . .

Разделители

» ( ) . , ; пробел

: (двоеточие)

Строки-литер

Слова Кобола

Не более 30 литер

Слова, определенные пользователем имя-алфавита .

имя-класса

имя-условия

имя-данного

имя-индекса

номер-уровня

мнемоническое-имя

имя-параграфа

имя-программы

, имя-программного-модуля . . . . .

д имя-секции .......

символическая-литера . . .

Системные-имена имя-машины . . . . ' . .

имя-реализации . . . . . . .

имя-языка

Зарезервированные слова Обязательные слова

Ключевые слова

Слова специальные литеры

Знаки арифметических операций + — * / ** . Знаки арифметических операций при индекси­ровании

Литеры отношения = ><>=< =

• Необязательные слова

Слова специального назначения

Стандартные константы:

ZERO (НУЛЬ), ZEROS, ZEROES (НУЛИ), SPACE (ПРОБЕЛ), SPACES (ПРОБЕЛЫ), HIGH-VALUE (НАИБОЛЫПЕЕ-ЗНАЧЕ- НИЕ), HIGH-VALUES (НАИБОЛЫИИЕ- ЗНАЧЕНИЯ), LOW-VALUE (НАИМЕНЬ- ШЕЕ-ЗНАЧЕНИЕ), LOW-VALUES (НАИ- МЕНЬШИЕ-ЗНАЧЕНИЯ), QUOTE (КАВЫЧ­КА), QUOTES (КАВЫЧКИ) . . . .. .

Стандартные константы: символическая-литера, ALL литерал (ВСЕ литерал)-, ALL стандартная- константа (ВСЕ стандартная-константа), ALL символическая-литера (ВСЕ символическая-ли­тера)

Литералы

Числовые литералы: от 1 до 18 цифр . .

Нечисловые литералы: от 1 до 160 литер ...

PICTURE строка-литер (ШАБЛОН строка-ли­тер)

Статья-комментарий

Однозначность ссылки

Уточнение

Уточнение недопустимо, имена должны быть од­нозначны при ссылке

50 уточнителей . . . . .........

Индексирование

3 уровня индексов

7 уровней индексов

Индексирование литералом .... Индексирование именем-данного Индексирование именем индекса .

Относительное индексирование .... Модификация ссылки

Формат представления

Фраза имя-реализации X

вариант IS мнемоническое-имя .... X

вариант ON STATUS IS имя-условия (ВКЛЮ­

ЧЕНО имя-условия) ...... X

вариант OFF STATUS IS имя-условия (ВЫК­

ЛЮЧЕНО имя-условия) X

Фраза SYMBOLIC CHARACTER (СИМВОЛИЧЕ­СКАЯ ЛИТЕРА) -

РАЗДЕЛ ДАННЫХ

Секция рабочей памяти

Статья-описания записи X

Статья описания уровня 77 X

Статья описания данного

Фраза BLANK WHEN ZERO (ПРОБЕЛ КОГ­

ДА НУЛЬ) X

Фраза имя-данного X

Фраза FILLER (ЗАПОЛНИТЕЛЬ) ... X