📜  COBOL-环境设置

📅  最后修改于: 2020-11-22 16:41:35             🧑  作者: Mango


在线试用

我们已经在线设置了COBOL编程环境,因此您可以在线编译和执行所有可用的示例。它使您对正在阅读的内容充满信心,并可以使用不同的选项来验证程序。随意修改任何示例并在线执行。

使用CodingGround上的在线编译器尝试以下示例

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程序的各种命令的完整指南:

    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在执行时使用装入模块,而不使用实际程序。在执行时,使用JCLLIBSTEPLIB将负载库连接起来并提供给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(再次)以加载库和DBRM库作为JCL的输入来运行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运行的COBOL-DB2程序。请注意,程序名称,DB2子系统ID(SSID)和DB2计划名称在SYSTSIN DD语句中传递。 DBRM库在STEPLIB中指定。