COBOL ソース・プログラムは、正しい構文の一連の COBOL ステートメントです。
COBOL ソース・プログラムは、他の COBOL ソース・プログラムを含むことがあります。 含まれる側のプログラムは、含む側のプログラムのリソースの一部を参照することがあります。
このようなプログラムを含むという概念は、ネストと呼ばれ、含まれるプログラムはネストされたプログラムと呼ばれます。 ネストされたプログラムは、直接または間接に別のプログラムに含まれます。 たとえば、プログラム B がプログラム A に含まれている場合、プログラム A に含まれプログラム B を含むような介在プログラムがなければ、プログラム B は「直接含まれる」ということになります。 プログラム A に含まれプログラム B を含むような介在プログラムがあると、プログラム B は「間接的に」プログラム A に含まれます。
含む側と含まれる側のプログラムの詳細は、「WebSphere Development Studio: ILE COBOL プログラマーの手引き」のネストされたプログラムのセクションを参照してください。
コンパイラー指示ステートメントと END PROGRAM ヘッダーを除き、COBOL ソース・プログラムのステートメント、項目、段落、およびセクションは、次の 4 つの部に分けられます。
COBOL ソース・プログラムの終わりは、END PROGRAM ヘッダー (指定された場合) で 示されるか、またはそれ以上ソース・プログラムの行がないことによって示されます。
次の図に、COBOL プログラムの一般構造を簡単に図示してあります。
COBOL ソース・プログラム - 形式 >>-+-IDENTIFICATION-+--DIVISION.--PROGRAM-ID.-------------------> | (1) | '-ID-------------' >--+-プログラム名-1--+------------------------------------------> | (1) | '-リテラル-1------' >--+------------------------------------+-----------------------> '-+----+--+-INITIAL---+--+---------+-' '-IS-' '-RECURSIVE-' '-PROGRAM-' >--.--+----------------+----------------------------------------> '-見出し部の内容-' >--+-------------------------------------+----------------------> '-ENVIRONMENT DIVISION.--環境部の内容-' >--+--------------------------------+---------------------------> '-DATA DIVISION.--データ部の内容-' >--+-------------------------------------+----------------------> '-PROCEDURE DIVISION.--手続き部の内容-' >--+-------------------------------------------------------------------------+->< '-+--------------------------------+--END PROGRAM--+-プログラム名-1--+--.-' | .----------------------------. | | (1) | | V | | '-リテラル-1------' '---| ネストされたプログラム |-+-' ネストされたプログラム: |--+-IDENTIFICATION-+--DIVISION.--PROGRAM-ID.-------------------> | (1) | '-ID-------------' >--+-プログラム名-2--+------------------------------------------> | (1) | '-リテラル-2------' >--+----------------------------------------------------+-------> '-+----+--+-COMMON--+-----------+-----+--+---------+-' '-IS-' | +-INITIAL---+ | '-PROGRAM-' | '-RECURSIVE-' | '-+-INITIAL---+--+--------+-' '-RECURSIVE-' '-COMMON-' >--.--+----------------+----------------------------------------> '-見出し部の内容-' >--+-------------------------------------+----------------------> '-ENVIRONMENT DIVISION.--環境部の内容-' >--+--------------------------------+---------------------------> '-DATA DIVISION.--データ部の内容-' >--+-------------------------------------+----------------------> '-PROCEDURE DIVISION.--手続き部の内容-' >--+--------------------------------+--END PROGRAM--------------> | .----------------------------. | | V | | '---| ネストされたプログラム |-+-' >--+-プログラム名-2--+--.---------------------------------------| | (1) | '-リテラル-2------'
注: