语言元素
下表列出了 Enterprise COBOL 与 COBOL for Linux® on x86 编译器 之间不同的语言元素,并在可能的情况下提供有关如何处理 COBOL for Linux on x86 程序中的此类差异的建议。
在 Enterprise COBOL 中有效的许多 COBOL 子句和短语是经过语法检查的,但不会影响 COBOL for Linux on x86 程序的执行。 这些子句和短语应该对您下载的现有应用程序影响最小。 COBOL for Linux on x86 识别大多数 Enterprise COBOL 语言语法,即使该语法没有功能影响也是如此。
| 语言元素 | COBOL for Linux on x86 实现或限制 |
|---|---|
ACCEPT statement |
如果 Enterprise COBOL 程序期望 ddname 作为 ACCEPT 语句的目标,请使用值设置为相应文件名的等效环境变量来定义这些目标。 在 COBOL for Linux on x86中, environment-name 和关联的环境变量值 (如果设置) 确定文件标识。 |
APPLY WRITE-ONLY 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
ASSIGN 子句 |
COBOL for Linux on x86 使用不同的语法并基于 assignment-name映射到系统文件名。 ASSIGN. .
.USING data-name 在 Enterprise COBOL 中不受支持。 |
BLOCK CONTAINS 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
CALL statement |
在 COBOL for Linux on x86中不支持文件名作为 CALL 参数。 |
CLOSE statement |
以下短语是 COBOL for Linux on x86中的 语法已检查,但对程序的执行没有影响 : FOR REMOVAL, WITH NO REWIND和 UNIT/REEL。 避免在计划可移植的程序中使用这些短语。 |
CODE-SET 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
DATA RECORDS 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
DISPLAY statement |
如果 Enterprise COBOL 程序期望 ddname 作为 DISPLAY 语句的目标,请使用值设置为相应文件名的等效环境变量来定义这些目标。 在 COBOL for Linux on x86中, environment-name 和关联的环境变量值 (如果设置) 确定文件标识。 |
DYNAMIC LENGTH 子句 |
COBOL for Linux on x86中当前不支持动态长度基本项。 |
| 文件状态 data-name-1 | 文件状态 9x 的某些值和含义在 Enterprise COBOL 中与在 COBOL for Linux on x86中不同。 |
| 文件状态 data-name-8 | 格式和值因平台和文件系统而异。 |
INDEX 数据项 |
在 Enterprise COBOL 中, INDEX 数据项隐式定义为 4 字节。 在使用 ADDR(32)编译的 COBOL for Linux on x86 程序中,其大小为 4 字节; 使用 ADDR(64)时,其大小为 8 字节。 |
INVOKE 语句 |
COBOL for Linux on x86 不支持编写面向对象的程序,创建 COBOL 或 Java 类的对象实例或调用 COBOL 或 Java 类中定义的方法。 |
JSON GENERATE 和 JSON PARSE 语句 |
在 COBOL for Linux on x86中当前不支持 JSON。 |
LABEL RECORDS 子句 |
短语 LABEL RECORD IS 数据名, USE. . .AFTER. . .LABEL PROCEDURE和 GO TO
MORE-LABELS 在 COBOL for Linux on x86中为 语法已检查,但对程序的执行没有影响 。 如果使用这些短语中的任何一个,那么将发出警告。 在运行时不会调用用户标签声明。 无法移植依赖于 z/OS® QSAM 支持的用户标签处理的程序。 |
MULTIPLE FILE TAPE |
COBOL for Linux on x86中的 已检查语法,但对程序的执行没有影响 。 在 Linux 工作站上,所有文件都被视为单卷文件。 |
OBJECT REFERENCE 数据项 |
OBJECT REFERENCE 数据项在 COBOL for Linux on x86中不受支持。 |
OPEN statement |
以下短语是 COBOL for Linux on x86中的 语法已检查,但对程序的执行没有影响 : REVERSED 和 WITH NO REWIND。 |
PASSWORD 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
POINTER, PROCEDURE-POINTER和 FUNCTION-POINTER 数据项 |
在 Enterprise COBOL 中, POINTER 和 FUNCTION-POINTER 数据项隐式定义为 4 字节,因为 是 专用寄存器 ADDRESS OF; PROCEDURE-POINTER 数据项隐式定义为 8 字节。 在使用 ADDR(32)编译的 COBOL for Linux on x86 程序中,每个项的大小为 4 字节; 使用 ADDR(64)时,其大小为 8 字节。 |
READ. . .PREVIOUS |
仅在 COBOL for Linux on x86 中,允许您以 DYNAMIC 访问方式读取相对或索引文件的先前记录 |
RECORD CONTAINS 子句 |
接受 RECORD CONTAINS N CHARACTERS 子句,但有一个例外: RECORD CONTAINS 0
CHARACTERS 在 COBOL for Linux on x86中为 语法已检查,但对程序的执行没有影响 。 |
RECORDING MODE 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 表示相对文件,已建立索引的文件和行顺序文件。 RECORDING
MODE U 已检查 语法,但对顺序文件的程序 的执行没有任何影响。 |
RERUN 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
RESERVE 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
SAME AREA 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
SAME SORT 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
SHIFT-IN, SHIFT-OUT 专用寄存器 |
如果 COBOL for Linux on x86 编译器迂到这些寄存器,那么它将发出 E 级消息,除非 CHAR(EBCDIC) 编译器选项生效。 |
SORT-CONTROL 专用寄存器 |
此专用寄存器的 隐式定义和 内容在主机和工作站 COBOL 之间有所不同。 |
SORT-CORE-SIZE 专用寄存器 |
此专用寄存器的内容在主机和工作站 COBOL 之间有所不同。 |
SORT-FILE-SIZE 专用寄存器 |
COBOL for Linux on x86中的 已检查语法,但对程序的执行没有影响 。 不使用此专用寄存器中的值。 |
SORT-MESSAGE 专用寄存器 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
SORT-MODE-SIZE 专用寄存器 |
COBOL for Linux on x86中的 已检查语法,但对程序的执行没有影响 。 不使用此专用寄存器中的值。 |
SORT MERGE AREA 子句 |
COBOL for Linux on x86 中的 已检查语法,但对程序的执行没有影响 |
START. . . |
在 COBOL for Linux on x86中,允许以下关系运算符: IS LESS THAN, IS <, IS NOT
GREATER THAN, IS NOT >, IS LESS THAN OR EQUAL TO和 IS <=。 |
STOP RUN |
在 COBOL for Linux on x86 多线程程序中不受支持; 可在多线程程序中替换为对 C exit () 函数的调用 |
USAGE 子句和 "U" PICTURE 符号的 UTF-8 短语 |
UTF-8 数据类和 UTF-8 数据类别当前在 COBOL for Linux on x86中不受支持。 |
WRITE statement |
在 COBOL for Linux on x86中,如果使用环境名称 C01 到 C12 或 S01 到 S05来指定 WRITE. .
.ADVANCING ,那么将高级一行。 |
XML PARSE statement |
在使用仅主机选项 XMLPARSE(XMLSS)编译的 Enterprise COBOL 程序中,可用于名称空间处理的其他语法 ( ENCODING 短语和 RETURNING NATIONAL 短语) 和专用寄存器不可用于 COBOL for Linux on x86。 |
| 平台环境已知的名称 | 以下名称以不同方式标识: program-name, text-name, library-name, assignment-name, SORT-CONTROL 专用寄存器中的文件名, 基底名称, DISPLAY 或 ACCEPT 目标标识以及依赖于系统的名称。 |