COBOL プログラムの構造
COBOL ソース・プログラムは、構文上、正確な COBOL ステートメントの集合です。
- ネストされたプログラム
- ネストされたプログラム は、別のプログラムに含まれるプログラムです。中に含まれるこれらのプログラムは、中に含むプログラムのリソースの一部を参照することができます。プログラム B がプログラム A に包含されており、プログラム A には他にプログラム B を含むプログラムが含まれていない場合、プログラム B はプログラム A に直接 包含されます。プログラム A に他にプログラム B を含むプログラムが含まれている場合、プログラム B はプログラム A に間接的に 包含されます。ネストされたプログラムの詳細については、ネストされたプログラムおよび「COBOL for Windows プログラミング・ガイド」を参照してください。
-
オブジェクト・プログラム
- オブジェクト・プログラム は、実行可能な機械語命令と、
問題解決のために提供されるデータと対話するために設計された他のエンティティーからなる集合またはグループです。オブジェクト・プログラムは、
一般にソース・プログラムに対して COBOL コンパイラーを操作した結果生じた機械語です。オブジェクト・プログラムという用語は、クラス定義のコンパイルの結果生じたメソッドも指します。
-
実行単位
- 実行単位 は、相互に作用し合い、実行時に問題解決を提供するエンティティーとして機能する
1 つ以上のオブジェクト・プログラムです。
-
兄弟プログラム
- 兄弟プログラム は、同じプログラムに直接的に含まれるプログラムです。
COPY および REPLACE ステートメントと END PROGRAM マーカーを除き、
COBOL ソース・プログラムのステートメント、項目、段落、およびセクションは、
以下の 4 つの部に分類されます。
COBOL ソース・プログラムの終了は、END PROGRAM マーカーによって示されます。ネストされたプログラムがない場合には、
ソース・プログラム行の終わりによっても COBOL プログラムの終了になります。
次に、独立してコンパイルされる COBOL ソース・プログラムを構成する項目とステートメントのフォーマットを示します。
| フォーマット: COBOL ソース・プログラム |
 >>-+-IDENTIFICATION-+--DIVISION.--PROGRAM-ID--+---+------------->
'-ID-------------' '-.-'
>--プログラム名-1--+------------------------------------+------->
'-+----+--+-RECURSIVE-+--+---------+-'
'-IS-' '-INITIAL---' '-PROGRAM-'
>--+---+--+----------------+------------------------------------>
'-.-' '-見出し部の内容-'
>--+-------------------------------------+---------------------->
'-ENVIRONMENT DIVISION.--環境部の内容-'
>--+--------------------------------+--------------------------->
'-DATA DIVISION.--データ部の内容-'
>--+-------------------------------------+---------------------->
'-PROCEDURE DIVISION.--手続き部の内容-'
>--+-------------------------------------------------------------------------+-><
'-+----------------------------------------+--END PROGRAM--プログラム名-1-'
| .------------------------------------. |
| V | |
'---| ネストされたソース・プログラム |-+-'
ネストされたソース・プログラム:
|--+-IDENTIFICATION-+--DIVISION.--PROGRAM-ID--+---+------------->
'-ID-------------' '-.-'
>--プログラム名-2----------------------------------------------->
>--+----------------------------------------------+--+---+------>
'-+----+--+-COMMON--+---------+-+--+---------+-' '-.-'
'-IS-' | '-INITIAL-' | '-PROGRAM-'
'-INITIAL--+--------+-'
'-COMMON-'
>--+----------------+------------------------------------------->
'-見出し部の内容-'
>--+-------------------------------------+---------------------->
'-ENVIRONMENT DIVISION.--環境部の内容-'
>--+--------------------------------+--------------------------->
'-DATA DIVISION.--データ部の内容-'
>--+-------------------------------------+---------------------->
'-PROCEDURE DIVISION.--手続き部の内容-'
>--+----------------------------------------+--END PROGRAM------>
| .------------------------------------. |
| V | |
'---| ネストされたソース・プログラム |-+-'
>--プログラム名-2-----------------------------------------------|
|
一連の別々の COBOL プログラムもコンパイラーへの入力として使用できます。
次に示すのは、
バッチ・コンパイルの場合の一連のソース・プログラムを
構成する項目とステートメントのフォーマットです。
| フォーマット: 一連の COBOL ソース・プログラム |
 .--------------------------.
V |
>>---COBOL ソース・プログラム-+--------------------------------><
|
- END PROGRAM プログラム名
- END PROGRAM マーカーは、一連のプログラムの 1 つ 1 つを区切ります。
プログラム名 は、先行する PROGRAM-ID 段落で宣言したプログラム名と一致する必要がありま
す。
プログラム名 は、ユーザー定義語として、または英数字リテラルで、
指定することができます。いずれにしても、プログラム名 は、ユーザー定義語の形成規則に従う必要があります。プログラム名 は、表意定数にすることはできません。リテラルに英小文字が含まれていれば、それは大文字に変換されます。
一連のプログラムの最後のプログラムでは、そのプログラムがネストされたソース・プログラムを何も含まない場合に限り、END PROGRAM マーカーの指定は任意です。
|