УСТАНОВИТЬ {имя-индекса-3}..
идентификатор-3
целое-2
У
(ПРИБАВЛЯЯ ' I ВЫЧИТАЯ
СТАНОВИТЬ {{мнемоническое-имя-1} .. . НА1 ВКЛЮЧЕНО 1
( ВЫКЛЮЧЕНО / } • • •
УСТАНОВИТЬ {имя-условия-1}... НА ИСТИНА 2.11.37
СОРТИРОВАТЬ имя-файла-1
[ [ ВОЗРАСТАНИЮ 1 л о 1
| по УБЫВАНИЮ I КЛЮЧА {имя-данного-1} ...J .
[С ДУБЛИРОВАНИЕМ]
[АЛФАВИТ имя-алфавита-1]
ПРОЦЕДУРА ВВОДА имя-процедуры-1 [ПО имя-процедуры-2]
ИСПОЛЬЗУЯ {имя-файла-2}...
ПРОЦЕДУРА ВЫВОДА имя-процедуры-3
[ПО имя-процедуры-4]
. ПОЛУЧАЯ {имя-файла-3}...
2.11.38
П
КЛЮЧ
ОДВЕСТИ ЗАПИСЬ имя-файла-1[ПРИ ОШИБКЕ КЛЮЧА повелительный-оператор-1] [БЕЗ ОШИБКИ КЛЮЧА повелительный-оператор-2] [КОНЕЦ-ПОДВЕСТИ]
2.11.39
ОСТАНОВИТЬ J РАБ0ТУ [ литерал-1
2.11.40
и
СОБРАТЬ {
дентификатор! 1 ОГРАНИЧИВАЯСЬлитерал-1 J
идентификатор-2 литерал-2 РАЗМЕРОМ
В идентификатор-3 [УКАЗАТЕЛЬ идентификатор-4] [ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1 ] [БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2] [КОНЕЦ-СОБРАТЬ]
2.11.41 птнатк ( литерал-1 ]
и1НЯ1Ь| идентификатор-1 / ■ • ■ ОТ (идентификатор-2 [ОКРУГЛЯЯ]}...
[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1] [БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2] [КОНЕЦ-ОТНЯТЬ]
л
ОТНЯТЬ
итерал-1 1 от ! литерал-2 1идентификатор-1 / ( идентификатор-2 )
ПОЛУЧАЯ {идентификатор-3 [ОКРУГЛЯЯ]}. ..
[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1] [БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2] [КОНЕЦ-ОТНЯТЬ]
идентификатор-1
СООТВЕТСТВЕННО
СООТВ
ОТНЯТЬ
ОТ идентификатор-2 [ОКРУГЛЯЯ]
[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1]
[БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2] [КОНЕЦ-ОТНЯТЬ]
2.11.42
ПОДАВИТЬ ПЕЧАТЬ
2.11.43
ЗАКОНЧИТЬ {имя-отчета-1}...
2.11.44
РАЗОБРАТЬ идентификатор-1
ОГРАНИЧИВАЯСЬ [ВСЕМИ] | идентификатор-21
[ литерал-1 J
ИЛИ [ВСЕМИ! [ нлеи-гифика-гор-ЗП
[ литерал-2 J J ' ’ ’
В {идентификатор-4 [ОГРАНИЧИТЕЛЬ В идентификатор-5]
[СЧЕТ В идентификатор-6]} ...
[УКАЗАТЕЛЬ идентификатор-7]
[СЧИТАЯ В идентификатор-8]
[ПРИ ПЕРЕПОЛНЕНИИ повелительный-оператор-1] [БЕЗ ПЕРЕПОЛНЕНИЯ повелительный-оператор-2]
[ КОНЕЦ-РАЗОБРАТЬ] 2.11.45
ИСПОЛЬЗОВАТЬ [ГЛОБАЛЬНО] ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБКИ .
|
{имя-файла-1}... ВХОДНЫХ |
для |
ВЫХОДНЫХ ВХОДНЫХ-ВЫХОДНЫХ ДОПОЛНЯЕМЫХ |
ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ
ОШИБКИ
{
для
имя-файла-1}. .. ВЫХОДНЫХ ДОПОЛНЯЕМЫХИСПОЛЬЗОВАТЬ [ГЛОБАЛЬНО] ДО ВЫДАЧИ идентификатор-1
ИСПОЛЬЗОВАТЬ ДЛЯ ОТЛАДКИ ПРИ
имя-коммуникации-1
[ВСЕХ ССЫЛКАХ НА] идентификатор-1 имя-файла-1 ...
имя-процедуры-1
ВСЕХ ПРОЦЕДУРАХ
2.11.46
ПИСАТЬ имя-записи-1 [ИЗ ПОЛЯ идентификатор-1]
() ПРОДВИЖЕНИЯ
HOCi/ln
' і идентификатор-2 1 строк
I целое-1 ]
I мнемоническое-имя-1 ]
I СТРАНИЦЫ J
[В КОНЦЕ СТРАНИЦЫ повелительный-оператор-1]
[НЕ В КОНЦЕ СТРАНИЦЫ повелительный-оператор-2]
[КОНЕЦ-ПИСАТЬ]
ПИСАТЬ имя-записи-1 [ИЗ ПОЛЯ идентификатор-1]
[ПРИ ОШИБКЕ КЛЮЧА повелительный-оператор-1]
[БЕЗ ОШИБКИ КЛЮЧА повелительный-оператор-2]
[КОНЕЦ-ПИСАТЬ]
Общий формат операторов КОПИРОВАТЬ и ЗАМЕНИТЬ
КОПИРОВАТЬ имя-текста-1 [ИЗ имя-библиотеки-1] = = псевдотекст-1 = =
ЗАМЕНЯЯ ИДЄНТИфиКаТОр'1
литерал-1
слово-1
=
НА
= псевдотекст-2 = = идентификатор-2 литерал-2слово-2
2.12.2
ЗАМЕНИТЬ {= = псевдотекст-1 = = НА = = псевдотекст-2 = = } ...
ОТКЛЮЧИТЬ ЗАМЕНИТЬ
Общий формат условий
Условие отношения
J[HE] БОЛЬШЕ
J [НЕ] МЕНЬШЕ
[НЕ] РАВНО
да] >
ИНЕ] < да] = [БОЛЬШЕ ИЛИ РАВНО
=
^МЕНЬШЕ ИЛИ РАВНО
идентификатор-1
литерал-1
арифметическое- выражение-1
имя-иидекса-1
идентификатор-1 [НЕ]
ЧИСЛОВОЕ БУКВЕННОЕ СТРОЧНЫЕ ПРОПИСНЫЕ имя-класса-1
н и-у с л о в и я
идентификатор-2
литерал-2
арифметическое- выражение-2
имя-индекса-2
Условие класса
У с л о в и е име имя-условия-1
У с л о в и е состояния переключателя имя-условия-
1Условие знака
П
арифметическое-выражение-1 [НЕ]
ОЛОЖИТЕЛЬНО ОТРИЦАТЕЛЬНО НУЛЬО т р и ц а н и е условия
НЕ условие-1
К о м б и н и р о в а н н о е условие
НИ, ] 1
условие-1 j і ИЛИ I Условие-2 [ • • •
Сокращенное комбинированное условие отношения
ИИ ] условие-отношения і или I ГНЕ] [знак-операции-отношения]
объект
Общий формат уточнения
Формат 1
{ИЗ имя-данного-2}...
Г [ имя-файла-1
( имя-данного-1 ] [имя-коммуникации-1
[ имя-условия-1 j
ИЗ (имя-файла-1 1
[имя-коммуникации-1 1
Формат 2
имя-параграфа-1 ИЗ имя-секции-1
Формат 3
имя-текста-1 ИЗ имя-библиотеки-1
Формат 4
СЧЕТЧИК-ВЕРСТКИ ИЗ имя-файла-2
Формат 5
С
ИЗ имя-отчета-1
ЧЕТЧИК-СТРАНИЦСЧЕТЧИК-СТРО
К
Формат 6
( ИЗ имя-данного-4 [ИЗ имя-отсчета-2] имя-данного-3 j щ имя-отчета-2
Прочие форматы
Индексирование
ц
имя-данного-1
имя-условия-1
елое-1имя-данного-2 [{±} целое-2] имя-индекса-1 ]{±} целое-3]
М о д и ф и к а ц и я ссылки имя-данного-1 (позиция-самой-левой-литеры: [длина]).
Идентификатор
имя-данного-1 [ИЗ имя-данного-2] ...
и
[ИЗ
мя-коммуникации-1 ' имя-файла-1имя-отчета-1
[ ({индекс}. .. ) ] [ (позиция-самой-левой-литеры: [длина]).
Общий формат вложенных исходных программ
РАЗДЕЛ ИДЕНТИФИКАЦИИ.
ПРОГРАММА, имя-программы-1 [НАЧАЛЬНАЯ].
[РАЗДЕЛ ОБОРУДОВАНИЯ-
содержимое-раздела-оборудования]
[РАЗДЕЛ ДАННЫХ, содержимое-раздела-данных]
[РАЗДЕЛ ПРОЦЕДУР, содержимое-раздела-процедур] [[вложенная-исходная-программа] ...
КОНЕЦ ПРОГРАММЫ имя-программы-Е]
Общий формат вложенной-исходной-программы
Р
[ ОБЩАЯ
( НАЧАЛЬНАЯ
АЗДЕЛ ИДЕНТИФИКАЦИИ.ПРОГРАММА, имя-программы-2
[РАЗДЕЛ ОБОРУДОВАНИЯ- содержимое-раздела-оборудования]
[РАЗДЕЛ ДАННЫХ, содержимое-раздела-данных]
[РАЗДЕЛ ПРОЦЕДУР, содержимое-раздела-процедур] [вложенная-исходная-программа] ...
КОНЕЦ ПРОГРАММЫ имя-программы-2.
Общий формат последовательности исходных программ
{РАЗДЕЛ ИДЕНТИФИКАЦИИ.
ПРОГРАММА, имя-программы-3 [НАЧАЛЬНАЯ].
[РАЗДЕЛ ОБОРУДОВАНИЯ.
содержимое-р аздел а-оборудов ания]
[РАЗДЕЛ ДАННЫХ, содержимое-раздела-данных]
[РАЗДЕЛ ПРОЦЕДУР, содержимое-раздела-процедур]
[вложенная-исходная-программа] ...
КОНЕЦ ПРОГРАММЫ имя-программы-3.)...
РАЗДЕЛ ИДЕНТИФИКАЦИИ.
ПРОГРАММА, имя-программы-4 [НАЧАЛЬНАЯ].
[РАЗДЕЛ ОБОРУДОВАНИЯ.
содержимое-раздела-оборудования]
[РАЗДЕЛ ДАННЫХ, содержимое-раздела-данных]
[РАЗДЕЛ ПРОЦЕДУР, содержимое-раздела-процедур]
[ [вложенная-исходная-программа] ...
КОНЕЦ ПРОГРАММЫ имя-программы-4.]
Часть 6. ЯДРО
ВВЕДЕНИЕ В МОДУЛЬ ЯДРА
Назначение
Ядро включает средства для внутренней обработки данных в рамках структуры четырех разделов программы на Коболе. Ядро также включает средства определения таблиц последовательных элементов данных и доступа к элементу по его относительной позиции в таблице. Ядро включает возможности отладки, состоящие из переключателя, действующего во время компиляции, и отладочных строк.
Характеристика уровней
Уровень 1 ядра предоставляет ограниченные возможности параграфа SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) и статьи описания данных. В разделе процедур уровень 1 ядра предоставляет ограниченные возможности операторов ACCEPT (ПРИНЯТЬ), ADD (СЛОЖИТЬ), ALTER (ИЗМЕНИТЬ), DISPLAY (ВЫДАТЬ), DIVIDE (РАЗДЕЛИТЬ), IF (ЕСЛИ), MOVE (ПОМЕСТИТЬ), MULTIPLY (УМНОЖИТЬ), PERFORM (ВЫПОЛНИТЬ) и SUBTRACT (ОТНЯТЬ) и полные возможности операторов CONTINUE (ПРОДОЛЖИТЬ), ENTER (ВОИТИ), EXIT (ВЫЙТИ), GO ТО (ПЕРЕЙТИ) и STOP (ОСТАНОВИТЬ). Уровень 1 ядра не обеспечивает всех возможностей Кобола для уточнений, правил образования имен данных и стандартных констант. Уровень 1 ядра предоставляет возможности доступа к элементам трехмерных таблиц фиксированной длины. Уровень 1 ядра предоставляет возможности отладки, состоящие из переключателя, действующего во время компиляции, и отладочных строк.
Уровень 2 ядра предоставляет полные возможности параграфа SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) и статьи описания данных. В разделе процедур уровень 2 предоставляет ! полные возможности операторов ACCEPT (ПРИНЯТЬ), ADD (СЛОЖИТЬ), ALTER (ИЗМЕНИТЬ), COMPUTE (ВЫЧИСЛИТЬ), DISPLAY (ВЫДАТЬ), DIVIDE (РАЗДЕЛИТЬ), EVALUATE (ОЦЕНИТЬ), IF (ЕСЛИ), INITIALIZE (ИНИЦИИРОВАТЬ), INSPECT (ПРОСМОТРЕТЬ), MOVE (ПОМЕСТИТЬ), MULTIPLY (УМНОЖИТЬ), PERFORM (ВЫПОЛНИТЬ), SEARCH (ИСКАТЬ), SET (УСТАНОВИТЬ), STRING (СОБРАТЬ), SUBTRACT (ОТНЯТЬ), UNSTRING (РАЗОБРАТЬ). Уровень 2 ядра предоставляет полные возможности уточнений, правил образования имен данных и стандартных констант. Уровень 2 ядра предоставляет возможности доступа к элементам таблиц до семи измерений.
Ограничения по уровням, касающиеся общих характеристик -языка
Набор литер
Литера Кобола двоеточие (:) не включена в уровень 1. J Литера Кобола двоеточие (:) допустима на уровне 2, |
П р е д с т а в л е н и е имен
Уточнение не допускается на уровне 1.
На уровне 1 все определяемые пользователем слова, к которым -имеется обращение, за исключением номеров уровней и номеров сегментов, должны быть уникальны. На уровне 2 допускается 50 уточнителей. На этом уровне определяемые пользователем слова зиогут быть не уникальны.
С т а н д а р т н ы е константы
На уровне 1 могут быть использованы следующие стандартные константы: ZERO (НУЛЬ), ZEROS (НУЛИ), ZEROES (НУЛИ), SPACE (ПРОБЕЛ), SPACES (ПРОБЕЛЫ), HIGH-VALUE (НАИБОЛЬШЕЕ-ЗНАЧЕНИЕ), HIGH-VALUES (НАИБОЛЬ- ШИЕ-ЗНАЧЕНИЯ), LOW-VALUE (НАИМЕНЫПЕЕ-ЗНАЧЕ- НИЕ), LOW-VALUES (НАИМЕНЬШИЕ-ЗНАЧЕНИЯ), QUOTE (КАВЫЧКА) и QUOTES (КАВЫЧКИ). |На уровне 2 могут быть' і использованы следующие стандартные константы: ZERO J (НУЛЬ), ZEROS (НУЛИ), ZEROES (НУЛИ), SPACE (ПРОБЕЛ), SPACES (ПРОБЕЛЫ), HIGH-VALUE (НАИБОЛЬШЕЕ- ЗНАЧЕНИЕ), HIGH-VALUES (НАИБОЛЬШИЕ-ЗНАЧЕНИЯ), LOW-VALUE (НАИМЕНЫИЕЕ-ЗНАЧЕНИЕ), LOW-VALUES (НАИМЕНЬШИЕ-ЗНАЧЕНИЯ), символическая литера, ALL (ВСЕ) литерал, ALL (ВСЕ) стандартная константа и ALL (ВСЕ) символическая литера, QUOTE (КАВЫЧКА), QUOTES (КАВЫЧКИ),
Индексы
На уровне 1 допускаются один, два или три индекса. | {-[а уровне 2 допускаются от одного до семи индексов.
М о д и ф и к а ц и я ссылки
Модификация ссылки допускается только на уровне 2, j
Формат представления
На уровне 1 слово, числовой литерал или строка-литер шаблона не могут разбиваться для переноса их части на следующую» строку.) На уровне 2 слово, числовой литерал или строка-литер шаблона могут быть разбиты для переноса на следующую строку.
ИСХОДНАЯ ПРОГРАММА НА КОБОЛЕ
Общее описание
Исходная программа на Коболе представляет собой набор синтаксически правильных операторов Кобола.
Организация
За исключением операторов COPY (КОПИРОВАТЬ), REPLACE (ЗАМЕНИТЬ) и заголовка конца программы, операторы, статьи, параграфы и секции исходной Кобол-программы делятся на-. 4 раздела, расположенных в следующем порядке:
раздел идентификации;
раздел оборудования;
раздел данных;
раздел процедур.Конец исходной Кобол-программы обозначается | дибо заго- I ловком конца программы, если он специфицирован, либо | отсутствием строк исходной программы.
Структура
Далее дается общий формат и порядок следования статей и операторов, составляющих исходную Кобол-программу.
Общий формат
раздел-идентификации
[раздел-оборудования]
[раздел-данных]
[раздел-процедур]
I [заголовок-конца-программы] |
С и н т а к с и ч е с к и е правила
Общие термины раздел-идентификации, раздел-оборудования, раздел-данных, раздел-процедур и заголовок-конца-программы означают соответственно раздел идентификации Кобола, раздел оборудования Кобола, раздел данных Кобола, раздел процедур Кобола I и заголовок конца программы Кобола. |
О б щ и е правила
Начало раздела в программе идентифицируется соответственно заголовком раздела. Конец раздела идентифицируется:
а) заголовком следующего раздела программы;
<б) заголовком конца программы;
в) такой физической позицией, после которой нет больше строк исходной программы.
' (2) В последовательности программ все отдельно компили-
’ руемые программы должны быть ограничены заголовком конца программы за исключением последней программы в последова- [ тельности.
Заголовок конца программы
Назначение
Заголовок конца программы идентифицирует конец имено- : ванной исходной Кобол-программы.
О б щ и й формат
END PROGRAM имя-программы.
КОНЕЦ ПРОГРАММЫ имя-программы.