COBOL 環(huán)境設(shè)置

2022-02-11 10:08 更新

在Windows/Linux上安裝COBOL

有很多可用于Windows的免費(fèi)主機(jī)模擬器,可用于編寫和學(xué)習(xí)簡(jiǎn)單的COBOL程序。

其中一個(gè)模擬器是Hercules,它可以通過(guò)以下幾個(gè)簡(jiǎn)單的步驟輕松安裝在Windows上:

  • 下載并安裝Hercules模擬器,可以從Hercules的官網(wǎng)找到:www.hercules-390.eu

  • 一旦在Windows機(jī)器上安裝了軟件包,它將創(chuàng)建一個(gè)C:/hercules/mvs/cobol文件夾。

  • 運(yùn)行命令提示符(CMD),并在CMD中到達(dá)目錄C:/hercules/mvs/cobol。

除了是最新的64位Z/架構(gòu),Hercules是大型機(jī)系統(tǒng)/370和ESA/390架構(gòu)的開源軟件實(shí)現(xiàn)。Hercules可在Linux,Windows,Solaris,F(xiàn)reeBSD和Mac OS X下運(yùn)行。

用戶可以通過(guò)多種方式連接到大型機(jī)服務(wù)器,例如瘦客戶機(jī),虛擬終端,虛擬客戶端系統(tǒng)(VCS)或虛擬桌面系統(tǒng)(VDS)。每個(gè)有效用戶都有一個(gè)登錄ID進(jìn)入Z/OS界面(TSO/E或ISPF)。

編譯COBOL程序

為了使用JCL在批處理模式下執(zhí)行COBOL程序,需要編譯程序,并使用所有子程序創(chuàng)建加載模塊。JCL在執(zhí)行時(shí)使用加載模塊而不是實(shí)際的程序。在使用JCLLIBSTEPLIB執(zhí)行時(shí),加載庫(kù)被連接并提供給JCL。

有許多大型機(jī)編譯器實(shí)用工具可用來(lái)編譯COBOL程序。一些企業(yè)的公司使用變更管理工具,如Endevor,它編譯和存儲(chǔ)程序的每個(gè)版本。這對(duì)跟蹤程序的更改是非常有用的。

//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編譯器工具。編譯器選項(xiàng)使用PARM參數(shù)傳遞。在上面的例子中,RMODE指示編譯器在程序中使用相對(duì)尋址模式。COBOL程序使用SYSIN參數(shù)傳遞。Copybook是程序在SYSLIB中所使用的庫(kù)。

執(zhí)行COBOL程序

以下是JCL示例,其中使用輸入文件MYDATA.URMI.INPUT執(zhí)行程序MYPROG,并產(chǎn)生寫入到spool的兩個(gè)輸出文件。

//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中。這里要重點(diǎn)注意的是,上述的JCL只能用于非DB2 COBOL模塊。

執(zhí)行COBOL-DB2程序

對(duì)于運(yùn)行COBOL-DB2程序,在JCL和程序中有專門的IBM工具可供使用;DB2區(qū)域和所需的參數(shù)作為輸入傳遞給工具。

接下來(lái)運(yùn)行COBOL-DB2程序的步驟如下:

  • 當(dāng)編譯COBOL DB2程序時(shí),將與加載模塊一起創(chuàng)建一個(gè)DBRM(數(shù)據(jù)庫(kù)請(qǐng)求模塊)。該DBRM包含COBOL程序的SQL語(yǔ)句,其語(yǔ)法檢查是正確的。

  • 該DBRM綁定到運(yùn)行COBOL的DB2區(qū)域(環(huán)境)。這可以使用JCL中的IKJEFT01工具來(lái)完成。

  • 綁定步驟之后,使用帶有加載庫(kù)和DBRM庫(kù)的IKJEFT01(再次)作為JCL的輸入運(yùn)行COBOL-DB2程序。

//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運(yùn)行的COBOL-DB2程序。請(qǐng)注意,程序名稱,DB2 Sub-System Id(SSID)和DB2 Plan Name是在SYSTSIN DD語(yǔ)句中傳遞。DBRM庫(kù)在STEPLIB中指定。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)