COBOL程序结构由部(division)组成,如下图所示:

这些部简介如下:
你可以通过以下示例将上述术语与COBOL程序联系起来:
PROCEDURE DIVISION.
A0000-FIRST-PARA SECTION.
FIRST-PARAGRAPH.
ACCEPT WS-ID - Statement-1 -----|
MOVE '10' TO WS-ID - Statement-2 |-- Sentence - 1
DISPLAY WS-ID - Statement-3 -----|
COBOL程序包括四个部。
这是每一个COBOL程序的第一个也是唯一强制要求的部。程序员和编译器使用这个部来识别该程序。在这个部中,PROGRAM-ID是唯一强制要求的段落。PROGRAM-ID指定的程序名可包含1至30个字符。
试试下面的例子。
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Welcome to Tutorialspoint'.
STOP RUN.
下面是JCL执行上面的COBOL程序。
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO
当你编译和执行上面的程序时,会产生以下结果:
Welcome to Tutorialspoint
环境部用于指定程序的输入和输出文件。它由两个节组成:
**配置节(Configuration section)**可提供有关编写和执行程序的系统信息。它由两个段组成:
源计算机(source computer):用于编译程序的系统。
对象计算机(object computer):用于执行程序的系统。
**输入输出节(Input-Output section)**提供有关程序中要使用的文件的信息。它由两个段组成:
文件控制(file control):提供在程序中使用的外部数据集的信息。
IO控制(I-O control):提供在程序中使用的文件的信息。
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. XXX-ZOS.
OBJECT-COMPUTER. XXX-ZOS.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILEN ASSIGN TO DDNAME
ORGANIZATION IS SEQUENTIAL.
数据部用于定义程序中使用的变量。它由四个节组成:
COBOL程序
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILEN ASSIGN TO INPUT.
ORGANIZATION IS SEQUENTIAL.
ACCESS IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD FILEN
01 NAME PIC A(25).
WORKING-STORAGE SECTION.
01 WS-STUDENT PIC A(30).
01 WS-ID PIC 9(5).
LOCAL-STORAGE SECTION.
01 LS-CLASS PIC 9(3).
LINKAGE SECTION.
01 LS-ID PIC 9(5).
PROCEDURE DIVISION.
DISPLAY 'Executing COBOL program using JCL'.
STOP RUN.
JCL执行上述COBOL程序如下:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO
//INPUT DD DSN=ABC.EFG.XYZ,DISP=SHR
当你编译和执行上述程序时,会产生以下结果:
Executing COBOL program using JCL
过程部用于包含该程序的逻辑。它由使用数据部定义的变量的可执行语句组成。在这个部中,段和节的名称是用户定义的。
在过程部中必须至少有一个语句。结束这个部的执行的最后一条语句是在调用程序中使用的STOP RUN或者是在被调用程序中使用的EXIT PROGRAM。
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC A(30).
01 WS-ID PIC 9(5) VALUE '12345'.
PROCEDURE DIVISION.
A000-FIRST-PARA.
DISPLAY 'Hello World'.
MOVE 'TutorialsPoint' TO WS-NAME.
DISPLAY "My name is : "WS-NAME.
DISPLAY "My ID is : "WS-ID.
STOP RUN.
JCL执行上述COBOL程序:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO
当你编译和执行上面的程序时,会产生以下结果:
Hello World
My name is : TutorialsPoint
My ID is : 12345
```cobol
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO
当你编译和执行上面的程序时,会产生以下结果:
Hello World
My name is : TutorialsPoint
My ID is : 12345