鍍金池/ 教程/ Java/ COBOL程序結(jié)構(gòu)
COBOL循環(huán)語句
COBOL數(shù)據(jù)布局
COBOL基本語法
COBOL條件語句
COBOL程序結(jié)構(gòu)
COBOL環(huán)境安裝
COBOL數(shù)據(jù)類型
COBOL教程
COBOL字符串處理
COBOL基本動詞

COBOL程序結(jié)構(gòu)

COBOL程序結(jié)構(gòu)包括如在下面的圖片顯示:

Program Structure

簡單介紹這些分區(qū)如下:

  • Sections 是程序邏輯的邏輯細(xì)分。段是段落的集合。
  • Paragraphs 是分區(qū)的一段或分立。它可以是用戶自定義或預(yù)定義的名稱后面加上的一段,由零個或多個句子/項。
  • Sentences 是一個或多個語句的組合。句子只出現(xiàn)在程序師。句子,必須結(jié)束有一個時期。
  • Statements 其執(zhí)行一些處理有意義的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  -----|
.

區(qū)劃

COBOL程序由4個區(qū)劃組成

鑒定區(qū)劃

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

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

JCL以上COBOL程序執(zhí)行。

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

當(dāng)編譯并執(zhí)行上面的程序它會產(chǎn)生以下結(jié)果:

Welcome to Yiibai

環(huán)境分區(qū)

環(huán)境區(qū)劃用于指定輸入和輸出文件的程序。它由兩部分組成:

  • 配置部分給出了關(guān)于在其上的程序被寫入和執(zhí)行的系統(tǒng)信息。它由兩段: 
    來源計算機(jī):用于編譯程序系統(tǒng)。

    目標(biāo)計算機(jī):用于執(zhí)行程序系統(tǒng)。

  • 輸入 - 輸出部分,用于指定關(guān)于在節(jié)目中要使用的文件的信息。它由兩段: 
    文件控制:給出的程序中使用的外部數(shù)據(jù)集的信息。

    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.

數(shù)據(jù)分區(qū)

數(shù)據(jù)分區(qū)是用來定義在該程序中使用的變量。它包括四個部分:

  • 文件部分是用來定義文件的記錄結(jié)構(gòu)。
  • 工作 - 存儲部分被用于聲明在程序中使用臨時變量和文件結(jié)構(gòu)。
  • 本地存儲部分與工作- 存儲部分是一樣的。唯一的區(qū)別是,變量將被分配并初始化每個程序開始執(zhí)行時間。
  • 連接段是用來形容那些從外部程序接收到的數(shù)據(jù)的名稱。

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程序執(zhí)行。

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO
//INPUT DD DSN=ABC.EFG.XYZ,DISP=SHR

當(dāng)編譯并執(zhí)行上面的程序它會產(chǎn)生以下結(jié)果:

Executing COBOL program using JCL

程序區(qū)劃

程序分部被用于包含程序的邏輯。它包括使用數(shù)據(jù)分割定義的變量可執(zhí)行語句。在這個劃分,段落和章節(jié)名稱是user-defined。

必須有程序師至少有一個語句。最后語句結(jié)束在執(zhí)行這種劃分或者是停止運行它用于調(diào)用它采用的是被稱為程序的程序或退出程序。

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程序執(zhí)行。

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

當(dāng)編譯并執(zhí)行上面的程序它會產(chǎn)生以下結(jié)果:

Hello World
My name is : YiiBai
My ID is : 12345