使用Cobol 5编译器编译Cobol 4

Tim*_*hée 4 cobol compilation zos mvs

我需要在z/OS UNIX上使用Cobol 4编译器编译Cobol源代码,但我只有Cobol 5编译器.有没有选项可以将Cobol 5限制为Cobol 4编译?我正在使用cob2命令,我在z/OS上安装了我的Cobol安装的IGY520.HFS PDS.我在IBM文档中搜索但没有找到任何内容.

csc*_*eid 5

不.我强烈建议您研究迁移指南以及有关迁移主题的任何SHARE演示文稿.

报告的最常见问题与旧编译器容忍的无效数据有关.引自汤姆罗斯的SHARE演示文稿上面链接...

77 A1 PIC X(4) VALUE ’00 0’.  *> x’F0F040F0’, third byte
                              *> has x’4’ for zone bits.
                              *> OK in PIC X, not valid in
                              *> PIC 9 USAGE DISPLAY

77 A2 REDEFINES A1 PIC 9(4).

PROCEDURE DIVISION.    
    IF A2 = ZERO              *> Compiler could do character
      DISPLAY ’ZERO‘          *> or numeric compare
    ELSE
      DISPLAY ’NOT ZERO‘
    END-IF
Run Code Online (Sandbox Code Playgroud)

程序显示"ZERO"还是"NOT ZERO"取决于您在COBOL V4及更早版本和COBOL V6中使用的编译器选项

还要注意打包数据的处理方式的差异,请参阅最近的这个问题.

NUMCHECK编译选项可以在这些情况下帮助您,但是建议编译选项在编译时无法检测到无效数据,它们只能生成代码以在运行时检测无效数据.