开发手册 欢迎您!
软件开发者资料库

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程序的各种命令at:

    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示例,其中程序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程序,一个专门的IBM实用程序用于JCL和程序; DB2区域和必需参数作为输入传递给实用程序.

运行COBOL-DB2程序所遵循的步骤如下 :

  • 编译COBOL-DB2程序时,会与加载模块一起创建DBRM(数据库请求模块). DBRM包含COBOL程序的SQL语句,其语法检查正确.

  • DBRM绑定到DB2区域(环境),其中COBOL将运行.这可以使用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中指定.