COBOL环境安装 - COBOL教程

在Windows/Linux上安装COBOL

有适用于Windows,很多免费的主机模拟器可用于书写和学习简单的COBOL程序。

一个这样的仿真器,可以按照下面给出几个简单的步骤,很容易地安装在Windows中:

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

  1. 下载并安装Hercules模拟器,它可以从Hercules“主页- :www.hercules-390.eu

  2. 一旦在Windows机器上安装包,它会创建这样一个文件夹 C:/hercules/mvs/cobol.

  3. 运行命令提示符(CMD),进入目录C:/hercules/mvs/cobol on CMD.

  4. 对各种命令编写和执行JCL与COBOL程序的完整指南可在网址上找到

Hercules是一个开源软件实现主机System/370 和ESA/390 架构,除了最新的64位Z/架构。Hercules可以在Linux,Windows,Solaris和FreeBSD和Mac OS X上运行

用户可以连接到主机服务器,使用的方法有很多,例如瘦客户端,虚拟终端,虚拟客户端系统(VCS)或虚拟桌面系统(VDS)。每个有效用户提供的登录ID进入到Z/OS界面(TSO/ E或ISPF)。

编译COBOL程序

为了执行使用JCL在批处理模式下的COBOL程序,该程序需要编译和负载模块与所有的子程序创建。JCL使用加载模块,而不是实际程序在执行时。负载库连接起来,并提供给JCL在使用JCLLIB或STEPLIB执行的时候。

有许多可用的编译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参数传递和复写簿使用由在SYSLIB程序库提供。

执行COBOL程序

下面,说明使用该输入文件MYDATA.URMI.INPUT执行该程序MYPROG并产生写入卷轴两个输出文件的JCL例子。

//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 程序,IBM的专业工具被用在JCL程序; DB2区域和所需的参数作为输入传递给该实用程序。

运行的COBOL-DB2程序的步骤如下面:

  • 当一个COBOL-DB2程序被编译一个DBRM(数据库请求模块)一起装入模块创建的。该DBRM包含了COBOL程序的SQL语句的语法正确检查。

  • DBRM绑定到DB2的区域(环境),其中COBOL运行。这可以通过使用IKJEFT01实用的JCL来完成。

  • 绑定步骤之后,COBOL-DB2 程序正在使用IKJEFT01(再次)与负载库和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。