现在的位置: 首页 > 综合 > 正文

COBOL学习之一:HELLO WORLD 的编译与运行

2013年02月01日 ⁄ 综合 ⁄ 共 1958字 ⁄ 字号 评论关闭

一、第一个HELLO WORLD

程序写好了,很简单,问题就在如何用JCL去提交编译COBOL程序。出现了N多错误。。

1

又写了个JCL,提交了下:

2

这次比上次好多了,至少,JCL没有错误。找了下,问题在这里:

3

意思应该是条件句导致部分JCL没有执行。看看代码

4

CON注释掉,试试,还有错误:

5

问了老师,大悟,原来意思是,处理COBOLLKED时出现错误,?分类查看(给忘了。。。)

 

6

错误就在这两个里面了,进去揪出来!

7

这里,COBOL的分列到底是如何规定的?(这个问题一定要搞清楚)

经过几番修改,语法错误终于没有了。一个小小的HELLO WORLD竟然出现这么多错误,真晕。 DISPLAY 写成 DISPLSY。。。看来,写程序还要认真。

8

到此,成功编译!下面,探讨如何执行COBOL生成的LOAD

CN0003.COBOL.LOAD下面,看看HELLO 生成的LOAD

9

OK!和老师看到的结果一样。

总结下前面的代码:

DATALIST如下:

10

编译COBOLJCL

//CN0003E JOB (CBLCL),'B.C.L',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),

//        NOTIFY=&SYSUID

//*****************************************************************

//*  JOB TO COMPILE AND LINK-EDIT COBOL PROGRAM

//*****************************************************************

//COBOL  EXEC  PGM=IGYCRCTL,REGION=2048K

//STEPLIB  DD  DSNAME=COBOL.V3R1.SIGYCOMP,

//             DISP=SHR

//SYSPRINT DD  SYSOUT=*

//SYSLIN   DD  DSNAME=&&LOADSET,UNIT=SYSDA,

//             DISP=(MOD,PASS),SPACE=(TRK,(3,3)),

//             DCB=(BLKSIZE=3200)

//SYSIN    DD  DSN=CN0003.COBOL.SOURCE(HELLO),DISP=SHR

//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(1,1))

//SYSUT2   DD  UNIT=SYSDA,SPACE=(CYL,(1,1))

//SYSUT3   DD  UNIT=SYSDA,SPACE=(CYL,(1,1))

//SYSUT4   DD  UNIT=SYSDA,SPACE=(CYL,(1,1))

//SYSUT5   DD  UNIT=SYSDA,SPACE=(CYL,(1,1))

//SYSUT6   DD  UNIT=SYSDA,SPACE=(CYL,(1,1))

//SYSUT7   DD  UNIT=SYSDA,SPACE=(CYL,(1,1))

//*LKED   EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1024K

//LKED    EXEC PGM=HEWL,REGION=1024K

//SYSLIB   DD  DSNAME=CEE.SCEELKED,

//             DISP=SHR

//SYSPRINT DD  SYSOUT=*

//SYSLIN   DD  DSNAME=&&LOADSET,DISP=(OLD,DELETE)

//         DD  DDNAME=SYSIN

//SYSLMOD  DD  DSNAME=CN0003.COBOL.LOAD,

//             SPACE=(TRK,(10,10,1)),

//             UNIT=SYSDA,DISP=(MOD,PASS)

//SYSUT1   DD  UNIT=SYSDA,SPACE=(TRK,(10,10))

//LKED.SYSIN   DD *

  NAME HELLO(R)

/*

//

//GOCOBOL  EXEC PGM=HELLO

//STEPLIB  DD DSN=CN0003.COBOL.LOAD,DISP=SHR

//

老师提供的JCL,修改了多次。。。

老师一看到我的COBOL程序就说,写错了。。。汗。。修改了下,格式贴上来

11

PROCEDURE DIVISION的语句,好像是不可以顶齐PROCEDURE 写,会出错。。。

 

 

二、执行编译好的COBOL程序

执行编译好的COBOL程序,需要写一个JCL来调用生成的LOAD文件:

12

SUB,提交:

13

程序运行结果自然在SYSOUT中,S进去,看到了期待已久的结果:

 

14

到此,结束!

Oh Yeah

 

抱歉!评论已关闭.