- COBOL 教程
- COBOL - 首頁
- COBOL - 概述
- COBOL - 環境設定
- COBOL - 程式結構
- COBOL - 基本語法
- COBOL - 資料型別
- COBOL - 基本動詞
- COBOL - 資料佈局
- COBOL - 條件語句
- COBOL - 迴圈語句
- COBOL - 字串處理
- COBOL - 表格處理
- COBOL - 檔案處理
- COBOL - 檔案組織
- COBOL - 檔案訪問模式
- COBOL - 檔案處理動詞
- COBOL - 子程式
- COBOL - 內部排序
- COBOL - 資料庫介面
- COBOL 有用資源
- COBOL - 問答
- COBOL - 快速指南
- COBOL - 有用資源
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 在執行時使用載入模組而不是實際程式。載入庫在執行時使用 JCLLIB 或 STEPLIB 連線並提供給 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 中指定。
