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 (КОНЕЦ-ПИСАТЬ)

Неявными ограничителями области действия являются:

  1. разделитель точка в конце любого предложения, которая заканчивает область действия всех предыдущих операторов, еще же завершенных;

  2. в любом операторе, содержащем другой оператор, следую­щая фраза внешнего оператора, находящаяся после внутреннего оператора, завершает область действия любого незавершенного внутреннего оператора. Примерами таких фраз являются ELSE (ИНАЧЕ), WHEN (КОГДА), NOT AT END (НЕ В КОНЦЕ) ж т. п.

4.5. Внешний переключатель.

Внешний переключатель — это устройство оборудования или программное средство, определяемое и именуемое реализацией, и используемое для указания одного из двух альтернативных состоя­ний. Альтернативные состояния относятся к состоянию «включено» или «выключено» соответствующего внешнего переключателя.

Состояние внешнего переключателя может быть опрошено про­веркой имен-условий, связанных с этим переключателем. Соответ­ствие имени-условия внешнему переключателю и соответствие ука­занного пользователем мнемонического-имени имени-реализации, именующему внешний переключатель, устанавливается в парагра­фе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) раздела обо­рудования (ч. 6, п. 4.5.1).

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

Состояние некоторых переключателей может изменяться опера­тором SET (УСТАНОВИТЬ) (ч. 6, п. 6.23).

  1. ИСХОДНАЯ КОБОЛ-ПРОГРАММА

    1. Введение

Исходная Кобол-программа — это синтаксически правильный набор операторов Кобола.

  1. Организация

За исключением операторов COPY-'" (КОПИРОВАТЬ) и REP­LACE (ЗАМЕНИТЬ) и заголовка конца программы, операторы, статьи, параграфы и секции исходной Кобол-программы группи­руются в четыре раздела, расположенные друг за другом в следу­ющем порядке:

  1. Раздел идентификации

  2. Раздел оборудования

  3. Раздел данных

  4. Раздел процедур.

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

  1. Структура

Ниже приведен общий формат и порядок представления статей и операторов, в котором записывается исходная Кобол-программа.

  1. 1.Общий формат

раздел-идентификации

[раздел-оборудования]

[раздел-данных]

[раздел-процедур]

[заголовок-конца-программы]

  1. РАЗДЕЛЫ

    1. Раздел идентификации

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

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

Заголовки параграфов определяют тип информации, содержа­щейся в каждом параграфе. Имя программы должно быть дано в первом параграфе PROGRAM-ID (ПРОГРАММА). Остальные па­раграфы необязательны и могут быть включены в этот раздел по выбору пользователя в порядке, приведенном в формате ниже.

  1. С т р у к т у р а

Ниже приведен формат параграфов раздела идентификации и определен порядок их следования в исходной программе.

  1. Общий формат

IDENTIFICATION DIVISION.

PROGRAM-ID. имя-программы.

[AUTHOR, [статья-комментарий] . . . ]

[INSTALLATION, [статья-комментарий]. . . ]

[DATE-WRITTEN, [статья-комментарий] . . . ]

[DATE-COMPILED, [б^ртья-комментарий] . . . ]

[SECURITY, [статья-комментарий] . . . ]

РАЗДЕЛ ИДЕНТИФИКАЦИИ.

ПРОГРАММА, имя-программы.

[АВТОР, [статья-комментарий] . . . ]

[ПРЕДПРИЯТИЕ, [статья-комментарий]. .. ]

[ДАТА-НАПИСАНИЯ. [статья-комментарий]. . . ]

[ДАТА-ТРАНСЛЯЦИИ. [статья-комментарий] ... ]

[ПОЛНОМОЧИЯ, [статья-комментарий].. . ]

  1. Раздел оборудования

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

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

  1. Организация

Раздел оборудования состоит из секции конфигурации и секции ввода-вывода.

Секция конфигурации характеризует исходную и рабочую ма­шины. Эта секция разделена на три параграфа: параграф SOUR­CE-COMPUTER (ИСХОДНАЯ-МАШИНА), описывающий конфи­гурацию машины, на которой компилируется исходная програм­ма; параграф OBJECT-COMPUTER (РАБОЧАЯ-МАШИНА), опи­сывающий конфигурацию машины, на которой следует выпол­нять объектную программу, и параграф SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА), который предусматривает средства определения валютного знака, выбора десятичной точки, определе­ния символических литер, установления соответствия между: име­нами реализации и определенными пользователем мнемонически­ми именами; именами алфавитов и наборами литер машины или основными последовательностями; именами классов и наборами литер.

Секция ввода-вывода содержит информацию, необходимую для управления обработкой и передачей данных из внешней среды в объектную программу и обратно. Эта секция разделена на два параграфа. Параграф FILE-CONTROL (УПРАВЛЕЙИЕ-ФАЙ- ЛАМИ) называет файл и ставит его в соответствие внешней среде. Параграф I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВО- ДОМ) определяет специальные методы управления, которые сле­дует использовать в объектной программе.

  1. Структура

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

  1. Общий формат

ENVIRONMENT DIVISION.

[CONFIGURATION SECTION.

[SOURCE-COMPUTER, [статья-исходной-машины] ] [OBJECT-COMPUTER, [статья-объектной-машины]] [SPECIAL-NAMES, [статья-специальных-имен]]] [INPUT-OUTPUT SECTION.

FILE-CONTROL, {статья-управления-файлом} ...

[I-O-CONTROL. [статья-управления-вводом-выводом]]]

