我需要在z/OS UNIX上使用Cobol 4编译器编译Cobol源代码,但我只有Cobol 5编译器。是否有选项可以将Cobol 5限制为Cobol 4编译?我正在使用cob2命令,它被挂载到我在z/OS上安装的Cobol的IGY520.HFS PDS中。我在IBM文档中搜索了一下,但没有找到任何相关信息。
我需要在z/OS UNIX上使用Cobol 4编译器编译Cobol源代码,但我只有Cobol 5编译器。是否有选项可以将Cobol 5限制为Cobol 4编译?我正在使用cob2命令,它被挂载到我在z/OS上安装的Cobol的IGY520.HFS PDS中。我在IBM文档中搜索了一下,但没有找到任何相关信息。
不需要。我强烈建议您阅读迁移指南,以及关于迁移主题的任何 SHARE演示文稿,遗憾的是SHARE不再向非会员提供他们出色的内容。
最常报告的问题与旧编译器容忍的无效数据有关。引用Tom Ross的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
Whether the program displays ‘ZERO’ or ‘NOT ZERO’ depends on the compiler options you use in COBOL V4 and earlier and in COBOL V6
请注意,压缩数据处理方式的差异,参见这个最近的问题。
NUMCHECK编译选项可以帮助您解决这些情况,但请注意,编译选项无法在编译时检测无效数据,它们只能生成代码以在运行时检测无效数据。