有很多可用于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)。
為了使用JCL在批處理模式下執(zhí)行COBOL程序,需要編譯程序,并使用所有子程序創(chuàng)建加載模塊。JCL在執(zhí)行時(shí)使用加載模塊而不是實(shí)際的程序。在使用JCLLIB或STEPLIB執(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ù)。
以下是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模塊。
對(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中指定。
更多建議: