环境设置( Environment Setup)
Try it Option Online
我们在线设置了COBOL编程环境,以便您可以在线编译和执行所有可用的示例。 它让您对正在阅读的内容充满信心,并使您能够使用不同的选项验证程序。 随意修改任何示例并在线执行。
使用CodingGround提供的在线编译器尝试以下示例
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. PROCEDURE DIVISION. DISPLAY 'Hello World'. STOP RUN.
对于本教程中给出的大多数示例,您可以在右上角的网站代码部分找到Try it选项,它将带您进入在线编译器。 所以,只要利用它,享受你的学习。
在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
除了最新的64位z/Architecture之外,Hercules还是大型机System/370和ESA/390架构的开源软件实现。 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指示编译器在程序中使用相对寻址模式。 使用SYSIN参数传递COBOL程序。 Copybook是SYSLIB中程序使用的库。
执行COBOL程序
下面给出了一个JCL示例,其中使用输入文件MYDATA.URMI.INPUT执行程序MYPROG并生成写入假脱机的两个输出文件。
//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子系统标识(SSID)和DB2计划名称在SYSTSIN DD语句中传递。 DBRM库在STEPLIB中指定。