Advantages of the Enterprise COBOL for z/OS compilers and z/OS Language Environment runtime

The Enterprise COBOL compiler and Language Environment® run time provide additional functions over OS/VS COBOL, VS COBOL II, and IBM® COBOL. Table 1 lists the advantages of the new compiler and run time and indicates whether they apply to VS COBOL II, OS/VS COBOL, IBM COBOL, or all three.
Table 1. Advantages of Enterprise COBOL and Language Environment
Advantage Notes Advantage over
OS/VS COBOL VS COBOL II IBM COBOL
XML support Enterprise COBOL provides new statements for parsing and generating XML documents. These statements allow programs to transform XML content into COBOL data structures and COBOL data structures into XML documents. X X X
Java™ interoperation Enterprise COBOL includes object-oriented COBOL syntax that enables COBOL to interoperate with Java. This Java interoperation is also supported under IMS. X X X
Support to run in multiple threads Enterprise COBOL has a toleration level of support for POSIX threads and signals. With Enterprise COBOL, an application can contain COBOL programs running on multiple threads within a process. X X X
Support for Unicode The COBOL Unicode support uses the product z/OS Support for Unicode. X X X
Improved Db2® function Enterprise COBOL includes support for Db2 stored procedures. X X  
Support for the Db2 coprocessor X X *
Improved CICS® function Enterprise COBOL includes CALL statement support (for faster CICS performance than when using EXEC CICS LINK) and eliminates the need for user-coded BLL cells. X    
Increased WORKING-STORAGE space for DATA(24) and DATA(31) programs. For DATA(31), the limit is 2 GB. For DATA(24), the limit is the available space below the 16-MB line. X X X
Support for the Integrated CICS translator X X *
JSON support In Enterprise COBOL V6.1, support for generation of JSON texts

Starting in Enterprise COBOL V6.2, support for both generation and parsing of JSON texts

X X X
Usability enhancements These enhancements include:
  • Large literals in VALUE clauses on COMP-5 items or BINARY items with TRUNC(BIN)
  • Function-pointer data type
  • Arguments specifying ADDRESS OF
X X X
COBOL language improvements Ability to perform math and financial functions in COBOL, using Intrinsic Functions. You can replace current routines written in FORTRAN or C with native COBOL code, thus simplifying your application logic. X X  
Above-the-line support Virtual Storage Constraint Relief (VSCR) allows your programs to reside, compile, and access programs below or above the 16-MB line. X    
QSAM buffers can be above the 16-MB line for optimal support of DFSMS and data striping. X X  
COBOL EXTERNAL data can now be above the line. N/A X  
31-digit support Enterprise COBOL added support for numbers up to 31 digits when the ARITH(EXTEND) option is used. X X *
z/OS® UNIX system services support The cob2 command can be used to compile and link COBOL programs in the z/OS UNIX shell. COBOL programs can call most of the C language functions defined in the POSIX standard. X X  
Error recovery options Programmers now have the ability to have application-specific error-handling routines intercept program interrupts, abends, and other software-generated conditions for error recovery. This is done using Enterprise COBOL programs with Language Environment callable services to register the user-written condition handlers. Language Environment handles all condition management. X X  
High-precision math routines Using Language Environment callable services, your programs can return the most accurate results. X X  
Support for multiple MVS tasks RES applications can now execute independently under multiple MVS tasks. (For example, running two Enterprise COBOL programs at the same time from ISPF split screens.) X X  
Performance Faster arithmetic computations X    
Faster dynamic and static CALL statements   X  
Improved performance of variable-length MOVEs   X  
Faster CICS performance if using the Language Environment CBLPSHPOP runtime option to prevent PUSH HANDLE and POP HANDLE for CALL statements. X    
Improved performance for programs compiled with TRUNC(BIN). COBOL for OS/390® & VM Release 2 added support to generate more efficient code when the TRUNC(BIN) compiler option is used. N/A X  
Improved ILC With the common Language Environment library, ILC is improved between COBOL and other Language Environment-conforming languages. For example, interlanguage calls between COBOL and other languages are faster under Language Environment, because there is significantly less overhead for each CALL statement. Additionally, under CICS, you can use the CALL statement to call PL/I or C programs in place of EXEC CICS LINK. X X  
Character manipulation Improved bit and character manipulation using hex literals. Improved flexibility with character manipulation using reference modification X    
Top-down modular program development Support for top-down modular program development through nesting of programs and improved CALL and COPY functions X    
Structured Programming Support Support for structured programming coding through:
  • Inline PERFORM statements
  • The CONTINUE place-holder statement
  • The EVALUATE statement
  • Explicit scope terminators (for example: END-IF, END-PERFORM, END-READ)
