COBOL程序結構


COBOL程序結構包括如在下面的圖片顯示:

Program Structure

簡單介紹這些分區如下:

  • 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程序由4個區劃組成

鑑定區劃

這是每個COBOL程序的第一個也是唯一的強制性分工。編程器和編譯器使用該分工鑑定程序。在此處程序唯一的ID是強制性的段落。程序ID指定的程序名稱。程序名稱可以由1〜30個字符組成。

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

JCL以上COBOL程序執行。

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

當編譯並執行上面的程序它會產生以下結果:

Welcome to Yiibai

環境分區

環境區劃用於指定輸入和輸出文件的程序。它由兩部分組成:

  • 配置部分給出了關於在其上的程序被寫入和執行的系統信息。它由兩段: 
    來源計算機:用於編譯程序系統。

    目標計算機:用於執行程序系統。

  • 輸入 - 輸出部分,用於指定關於在節目中要使用的文件的信息。它由兩段: 
    文件控制:給出的程序中使用的外部數據集的信息。

    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.

數據分區

數據分區是用來定義在該程序中使用的變量。它包括四個部分:

  • 文件部分是用來定義文件的記錄結構。
  • 工作 - 存儲部分被用於聲明在程序中使用臨時變量和文件結構。
  • 本地存儲部分與工作- 存儲部分是一樣的。唯一的區別是,變量將被分配並初始化每個程序開始執行時間。
  • 連接段是用來形容那些從外部程序接收到的數據的名稱。

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

程序區劃

程序分部被用於包含程序的邏輯。它包括使用數據分割定義的變量可執行語句。在這個劃分,段落和章節名稱是user-defined。

必須有程序師至少有一個語句。最後語句結束在執行這種劃分或者是停止運行它用於調用它採用的是被稱爲程序的程序或退出程序。

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 'YiiBai' 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 : YiiBai
My ID is : 12345