I have a mix of COBOL and assembler programs. Do I need to change my assembler programs to be Language Environment enabled?
Can you run DOS/VS COBOL programs under Language Environment?
Yes. You can run programs compiled with DOS/VS COBOL under IBM Language Environment for VSE/ESA®. For migration information, see the IBM COBOL for VSE/ESA Migration Guide, GC26-8070.
Programs compiled with DOS/VS COBOL cannot run under Program Number 5688-198 (Language Environment).
Does Language Environment support both OS/VS COBOL LANGLVL(1) and LANGLVL(2) compiled programs?
Yes.
When one runs OS/VS COBOL in compatibility mode with Language Environment, are the runtime control blocks accessed the same way?
Yes. The pointers in the TGT and other control blocks can still be used to get to the control blocks for OS/VS COBOL.
However, with Enterprise COBOL, assembler programs cannot get the address of the TGT from R13.
With VS COBOL II, we have had errors where an output DD was misspelled and a temporary file was created. This causes problems when it occurs with a large file for a one-time program run. Is this still a concern with Enterprise COBOL?
No, for QSAM you can turn off automatic file creation with the Language Environment CBLQDA(OFF) runtime option.
When should you use the CMPR2 option?
The CMPR2/NOCMPR2 option is not available in Enterprise COBOL. Enterprise COBOL behaves as if NOCMPR2 were in effect at all times. Any programs that were compiled with CMPR2 with a previous compiler must be upgraded to the COBOL 1985 standard to compile with Enterprise COBOL.
Can you place Language Environment in LNKLST/LPALST?
Yes but it should be the only runtime library for COBOL that is in LNKLST/LPALST. You can place Language Environment in LNKLST or LPALST ahead of older COBOL runtime libraries, but the older ones would be unreachable.
Before placing Language Environment in LNKLST/LPALST, test all applications that might access the Language Environment library routines from the LNKLST/LPALST. The move to Language Environment should be staged in a controlled manner.
For more details, see Deciding how to phase Language Environment into production mode.
Can Language Environment coexist on a system with OS/VS COBOL and VS COBOL II?
Yes, but be aware of which library is needed and used for different applications. For example, if VS COBOL II is ahead of Language Environment in the concatenation and you recompile one program from a VS COBOL II application with Enterprise COBOL, that application will no longer run until Language Environment is ahead of the VS COBOL II runtime library in the concatenation. There are duplicate names between the different product libraries, so it is important to ensure that the correct library is being accessed.
For details, see Invoking existing applications.
Is it easier to convert from OS/VS COBOL to Enterprise COBOL or from OS/VS COBOL to VS COBOL II?
The source conversion effort is almost the same. Moving to the Language Environment run time is slightly more difficult if you have assembler programs that use SVC LINK or condition handling with OS/VS COBOL. Because most of time is spent testing, the two different conversion paths are approximately the same.
Is the signature area of Enterprise COBOL programs the same as for OS/VS COBOL and VS COBOL II?
No, but a map of the signature area is in the Enterprise COBOL Programming Guide and can be used to find out what compiler options were used to compile the module, when it was compiled, release level, and so on.