部门
一个 COBOL 程序由四个部分组成。
鉴定科
它是每个 COBOL 程序的第一个也是唯一一个强制划分。程序员和编译器使用这个划分来识别程序。在这个部分中,PROGRAM-ID 是唯一的强制性段落。PROGRAM-ID 指定可以包含 1 到 30 个字符的程序名称。
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Welcome to Jc2182'.
STOP RUN.
下面给出的是JCL执行上述 COBOL 程序。
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
当您编译并执行上述程序时,它会产生以下结果 -
环境科
环境划分用于指定程序的输入和输出文件。它由两部分组成 -
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.
数据部
数据除法用于定义程序中使用的变量。它由四个部分组成 -
-
File section用于定义文件的记录结构。
-
Working-Storage section用于声明程序中使用的临时变量和文件结构。
-
Local-Storage section类似于 Working-Storage 部分。唯一的区别是每次程序开始执行时都会分配和初始化变量。
-
Linkage section用于描述从外部程序接收到的数据名称。
COBOL Program
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 'Jc2182' 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 : Jc2182
My ID is : 12345