COBOL - 環境設定



我們已經線上設定了 COBOL 程式設計環境,以便您可以線上編譯和執行所有可用的示例。它讓您對正在閱讀的內容充滿信心,並使您能夠使用不同的選項驗證程式。請隨意修改任何示例並在網上執行。

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

PROCEDURE DIVISION.
   DISPLAY 'Hello World'.
STOP RUN.

對於本教程中提供的多數示例,您將在我們網站程式碼部分的右上角找到一個“試一試”選項,該選項將帶您進入線上編譯器。因此,請充分利用它並享受您的學習。

在 Windows/Linux 上安裝 COBOL

有很多可用於 Windows 的免費大型機模擬器,可用於編寫和學習簡單的 COBOL 程式。

其中一個模擬器是 Hercules,它可以透過遵循以下幾個簡單步驟輕鬆安裝在 Windows 上:

  • 下載並安裝 Hercules 模擬器,該模擬器可從 Hercules 的主頁獲取:www.hercules-390.eu

  • 在 Windows 機器上安裝完軟體包後,它將建立一個類似於 C:/hercules/mvs/cobol 的資料夾。

  • 執行命令提示符 (CMD) 併到達 CMD 上的 C:/hercules/mvs/cobol 目錄。

  • 有關編寫和執行 JCL 和 COBOL 程式的各種命令的完整指南,請訪問

    www.jaymoseley.com/hercules/installmvs/instmvs2.htm

Hercules 是大型機 System/370 和 ESA/390 架構以及最新的 64 位 z/Architecture 的開源軟體實現。Hercules 執行在 Linux、Windows、Solaris、FreeBSD 和 Mac OS X 上。

使用者可以透過多種方式連線到大型機伺服器,例如瘦客戶端、虛擬終端、虛擬客戶端系統 (VCS) 或虛擬桌面系統 (VDS)。每個有效使用者都獲得一個登入 ID 以輸入 Z/OS 介面 (TSO/E 或 ISPF)。

編譯 COBOL 程式

為了使用 JCL 以批處理模式執行 COBOL 程式,需要編譯該程式,並使用所有子程式建立載入模組。JCL 在執行時使用載入模組而不是實際程式。載入庫在執行時使用 JCLLIBSTEPLIB 連線並提供給 JCL。

有很多大型機編譯器實用程式可用於編譯 COBOL 程式。一些公司使用像 Endevor 這樣的變更管理工具來編譯和儲存程式的每個版本。這對於跟蹤對程式所做的更改很有用。

//COMPILE   JOB ,CLASS=6,MSGCLASS=X,NOTIFY=&SYSUID             
//*            
//STEP1     EXEC IGYCRCTL,PARM=RMODE,DYNAM,SSRANGE
//SYSIN     DD DSN=MYDATA.URMI.SOURCES(MYCOBB),DISP=SHR
//SYSLIB    DD DSN=MYDATA.URMI.COPYBOOK(MYCOPY),DISP=SHR
//SYSLMOD   DD DSN=MYDATA.URMI.LOAD(MYCOBB),DISP=SHR
//SYSPRINT  DD SYSOUT=*
//*

IGYCRCTL 是一個 IBM COBOL 編譯器實用程式。編譯器選項是使用 PARM 引數傳遞的。在上面的示例中,RMODE 指示編譯器在程式中使用相對定址模式。COBOL 程式是使用 SYSIN 引數傳遞的。Copybook 是程式在 SYSLIB 中使用的庫。

執行 COBOL 程式

下面是一個 JCL 示例,其中程式 MYPROG 使用輸入檔案 MYDATA.URMI.INPUT 執行並生成兩個寫入卷軸的輸出檔案。

//COBBSTEP  JOB CLASS=6,NOTIFY=&SYSUID
//
//STEP10    EXEC PGM=MYPROG,PARM=ACCT5000
//STEPLIB   DD DSN=MYDATA.URMI.LOADLIB,DISP=SHR
//INPUT1    DD DSN=MYDATA.URMI.INPUT,DISP=SHR
//OUT1      DD SYSOUT=*
//OUT2      DD SYSOUT=*
//SYSIN     DD *
//CUST1     1000
//CUST2     1001
/*

MYPROG 的載入模組位於 MYDATA.URMI.LOADLIB 中。需要注意的是,上述 JCL 只能用於非 DB2 COBOL 模組。

執行 COBOL-DB2 程式

要執行 COBOL-DB2 程式,JCL 和程式中會使用一個專門的 IBM 實用程式;DB2 區域和所需引數作為輸入傳遞給實用程式。

執行 COBOL-DB2 程式的步驟如下:

  • 當編譯 COBOL-DB2 程式時,會建立一個 DBRM(資料庫請求模組)以及載入模組。DBRM 包含 COBOL 程式的 SQL 語句,並對其語法進行了檢查以確保其正確性。

  • DBRM 繫結到 COBOL 將在其上執行的 DB2 區域(環境)。這可以使用 JCL 中的 IKJEFT01 實用程式來完成。

  • 在繫結步驟之後,使用 IKJEFT01(再次)執行 COBOL-DB2 程式,並將載入庫和 DBRM 庫作為輸入傳遞給 JCL。

//STEP001  EXEC PGM=IKJEFT01
//*
//STEPLIB  DD DSN=MYDATA.URMI.DBRMLIB,DISP=SHR
//*
//input files
//output files
//SYSPRINT DD SYSOUT=*
//SYSABOUT DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//DISPLAY  DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD *
   DSN SYSTEM(SSID)
   RUN PROGRAM(MYCOBB) PLAN(PLANNAME) PARM(parameters to cobol program) -
   LIB('MYDATA.URMI.LOADLIB')
   END
/*

在上面的示例中,MYCOBB 是使用 IKJEFT01 執行的 COBOL-DB2 程式。請注意,程式名稱、DB2 子系統 ID (SSID) 和 DB2 計劃名稱是在 SYSTSIN DD 語句中傳遞的。DBRM 庫在 STEPLIB 中指定。

廣告

© . All rights reserved.