РАЗДЕЛ ОБОРУДОВАНИЯ.

[СЕКЦИЯ КОНФИГУРАЦИИ.

[ИСХОДНАЯ-МАШИНА, [статья-исходной-машины] ] [РАБОЧАЯ-МАШИНА, [статья-объектной-машины]] [СПЕЦИАЛЬНЫЕ-ИМЕНА. [статья-специальных-имен]]] [СЕКЦИЯ ВВОДА-ВЫВОДА.

УПРАВЛЕНИЕ-ФАЙЛАМИ. {статья-управления-файлом} . . .

[УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ. [статья-управления- вводом-выводом]] ]

  1. Раздел данных

6.3.1.Общий подход

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

  1. Физические и логические аспекты описа­ния данных

    1. Организация раздела данных

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

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

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

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

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

Секция отчетов описывает содержание и формат подлежащих, выдаче отчетов.

  1. Структура раздела данных

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

  1. Общий формат

DATA DIVISION.

[FILE SECTION.

статья-описания-файла {статья-описания-записи}...

статья-описания-сортируемого-сливаемого-файла 7

{статья-описания-записи}... • • • 1

статья-описания-файла-отчетов

[WORKING-STORAGE SECTION.

статья-описания-уровня-77 статья-описания-записи ■ • •

<[LINKAGE SECTION.

статья-описания-у ровня-77 ,

статья-описания-записи • ■ • *

[COMMUNICATION SECTION.

[статья-описания-коммуникации {статья-описания-записи}... ]... ] [REPORT SECTION.

[статья-описания-отчета {статья-описания-группы-отчета}... ]... ] РАЗДЕЛ ДАННЫХ.

[СЕКЦИЯ ФАЙЛОВ.

статья-описания-файла {статья-описания-записи} . . .

статья-описания-сортируемого-сливаемого-файл а ,

{статья-описания-записи}... -J

' статья описания-файла-отчетов

[СЕКЦИЯ РАБОЧЕЙ-ПАМЯТИ.

статья-описания-уровня-77 статья-описания-записи ] ■ ■ • 1

[СЕКЦИЯ СВЯЗИ.

статья-описания-уровня-77 , статья-описания-записи • • • '

[СЕКЦИЯ КОММУНИКАЦИЙ.

[статья-описания-коммуникации [статья-описания-записи]...]...] [СЕКЦИЯ ОТЧЕТОВ.

[статья-описания-отчета {статья-описания-группы-отчета}...]...]

  1. Раздел процедур

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

Раздел процедур содержит декларативы и процедуры.

  1. Декларативы

Секции декларатив должны быть сгруппированы в начале раз­дела процедур; им предшествует ключевое слово DECLARATIVES (ДЕКЛАРАТИВЫ) и их заключают ключевые слова END DECLA­RATIVES (КОНЕЦ ДЕКЛАРАТИВ) (ч. 7, п. 4.6; ч. 8, п. 4.8; ч. 9, п. 4.8; ч. 13, пп. 4.8, 4.9 и ч. 15, п. 3.2).

  1. Процедуры

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

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

Секция состоит из заголовка секции, за которым следует нуль, один или несколько последовательно записанных параграфов. Сек­ция заканчивается непосредственно перед следующей секцией или по окончании раздела процедур, или в декларативной части раз­дела процедур ключевыми словами END DECLARATIVES (КО­НЕЦ ДЕКЛАРАТИВ).

Параграф состоит из имени параграфа, за которым следует точка с пробелом и нуль, одно или несколько последовательно за­писанных предложений. Параграф оканчивается непосредствен­но перед следующим именем параграфа или именем секции, или по окончании раздела процедур, или в декларативах в разделе про­цедур ключевыми словами END DECLARATIVES (КОНЕЦ ДЕК­ЛАРАТИВ).

Предложение состоит из одного или нескольких операторов и заканчивается разделителем точкой.

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

Термин «идентификатор» определяется как слово или слова, необходимые для однозначности обращения к данному.

  1. Выполнение

Выполнение начинается с первого оператора раздела процедур, исключая декларативы. Затем операторы выполняются в том по­рядке, в котором они представлены для компиляции, исключение из которого составляет порядок, описанный правилами этой части.

  1. Структура раздела процедур

    1. 3 а г о л о в о к раздела процедур

Раздел процедур должен начинаться следующим заголовком: PROCEDURE DIVISION [USING {имя-данного-1} ... ].

РАЗДЕЛ ПРОЦЕДУР [ИСПОЛЬЗУЯ {имя-данного-1}... ].

  1. Структура тела раздела процедур

Тело раздела процедур должно соответствовать одному из сле­дующих форматов:

Формат 1

DECLARATIVES.

{имя-секции SECTION [номер сегмента].

Оператор USE

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

[предложение] ... ] ...}...

END DECLARATIVES.]

{имя-секции SECTION [номер-сегмента].[имя-параграфа.

[предложение] ... ]

[ДЕКЛАРАТИВЫ.

{СЕКЦИЯ имя-секции [номер-сегмента].

Оператор ИСПОЛЬЗОВАТЬ

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

[предложение]

КОНЕЦ ДЕКЛАРАТИВ.]

{СЕКЦИЯ имя-секции [номер-сегмента].

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

[предложение] ... ] ...}...

Формат 2

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

[предложение]

  1. П р е д л о ж е н и я и операторы