Максимальное подмножество стандарта языка Кобол содержит все элементы наивысшего уровня всех обязательных модулей, а именно:
элементы уровня 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.5.1, и может включать все, любую комбинацию или ни одного из уровней необязательных модулей.
Соответствующая стандарту реализация данного подмножества стандарта языка Кобол должна полностью поддерживать все элементы языка этого подмножества (п. 1.5.2.5 настоящей части).
Кроме того, каждая реализация должна удовлетворять требованиям, изложенным ниже (пп. 1.5.2.1—1.5.2.4).
Замена элементов или дополнительные элементы языка
Реализация не должна для выполнения функций, идентичных функциям элементов стандарта языка Кобол, допускать замену или включение дополнительных элементов языка в исходной программе. Однако в спецификациях стандарта языка Кобол имеется ряд элементов языка, синтаксис или действие которых определяется реализацией (приложение 2, п. 2); но и при определении синтаксиса или правил для таких элементов не разрешается замена элементов или включение дополнительных элементов в исходную программу.
Г.5.2.2. Соглашения о стандартных элементах языка
Реализация должна поддерживать синтаксис и обеспечивать функции всех элементов стандарта языка Кобол, как это определено данным уровнем модуля, включаемым в реализацию, за исключением элементов языка, зависящих от специфических компонент оборудования, которые приведены в п. 1.5.2.5.1 настоящей части. Если реализация поддерживает синтаксис элементов стандарта языка Кобол для данного уровня модуля, отличного от того, поддержка которого объявлена, реализация должна обеспечить функции, определенные стандартом языка Кобол для данного синтаксиса, или идентифицировать эти элементы языка как нестандартные расширения (п. 1.5.2.5.2 настоящей части).
Устаревшие элементы языка
Устаревшие элементы языка — элементы в стандарте языка Кобол, которые будут изъяты при следующем пересмотре стандарта (приложение 2, п. 1). Устаревшие элементы языка не были ни усилены, ни модифицированы в процессе пересмотра. Взаимодействие между устаревшими и остальными элементами языка не определено, если не оговорено специально в стандарте. Элементы языка, которые предполагается изъять из стандарта, будут сначала идентифицированы как устаревшие элементы языка.
От реализации стандарта Кобола требуется поддержка устаревших элементов в подмножестве и уровнях необязательных модулей, поддержка которых объявлена. Документация, связанная с реализацией, должна идентифицировать все устаревшие элементы языка в данной реализации.
Реализация, соответствующая стандарту языка Кобол, должна предусмотреть средство, которое по желанию программиста может быть подключено к компилятору для определения, содержит ли программа устаревшие элементы языка.
Действия, обеспечиваемые вне исходной программы
Если любая функция, которая выполняет функции элемента стандарта Кобола, содержащегося в данном уровне модуля, который объявлен включенным в реализацию, обеспечивается вне исходной программы, реализация не должна требовать спецификации внешних функций вместо или в дополнение к элементу стандарта языка.
Реализация может требовать спецификации вне исходной программы интерфейса с операционной средой для поддержки функций, определенных в исходной программе.
Уточнения
К реализации спецификаций стандарта Кобола применяются приведенные ниже уточнения.
Элементы языка, зависящие от оборудованияРяд элементов языка рассчитан на определенный тип технических средств (приложение 2, п. 3). Для того, чтобы реализация удовлетворяла требованиям этого стандарта, разработчик должен указать технические средства, которые поддерживает реализация. Более того, когда объявлена поддержка специфических технических средств, должны быть реализованы все элементы языка, которые зависят от этих средств, если модуль, в котором они появляются, включен в реализацию. Элементы языка, имеющие отношение к специфическим компонентам оборудования, для которых не объявлена поддержка реализации, нет необходимости реализовать. Отсутствие таких элементов должно быть указано реализацией стандарта языка Кобол.
Расширение элементов языка
Реализация, включающая элементы языка в дополнение к подмножеству и уровням необязательных модулей, для которых объявлена поддержка, удовлетворяет требованиям стандарта языка Кобол. Это истинно, хотя и может означать расширение списка зарезервированных слов данной реализацией, и, таким образом, может помешать правильной компиляции некоторых программ, которые удовлетворяют требованиям стандарта языка Кобол.
Реализация должна идентифицировать каждое стандартное расширение (элементы языка, не указанные в поддерживаемом подмножестве или поддерживаемых уровнях необязательных модулей, но определенные в другом месте стандарта языка Кобол) или нестандартные расширения (элементы языка или действия, не определенные в стандарте языка Кобол) в соответствующей ей документации.
Реализация, соответствующая стандарту языка Кобол, должна предусмотреть средство, которое по желанию программиста может быть подключено к компилятору для определения, содержит ли данная программа нестандартные расширения, включенные в реализацию.
Зарезервированные слова
Реализация стандарта языка Кобол должна распознавать в качестве зарезервированных слов все зарезервированные слова Кобола, встречающиеся в спецификациях семи обязательных модулей и четырех необязательных модулей (ч. 4, п. 8).
Замена литер
Определение набора литер Кобола (ч. 3) представляет полный набор литер стандарта языка Кобол. Когда реализация не обеспечивает графическое представление для всего набора литер Кобола, реализацией может быть указана заменяющая графика для непредставимых литер.
Оператор ENTER (ВОЙТИ)
По усмотрению разработчика, реализация стандарта языка Кобол может включать или не включать оператор ENTER (ВОЙТИ).
Соответствие исходной программы стандарту
Соответствующая стандарту исходная программа —■ это программа, не нарушающая явно установленных условий и спецификаций стандарта языка Кобол. Чтобы исходная программа соответствовала стандарту языка Кобол, она не должна включать никаких элементов языка, не определенных в этом стандарте. Выполнение программы, исходный текст которой соответствует стандарту языка Кобол, предсказуемо только в пределах, определенных в этом стандарте. Результаты нарушения форматов или правил стандарта языка Кобол не определены, если противное не оговорено в стандарте.
Для того, чтобы исходная программа соответствовала определенному подмножеству стандарта языка Кобол, она должна включать в себя только элементы языка этого подмножества.
В стандарте языка Кобол имеется ряд ситуаций, в которых результат выполнения оператора не определен или непредсказуем (приложение 2, п. 4). Исходная Кобол-программа, допускающая такие ситуации, не соответствует стандарту, поскольку результат выполнения не определен стандартом языка Кобол.
Сочетание соответствующей стандарту программы и соответствующей стандарту реализации
Компиляция соответствующей стандарту исходной программы соответствующей стандарту реализацией и последующее выполнение результирующей объектной программы определены только в пределах, указанных стандартом. Однако это еще не значит, что программа будет скомпилирована или выполнена успешно, так как это зависит от других факторов, таких как использование элементов языка, определяемых реализацией, логическая правильность программы и данных, которыми оперирует программа. .
В общем случае, стандарт языка Кобол не указывает верхние количественные ограничения числа операторов в программе.и числа операндов в некоторых операторах. Такие ограничения могут изменяться от реализации к реализации.
2. СПИСОК ЭЛЕМЕНТОВ ПО МОДУЛЯМ
Общее описание
Ниже содержится список всех элементов стандарта Кобола, составленный в соответствии с функциональными обрабатывающими модулями.
Столбец, озаглавленный «Уровень 1», определяет уровень 1 элементов модуля. Столбец, озаглавленный «Уровень 2», определяет уровень 2 элементов модуля.Символ «X» в столбце означает наличие указанного элемента в указанном уровне модуля.
Символ «—» в столбце означает отсутствие указанного элемента в указанном уровне модуля.
Символ «-|-» в столбце означает наличие указанного элемента в указанном уровне модуля; однако этот элемент является устаревшим элементом в стандарте Кобола, поэтому он будет удален в следующей редакции стандарта.
Список элементов в модуле ядра
У
Элемент
ровень 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