Rational Developer for System z
COBOL for Windows バージョン 7.5 言語解説書


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 マーカーの指定は任意です。


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)