COBOL - 程序结构
COBOL 程序结构由如下图所示的部分组成 −
下面对这些部分进行简单介绍 −
Sections 是程序逻辑的逻辑细分。 节是段落的集合。
Paragraphs 是一个部分或部分的细分。 它是用户定义的或预定义的名称,后跟句点,由零个或多个句子/条目组成。
Sentences 是一个或多个语句的组合。 句子仅出现在程序部分。 句子必须以句号结尾。
Statements 是执行某些处理的有意义的 COBOL 语句。
Characters 是层次结构中的最低层,不可整除。
您可以将上述术语与以下示例中的 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.
下面给出的是执行上述 COBOL 程序的 JCL。
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
当你编译并执行上面的程序时,它会产生以下结果 −
Welcome to Tutorialspoint
环境划分
环境划分用于指定程序的输入和输出文件。 它由两部分组成 −
配置部分提供有关编写和执行程序的系统的信息。 它由两段组成 −
源计算机 − 用于编译程序的系统。
对象计算机 − 用于执行程序的系统。
输入-输出部分提供有关程序中使用的文件的信息。 它由两段组成 −
文件控制 − 提供程序中使用的外部数据集的信息。
I-O 控制 − 提供程序中使用的文件的信息。
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.
执行上述COBOL程序的JCL如下 −
//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