С и н т а к с и ч е с к и е правила
Имя-программы должно формироваться по правилам образования слов, определенных пользователем.
Имя-программы должно быть идентично имени программы, названному в предшествующем параграфе PROGRAM-ID (ПРОГРАММА) (п. 3.3 настоящей части),
О б щ и е правила
Заголовок конца программы идентифицирует конец указанной исходной Кобол-программы.
Следующим оператором после заголовка конца программы может быть только заголовок раздела идентификации программы, компилируемой отдельно от программы, ограниченной заголовком конца программы.
РАЗДЕЛ ИДЕНТИФИКАЦИИ В ЯДРЕ
Общее описание
Раздел идентификации идентифицирует программу. Раздел идентификации обязателен в каждой исходной Кобол-программе. К тому же пользователь может включать дату написания программы и другую требуемую информацию в параграфы, общий формат которых показан ниже.
Организация
Заголовки параграфов идентифицируют тип информации, содержащейся в параграфе. Имя программы должно быть дано в первом параграфе, которым является параграф PROGRAM-ID (ПРОГРАММА). Другие параграфы необязательны и могут быть, включены в раздел по желанию пользователя в порядке, указанном в общем формате.
Параграф AUTHOR (АВТОР), параграф INSTALLATION (ПРЕДПРИЯТИЕ), параграф DATE-WRITTEN (ДАТА-НАПИСА- НИЯ), параграф DATE-COMPILED (ДАТА-ТРАНСЛЯЦИИ) и параграф SECURITY (ПОЛНОМОЧИЯ) рассматриваются в настоящем стандарте как устаревшие и будут удалены в следующей редакции стандарта.
Структура
Далее следует общий формат параграфов раздела идентификации, определяющий порядок их следования в исходной программе.
В пп. 3.3 и 3.4 настоящей части определяются параграф PROGRAM-ID (ПРОГРАММА) и параграф DATE-COMPILED (ДАТА-ТРАНСЛЯЦИИ). Определения остальных параграфов не приводятся, так как они аналогичны.
Общий формат
IDENTIFICATION DIVISION.
PROGRAM-ID. имя-программы.
[AUTHOR, [статья-комментарий] .. . ]
[INSTALLATION, [статья-комментарий] . . . ] [DATE-WRITTEN, [статья-комментарий] ... ] [DATE-COMPILED, [статья-комментарий] ... ]
[SECURITY, [статья-комментарий] ... ]
РАЗДЕЛ ИДЕНТИФИКАЦИИ.
ПРОГРАММА, имя-программы.
[АВТОР, [статья-комментарий] ... ]
[ПРЕДПРИЯТИЕ, [статья-комментарий] . . . ]
[DАТА-НАПИСАНИЯ, [статья-комментарий] ... ]
[ДАТА-ТРАНСЛЯЦИИ. [статья-комментарий] . . . ]
[ПОЛНОМОЧИЯ, [статья-комментарий] . .. ]
Синтаксическое правило
Статья-комментарий может быть любой комбинацией литер из набора литер машины. Перенос слов статьи-комментария посредством использования дефиса в поле индикатора не допускается, хотя статья-комментарий может располагаться на одной или нескольких строках.
Параграф PROGRAM-ID (ПРОГРАММА)
Назначение
Параграф PROGRAM-ID (ПРОГРАММА) указывает имя, с помощью которого идентифицируется программа.
О б щ и й формат
PROGRAM-ID. имя-программы.
ПРОГРАММА, имя-программы.
С и н т а к с и ч е с ко е правило
Имя-программы должно формироваться по правилам образования слов, определенных пользователем.
О б щ е е правило
Имя-программы идентифицирует исходную программу, объектную программу и все относящиеся к ней выдачи.
Параграф DATE-COMPILED (ДАТА-ТРАНСЛЯЦИИ)
Назначение
Параграф DATE-COMPILED (ДАТА-ТРАНСЛЯЦИИ) обеспечивает включение даты компиляции в выдачи раздела идентификации исходной программы. Параграф DATE-COMPILED (ДАТА-ТРАНСЛЯЦИИ) рассматривается в настоящем стандарте как устаревший элемент и будет удален в следующей редакции стандарта.
О б щ и й формат
DATE-COMPILED, [статья-комментарий] .. .
ДАТА-ТРАНСЛЯЦИИ. [статья-комментарий] ...
Синтаксическое правило
Статья-комментарий может представлять любую комбинацию литер из допустимого набора литер. Перенос слов статьи- комментария с помощью дефиса в поле индикатора не разрешается, однако статья-комментарий может занимать более одной строки.
Общее правило
Имя параграфа DATE-COMPILED (ДАТА-ТРАНСЛЯЦИИ) вызывает во время компиляции программы включение текущей даты в выдаваемый текст. Если параграф DATE-COMPILED (ДАТА-ТРАНСЛЯЦИИ) указан, он заменяется во время компиляции параграфом следующей формы:
DATE-COMPILED, текущая-дата.
ДАТА-ТРАНСЛЯЦИИ. текущая-дата.
РАЗДЕЛ ОБОРУДОВАНИЯ В ЯДРЕ
Общее описание
Раздел оборудования определяет стандартный метод описания таких аспектов обработки данных, которые зависят от физических характеристик конкретной машины. Раздел оборудования не обязателен в исходной Кобол-программе.
Секция конфигурации
Секция конфигурации располагается в разделе оборудования исходной программы. Секция конфигурации связана с характеристиками исходной машины и рабочей машины. В этой секции также обеспечиваются средства спецификации валютного знака; выбора символа для десятичной точки; |спецификации специальных сим- | |волических / литер; | установления соответствия между мнемоническими именами, задаваемыми пользователем, и именами реализации; установления соответствия имени алфавита набору литер и (или) основной последовательности; установление соответствия имени класса набору литер. Секция конфигурации не обязательна в разделе оборудования исходной Кобол-программы.
Общий формат секции конфигурации приводится ниже.
CONFIGURATION SECTION.
[SOURCE-COMPUTER, [статья-исходной-машины] ] [OBJECT-COMPUTER, [статья-объектной-машины] I
[SPECIAL-NAMES, [статья-специальных-имен] ]
СЕКЦИЯ КОНФИГУРАЦИИ.
[ИСХОДНАЯ-МАШИНА, [статья-исходной-машины] ]
[РАБОЧАЯ-МАШИНА, [статья-объектной-машины] ]
[СПЕЦИАЛЬНЫЕ-ИМЕНА. [статья-специальных-имен] ]
Секция конфигурации не должна содержаться в программе, которая косвенно или непосредственно содержится в другой программе.
Статьи, явно или неявно присутствующие в секции конфигурации программы, включающей другие программы, относятся к каждой содержащейся программе.
Параграф SOURCE-COMPUTER (ИСХОДНАЯ-МАШИНА)
Назначение
Параграф SOURCE-COMPUTER (ИСХОДНАЯ-МАШИНА) описывает вычислительную машину, на которой должна компилироваться программа.
Общий формат
SOURCE-COMPUTER, [имя-машины [WITH DEBUGGING MODE].]
ИСХОДНАЯ-МАШИНА. [имя-машины [В РЕЖИМЕ ОТЛАДКИ].]
С и н т а к с и ч е с к о е правило
Имя-машины является системным именем.
О б щ и е правила
Все фразы, явно или неявно указанные в параграфе SOURCE-COMPUTER (ИСХОДНАЯ-МАШИНА), применимы как в программе, в которой они указаны, так и в любой содержащейся в ней программе.
Если параграф SOURCE-COMPUTER (ИСХОДНАЯ-МАШИНА) не определен и программа не содержится в другой программе, содержащей такой параграф, то машина, на которой будет компилироваться исходная программа, является исходной машиной.
Если параграф SOURCE-COMPUTER (ИСХОДНАЯ-МАШИНА) определен, но фраза, указывающая машину, не определена, то машина, на которой будет компилироваться исходная программа, будет исходной машиной.
Если в программе указана фраза WITH DEBUGGING MODE (В РЕЖИМЕ ОТЛАДКИ), то все отладочные строки компилируются так, как это определено в настоящем документе для ядра (п. 7.1 настоящей части).
Если в программе не указана фраза WITH DEBUGGING MODE (В РЕЖИМЕ ОТЛАДКИ) и программа не включается в другую программу, содержащую такую фразу, то отладочные строки компилируются как комментарии.
Параграф OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА)
Назначение
Параграф OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА) обеспечивает средства описания машины, на которой программа будет выполняться. Фраза MEMORY SIZE (РАЗМЕР ПАМЯТИ) рассматривается в настоящем стандарте как устаревший элемент стандарта и будет удалена в последующей редакции стандарта.
Общий формат
OBJECT-COMPUTER, [имя-машины
W
[MEMORY SIZE целое-1
ORDS CHARACTERS ] MODULES[PROGRAM COLLATING SEQUENCE IS имя-алфавита-Цф РАБОЧАЯ-МАШИНА, [имя-машины
СЛОВ
Л
[РАЗМЕР ПАМЯТИ целое-1
ИТЕР ]МОДУЛЕЙ
[ПРОГРАММНЫЙ АЛФАВИТ имя-алфавита-1 ]. ]
Синтаксические правила
Имя-машины является системным именем.
Общие правила
Имя-машины может служить для определения конфигурации оборудования; в этом случае имя-машины и ее подразумеваемая конфигурация задаются каждой реализацией. Определение конфигурации содержит специальную информацию, касающуюся размера памяти.
Если подмножество, задаваемое пользователем, меньше минимальной конфигурации, требуемой для выполнения объектной программы, необходимые меры определяются реализацией.
Все фразы параграфа OBJECT-COMPUTER (РАБОЧАЯ- МАШИНА) применяются к программе, в которой они явно или неявно определены, и к любой содержащейся в ней программе.
При отсутствии параграфа OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА) в программе и во всех программах, включающих данную программу, рабочая машина определяется реализацией.
Если параграф OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА) указан, но фраза, определяющая рабочую машину, не указана, рабочая машина определяется реализацией.
При наличии фразы PROGRAM COLLATING SEQUENCE (ПРОГРАММНЫЙ АЛФАВИТ) в программе используется основная последовательность, заданная именем-алфавита, указанным в этой фразе.
При отсутствии фразы PROGRAM COLLATING SEQUENCE (ПРОГРАААМНЫЙ АЛФАВИТ) используется внутренняя основная последовательность.
Если задана фраза PROGRAM COLLATING SEQUENCE (ПРОГРАММНЫЙ АЛФАВИТ), то для определения значения истинности нечисловых сравнений, явно указанных в условиях отношения (п. 6.3.1.1 настоящей части), явно указанных в условиях имени-условия (п. 6.3.1.3 настоящей части) или неявно указанных наличием фразы CONTROL (УПРАВЛЕНИЕ) в статье описания отчета (ч. 13, п. 3.7), используется основная последовательность, определяемая именем алфавита.
Программная основная последовательность, определенная в параграфе OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА), применяется к любым нечисловым ключам сортировки или слияния, если в соответствующих операторах SORT (СОРТИРОВАТЬ) или MERGE (СЛИТЬ) не задана фраза COLLATING SEQUENCE (АЛФАВИТ) (ч. 11, пп. 4.1, 4.4).
Параграф SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА)
Назначение
Параграф SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) обеспечивает средства спецификации валютного знака; выбора символа для десятичной точки; | спецификации специальных сим- ] I волических литер; | установления соответствия между мнемоническими именами, задаваемыми пользователем, и именами реализации; установления соответствия имени алфавита набору литер или основной последовательности; установления соответствия имени класса набору литер.
Общий формат
SPECIAL-NAMES, [[имя-реализации-1
IS мнемоническое-имя-1 [ON STATUS IS имя-условия-1
[OFF STATUS IS имя-условия-2] ]
IS мнемоническое-имя-2 [OFF STATUS IS имя-условия-2 [ON STATUS IS имя-условия-1]] i
ON STATUS IS имя-условия-1 [OFF STATUS IS имя-условия-2]
OFF STATUS IS имя-условия-2 [ON STATUS IS имя-условия-1][ALPHABET имя-алфавита-1 IS |
NATIVE имя-реализации-2 |
|||
|
■ литерал-1 |
’ I THROUGH ] 1 THRU І литерал-2 1 ALSO литерал-3 . . . |
|
STANDARD-1
STANDARD-2
STANDARD-R
[SYMBOLIC CHARACTERS {{{символическая-литера-1} . . .
254 ГОСТ 22558-89
I ARE
{целое-1} [IN имя-алфавита-2]}] . ..
CLASS имя-класса-1 IS { литерал-4
[CURRENCY SIGN IS литерал-6]
[DECIMAL-POINT IS COMMA], ]
THROUGH THRU
литерал-5
СПЕЦИАЛЬНЫЕ-ИМЕНА. [ [имя-реализации-1
ЕСТЬ мнемоническое-имя-1
ВКЛЮЧЕНО]
R17n У имя-условия-
1
ВЫКЛЮЧЕНО]
ВЫКЛ 1 ИМЯ‘УСЛОВИЯ'2
(
ЕСТЬ мнемоническое-имя-2
ВЫКЛЮЧЕНО]] ВЫКЛ I ИМЯ‘УСЛОВИЯ'
2
' (ВКЛЮЧЕНО
ВКЛ
имя-условия-1
ВКЛЮЧЕНО ]
I имя-условия-1
ВЫКЛЮЧЕНО ]
ВЫКЛ I ИМЯ‘УСЛОВИЯ"
2
ВЫКЛЮЧЕНО
ВЫКЛ
И ВКЛЮЧЕНО]
I ВКЛ ” }ИМЯ'УСЛОВИЯ’
1
ГОСТ 22558-89 С. 255
256
[АЛФАВИТ имя-алфавита-1
СТАНДАРТ-А СТАНДАРТ-М СТАНДАРТ-Р ВНУТРЕННИЙ
имя-реализации-2
ПО литерал-2 |
{ТАКЖЕ литерал-3}... (
[СИМВОЛИЧЕСКАЯ ЛИТЕРА {{ {символическая-литера-1}.. . ЕСТЬ {целое-1} ...}... [ИЗ имя-алфавита-2]}] ...
литерал-1
256 ГОСТ 22558-89
[КЛАСС имя-класса-1 ЕСТЬ {литерал-4 [ПО литерал-5]}...]...
[ВАЛЮТНЫЙ ЗНАК литерал-6]
[ДЕСЯТИЧНАЯ ТОЧКА ЗАПЯТАЯ]. ]
Синтаксические правила
Если имя-реализации-1 относится к внешнему переключателю, то соответствующее мнемоническое имя может быть указано только в операторе SET (УСТАНОВИТЬ).
Если имя-реализации-1 не относится к внешнему переключателю, то соответствующее мнемоническое имя может быть указано только в операторах ACCEPT (ПРИНЯТЬ), DISPLAY (ВЫДАТЬ), SEND (ПОСЛАТЬ), WRITE (ПИСАТЬ).
Во фразе имя-алфавита одно и то же значение литерала может указываться только один раз.
Если во фразе имя-алфавита указаны литералы, то: