COBOL プログラムが実行単位の最初のプログラムであれば、その COBOL プログラムはメインプログラム です。 それ以外の場合は、そのプログラムも実行単位内の他のすべての COBOL プログラムも、サブプログラム です。特定のソース・コードのステートメントまたはオプションが、COBOL プログラムをメインプログラムまたはサブプログラムとして識別することはありません。
COBOL プログラムがメインプログラムであるかサブプログラムであるかは、次の 2 つの理由により重要になることもあります。
PROCEDURE DIVISION で、あるプログラムから別のプログラム (通常サブプログラム と呼ばれる) を呼び出すことができ、この呼び出し先プログラム自体からも別のプログラムを呼び出すことができます。 別のプログラムを呼び出すプログラムは呼び出し側 プログラムと呼ばれ、そのプログラムが呼び出すプログラムは呼び出し先 プログラムと呼ばれます。呼び出し先プログラムの処理が完了すると、そのプログラムは制御権を呼び出し側プログラムに戻すか、実行単位を終了することができます。
呼び出し先 COBOL プログラムは、PROCEDURE DIVISION の先頭で実行を開始します。