当前位置: 首页 > 文档资料 > COBOL 中文教程 >

程序结构

优质
小牛编辑
124浏览
2023-12-01

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  -----|
.

分部(Divisions)

COBOL计划由四个部门组成。

鉴定科

它是每个COBOL计划的第一个也是唯一的强制性部门。 程序员和编译器使用该分区来识别程序。 在这个部门中,PROGRAM-ID是唯一的强制性段落。 PROGRAM-ID指定可包含1到30个字符的程序名称。

在线使用Live Demo选项尝试以下示例。

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Welcome to IoWiki'.
STOP RUN.

下面给出了执行上述COBOL程序的JCL

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

编译并执行上述程序时,会产生以下结果 -

Welcome to IoWiki

环境科

环境划分用于指定程序的输入和输出文件。 它由两部分组成 -

  • Configuration section提供有关编写和执行程序的系统的信息。 它由两段组成 -

    • 源计算机 - 用于编译程序的系统。

    • 对象计算机 - 用于执行程序的系统。

  • Input-Output section提供有关要在程序中使用的文件的信息。 它由两段组成 -

    • 文件控制 - 提供程序中使用的外部数据集的信息。

    • IO控制 - 提供程序中使用的文件的信息。

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.

执行上述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 'IoWiki' 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 : IoWiki
My ID is : 12345