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