X    
85 COBOL Standard conformance Support for 85 COBOL Standard X    
Support for Amendment 1 (Intrinsic Functions Module) of 85 COBOL Standard X X  
Subsystem support Improved support for IMS, ISPF, DFSORT, Db2, WAS X    
Support for reentrancy All OS/VS COBOL programs are nonreentrant. Only reentrant programs can be loaded into shared storage (LPA or Shared Segments). X    
Support for Debug Tool Debug Tool provides the following benefits:
  • Interactive debugging of CICS and non-CICS applications
  • Interactive debugging of batch applications
  • Full-screen debugging for CICS and non-CICS applications
  • Debugging of mixed languages in the same debug session
  • Ability to debug programs that run on the host
  • Working in conjunction with IBM Developer for z/OS, the ability to debug host programs from the workstation using a graphical user interface
X X  
For COBOL for OS/390 & VM and later programs only:
  • Dynamic Debug feature which allows COBOL programs compiled without hooks to be debugged.
X X  
For Enterprise COBOL Version 4 or later programs:
  • Compiler TEST suboption EJPD enables predictable GOTO/JUMPTO in programs also compiled with a non-zero OPTIMIZE level.
    Note: Unpredictable GOTO/JUMPTO in programs compiled with a non-zero OPTIMIZE level and TEST(NOJEPD) is available with the Debug Tool SET WARNING OFF command.
X X X
Runtime options ABTERMENC and TERMTHDACT- allow you to control error behavior. X X  
CBLQDA - allows you to control dynamic allocation of QSAM files.   X  
LANGUAGE - allows you to change language of runtime error messages. X    
RPTSTG - allows you to obtain storage usage reports. X    
Storage options - allow you to control where storage is obtained and the amount of storage used. X X  
Compiler options for Enterprise COBOL 5 and 6 There have been many changes to compiler options and suboptions for Enterprise COBOL 5 and 6. For details about those changes, see Compiler option changes in Enterprise COBOL 5 and 6. X X X
Compiler options for Enterprise COBOL Version 4 The following compiler options are available to Enterprise COBOL Version 4 programs and later programs only:
  • XMLPARSE - controls whether the z/OS XML System Services parser or the existing COBOL parser is used for XML PARSE statements. With the XMLPARSE(COMPAT) option, XML parsing is compatible with Enterprise COBOL Version 3. With the XMLPARSE(XMLSS) options, the z/OS System Services parser is used and new XML parsing capabilities are enabled.
    Note: The XMLPARSE option was originally removed in Enterprise COBOL V5.1, but was restored to V5.1 via service and is included in 5.2 and 6.
  • OPTFILE - controls whether compiler options are read from a data set specified in a SYSOPTF DD statement.
  • SQLCCSID - controls coordination of the coded character set ID (CCSID) between COBOL and Db2.
  • BLOCK0 - activates an implicit BLOCK CONTAINS 0 clause for all eligible QSAM files in a program.
  • MSGEXIT - The MSGEXIT suboption of the EXIT compiler option provides a facility for customizing compiler messages (changing their severity or suppressing them), including FIPS (FLAGSTD) messages.
X X X
Compiler options for Enterprise COBOL Version 3 The following compiler options are available to Enterprise COBOL Version 3 and later programs only:
  • CICS - enables the integrated CICS translator capability and specifies CICS options. NOCICS is the default.
  • CODEPAGE - specifies the code page used for encoding contents of alphanumeric and DBCS data items at run time as well as alphanumeric, national, and DBCS literals in a COBOL source program.
  • MDECK(COMPILE, NOCOMPILE) - controls whether output from library processing is written to a file and whether compilation continues normally after library processing and the generation of the output file.
  • NSYMBOL(NATIONAL, DBCS) - controls the interpretation of the "N" symbol used in literals and picture clauses, indicating whether national or DBCS processing is assumed.
  • THREAD - indicates that the COBOL program is to be enabled for execution in a Language Environment enclave with multiple POSIX threads or PL/I tasks. The default is NOTHREAD.
X X X
Compiler options for COBOL for OS/390 & VM The following compiler options are available to COBOL for OS/390 & VM and later programs only:
  • DLL - enables the compiler to generate an object module that is enabled for Dynamic Link Library (DLL) support.
  • EXPORTALL - instructs the compiler to automatically export certain symbols when the object deck is link-edited to form a DLL.
X X  
Compiler options for COBOL for MVS & VM The following compiler options are available to COBOL for MVS & VM and later programs:
  • CURRENCY - allows you to define a default currency symbol for COBOL programs.
  • OPTIMIZE(FULL) - OPTIMIZE with the new suboption of FULL optimizes object programs and provides improved runtime performance over both the OS/VS COBOL and VS COBOL II OPTIMIZE options. The compiler discards unused data items and does not generate code for any VALUE clauses for the discarded data items.
  • PGMNAME(COMPAT,LONGUPPER,LONGMIXED) controls the handling of program names in relation to length and case.
  • RMODE(AUTO,24,ANY) - allows NORENT programs to reside above the 16-MB line.
X X  
* The integrated Db2 coprocessor, integrated CICS translator, and 31-digit support were added as new features to COBOL for OS/390 & VM, Version 2 Release 2.