END-ADD (КОНЕЦ-СЛОЖИТЬ)
END-CALL (КОНЕЦ-ВЫЗВАТЬ)
END-COMPUTE (КОНЕЦ-ВЫЧИСЛИТЬ
)IEND-DELETE (КОНЕЦ-УДАЛИТЬ)
END-DIVIDE (КОНЕЦ-РАЗДЕЛИТЬ)
END-EVALUATE (КОНЕЦ-ОЦЕНИТЬ)
END-IF (КОНЕЦ-ЕСЛИ)
END-MULTIPLY (КОНЕЦ-УМНОЖИТЬ)
END-PERFORM (КОНЕЦ-ВЫПОЛНИТЬ)
END-READ (КОНЕЦ-ЧИТАТЬ)
END-RECEIVE (КОНЕЦ-ПОЛУЧИТЬ)
END-RETURN (КОНЕЦ-ВЕРНУТЬ)
END-REWRITE (КОНЕЦ-ОБНОВИТЬ)
END-SEARCH (КОНЕЦ-ИСКАТЬ)
END-START (КОНЕЦ-ПОДВЕСТИ)
' END-STRING (КОНЕЦ-СОБРАТЬ)
END-SUBTRACT (КОНЕЦ-ОТНЯТЬ)
END-UNSTRING (КОНЕЦ-РАЗОБРАТЬ)
END-WRITE (КОНЕЦ-ПИСАТЬ)
Неявными ограничителями области действия являются:
разделитель точка в конце любого предложения, которая заканчивает область действия всех предыдущих операторов, еще же завершенных;
в любом операторе, содержащем другой оператор, следующая фраза внешнего оператора, находящаяся после внутреннего оператора, завершает область действия любого незавершенного внутреннего оператора. Примерами таких фраз являются ELSE (ИНАЧЕ), WHEN (КОГДА), NOT AT END (НЕ В КОНЦЕ) ж т. п.
4.5. Внешний переключатель.
Внешний переключатель — это устройство оборудования или программное средство, определяемое и именуемое реализацией, и используемое для указания одного из двух альтернативных состояний. Альтернативные состояния относятся к состоянию «включено» или «выключено» соответствующего внешнего переключателя.
Состояние внешнего переключателя может быть опрошено проверкой имен-условий, связанных с этим переключателем. Соответствие имени-условия внешнему переключателю и соответствие указанного пользователем мнемонического-имени имени-реализации, именующему внешний переключатель, устанавливается в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) раздела оборудования (ч. 6, п. 4.5.1).
Реализация определяет область действия (программа, единица исполнения и т. п.) каждого внешнего переключателя и возможности (внешние по отношению к Коболу), используемые для изменения состояния внешнего переключателя. Например, если область действия внешнего переключателя есть единица исполнения, каждое имя-реализации, именующее такой внешний переключатель, соотнесено только одному переключателю, доступному каждой объектной программе, функционирующей в этой единице исполнения.
Состояние некоторых переключателей может изменяться оператором SET (УСТАНОВИТЬ) (ч. 6, п. 6.23).
ИСХОДНАЯ КОБОЛ-ПРОГРАММА
Введение
Исходная Кобол-программа — это синтаксически правильный набор операторов Кобола.
Организация
За исключением операторов COPY-'" (КОПИРОВАТЬ) и REPLACE (ЗАМЕНИТЬ) и заголовка конца программы, операторы, статьи, параграфы и секции исходной Кобол-программы группируются в четыре раздела, расположенные друг за другом в следующем порядке:
Раздел идентификации
Раздел оборудования
Раздел данных
Раздел процедур.
Конец исходной Кобол-программы указывается либо заголовком конца программы, либо отсутствием дальнейших строк исходной программы.
Структура
Ниже приведен общий формат и порядок представления статей и операторов, в котором записывается исходная Кобол-программа.
1.Общий формат
раздел-идентификации
[раздел-оборудования]
[раздел-данных]
[раздел-процедур]
[заголовок-конца-программы]
РАЗДЕЛЫ
Раздел идентификации
6.1.1.Общее описание
Раздел идентификации определяет программу. Кроме этого, пользователь может включать в параграфы показанного ниже общего формата дату написания программы, дату компиляции исходной программы и другую необязательную информацию.Организация
Заголовки параграфов определяют тип информации, содержащейся в каждом параграфе. Имя программы должно быть дано в первом параграфе PROGRAM-ID (ПРОГРАММА). Остальные параграфы необязательны и могут быть включены в этот раздел по выбору пользователя в порядке, приведенном в формате ниже.
С т р у к т у р а
Ниже приведен формат параграфов раздела идентификации и определен порядок их следования в исходной программе.
Общий формат
IDENTIFICATION DIVISION.
PROGRAM-ID. имя-программы.
[AUTHOR, [статья-комментарий] . . . ]
[INSTALLATION, [статья-комментарий]. . . ]
[DATE-WRITTEN, [статья-комментарий] . . . ]
[DATE-COMPILED, [б^ртья-комментарий] . . . ]
[SECURITY, [статья-комментарий] . . . ]
РАЗДЕЛ ИДЕНТИФИКАЦИИ.
ПРОГРАММА, имя-программы.
[АВТОР, [статья-комментарий] . . . ]
[ПРЕДПРИЯТИЕ, [статья-комментарий]. .. ]
[ДАТА-НАПИСАНИЯ. [статья-комментарий]. . . ]
[ДАТА-ТРАНСЛЯЦИИ. [статья-комментарий] ... ]
[ПОЛНОМОЧИЯ, [статья-комментарий].. . ]
Раздел оборудования
Общее описание
Раздел оборудования описывает стандартные аспекты обработки данных, которые зависят от физических особенностей конкретной машины. Этот раздел позволяет определить конфигурацию компилирующей и объектной машины, а также дать информацию, относящуюся к управлению вводом-выводом, специфическим особенностям оборудования машины и методам управления.
Организация
Раздел оборудования состоит из секции конфигурации и секции ввода-вывода.
Секция конфигурации характеризует исходную и рабочую машины. Эта секция разделена на три параграфа: параграф SOURCE-COMPUTER (ИСХОДНАЯ-МАШИНА), описывающий конфигурацию машины, на которой компилируется исходная программа; параграф OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА), описывающий конфигурацию машины, на которой следует выполнять объектную программу, и параграф SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА), который предусматривает средства определения валютного знака, выбора десятичной точки, определения символических литер, установления соответствия между: именами реализации и определенными пользователем мнемоническими именами; именами алфавитов и наборами литер машины или основными последовательностями; именами классов и наборами литер.
Секция ввода-вывода содержит информацию, необходимую для управления обработкой и передачей данных из внешней среды в объектную программу и обратно. Эта секция разделена на два параграфа. Параграф FILE-CONTROL (УПРАВЛЕЙИЕ-ФАЙ- ЛАМИ) называет файл и ставит его в соответствие внешней среде. Параграф I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВО- ДОМ) определяет специальные методы управления, которые следует использовать в объектной программе.
Структура
Ниже приводится общий формат секций и параграфов в разделе оборудования и определяется порядок представления их в исходной программе.
Общий формат
ENVIRONMENT DIVISION.
[CONFIGURATION SECTION.
[SOURCE-COMPUTER, [статья-исходной-машины] ] [OBJECT-COMPUTER, [статья-объектной-машины]] [SPECIAL-NAMES, [статья-специальных-имен]]] [INPUT-OUTPUT SECTION.
FILE-CONTROL, {статья-управления-файлом} ...
[I-O-CONTROL. [статья-управления-вводом-выводом]]]
РАЗДЕЛ ОБОРУДОВАНИЯ.
[СЕКЦИЯ КОНФИГУРАЦИИ.
[ИСХОДНАЯ-МАШИНА, [статья-исходной-машины] ] [РАБОЧАЯ-МАШИНА, [статья-объектной-машины]] [СПЕЦИАЛЬНЫЕ-ИМЕНА. [статья-специальных-имен]]] [СЕКЦИЯ ВВОДА-ВЫВОДА.
УПРАВЛЕНИЕ-ФАЙЛАМИ. {статья-управления-файлом} . . .
[УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ. [статья-управления- вводом-выводом]] ]
Раздел данных
6.3.1.Общий подход
Раздел данных описывает данные, которые объектная программа должна воспринимать как входные, обрабатывать, создавать и выдавать как выходные.
Физические и логические аспекты описания данных
Организация раздела данных
Раздел данных подразделяется на секции: файлов, рабочей памяти, связи, коммуникаций и отчетов.
Секция файлов определяет структуру файлов данных. Каждый файл определяется статьей описания файла и одним или несколькими описаниями записи, или статьей описания файла и одной или несколькими статьями описаний отчета. Описания записи указываются непосредственно за статьей описания файла. Когда описание файла определяет файл как используемый только в качестве выходного файла генератора отчетов, описание записи должно быть опущено. Статьи описания отчетов указываются в отдельной секции раздела данных — в секции отчетов.
Секция рабочей памяти описывает записи и подчиненные данные, которые не являются частями внешних файлов данных, а получаются и обрабатываются во внутренней памяти, а также данные, значения которых определены в исходной программе и не меняются в процессе выполнения рабочей программы.
Секция связи указывается в вызываемой программе и описывает данные, к которым должны обращаться вызывающая и вызываемая программы. Структура этой секции аналогична секции рабочей памяти.
Секция коммуникаций описывает данные в исходной программе, которые служат для взаимодействия между системой управления сообщениями и программой.
Секция отчетов описывает содержание и формат подлежащих, выдаче отчетов.
Структура раздела данных
Ниже приведен общий формат секций раздела данных и определен порядок их представления в исходной программе.
Общий формат
DATA DIVISION.
[FILE SECTION.
статья-описания-файла {статья-описания-записи}...
статья-описания-сортируемого-сливаемого-файла 7
{статья-описания-записи}... • • • 1
статья-описания-файла-отчетов
[WORKING-STORAGE SECTION.
статья-описания-уровня-77 статья-описания-записи ■ • •
<[LINKAGE SECTION.
статья-описания-у ровня-77 ,
статья-описания-записи • ■ • *
[COMMUNICATION SECTION.
[статья-описания-коммуникации {статья-описания-записи}... ]... ] [REPORT SECTION.
[статья-описания-отчета {статья-описания-группы-отчета}... ]... ] РАЗДЕЛ ДАННЫХ.
[СЕКЦИЯ ФАЙЛОВ.
статья-описания-файла {статья-описания-записи} . . .
статья-описания-сортируемого-сливаемого-файл а ,
{статья-описания-записи}... -J
' статья описания-файла-отчетов
[СЕКЦИЯ РАБОЧЕЙ-ПАМЯТИ.
статья-описания-уровня-77 статья-описания-записи ] ■ ■ • 1
[СЕКЦИЯ СВЯЗИ.
статья-описания-уровня-77 , статья-описания-записи • • • '
[СЕКЦИЯ КОММУНИКАЦИЙ.
[статья-описания-коммуникации [статья-описания-записи]...]...] [СЕКЦИЯ ОТЧЕТОВ.
[статья-описания-отчета {статья-описания-группы-отчета}...]...]
Раздел процедур
Общее описание
Раздел процедур содержит декларативы и процедуры.
Декларативы
Секции декларатив должны быть сгруппированы в начале раздела процедур; им предшествует ключевое слово DECLARATIVES (ДЕКЛАРАТИВЫ) и их заключают ключевые слова END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ) (ч. 7, п. 4.6; ч. 8, п. 4.8; ч. 9, п. 4.8; ч. 13, пп. 4.8, 4.9 и ч. 15, п. 3.2).
Процедуры
Процедура состоит из параграфа или группы последовательных параграфов, либо из секции или из группы последовательных секций внутри раздела процедур. Если один параграф включен в секцию, то и все параграфы должны быть включены в секции. Имя процедуры — это слово, используемое для обращения к параграфе
фу или к секции в исходной программе. Имя процедуры может быть именем параграфа, которое может быть уточнено, или именем секции.
Секция состоит из заголовка секции, за которым следует нуль, один или несколько последовательно записанных параграфов. Секция заканчивается непосредственно перед следующей секцией или по окончании раздела процедур, или в декларативной части раздела процедур ключевыми словами END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ).
Параграф состоит из имени параграфа, за которым следует точка с пробелом и нуль, одно или несколько последовательно записанных предложений. Параграф оканчивается непосредственно перед следующим именем параграфа или именем секции, или по окончании раздела процедур, или в декларативах в разделе процедур ключевыми словами END DECLARATIVES (КОНЕЦ ДЕКЛАРАТИВ).
Предложение состоит из одного или нескольких операторов и заканчивается разделителем точкой.
Оператор — синтаксически правильная комбинация слов, литералов и разделителей, начинающаяся глаголом языка Кобол.
Термин «идентификатор» определяется как слово или слова, необходимые для однозначности обращения к данному.
Выполнение
Выполнение начинается с первого оператора раздела процедур, исключая декларативы. Затем операторы выполняются в том порядке, в котором они представлены для компиляции, исключение из которого составляет порядок, описанный правилами этой части.
Структура раздела процедур
3 а г о л о в о к раздела процедур
Раздел процедур должен начинаться следующим заголовком: PROCEDURE DIVISION [USING {имя-данного-1} ... ].
РАЗДЕЛ ПРОЦЕДУР [ИСПОЛЬЗУЯ {имя-данного-1}... ].
Структура тела раздела процедур
Тело раздела процедур должно соответствовать одному из следующих форматов:
Формат 1
DECLARATIVES.
{имя-секции SECTION [номер сегмента].
Оператор USE
[имя-параграфа.
[предложение] ... ] ...}...
END DECLARATIVES.]
{имя-секции SECTION [номер-сегмента].[имя-параграфа.
[предложение] ... ]
[ДЕКЛАРАТИВЫ.
{СЕКЦИЯ имя-секции [номер-сегмента].
Оператор ИСПОЛЬЗОВАТЬ
[имя-параграфа.
[предложение]
КОНЕЦ ДЕКЛАРАТИВ.]
{СЕКЦИЯ имя-секции [номер-сегмента].
[имя-параграфа.
[предложение] ... ] ...}...
Формат 2
{имя-параграфа.
[предложение]
П р е д л о ж е н и я и операторы