Skip to main content

Features and benefits

With the IBM OS/390 C/C++ compilers, you can produce high-performing OS/390-based applications, and give your customers optimum software business solutions.

Common C/C++ Compiler features
IBM OS/390 C/C++ provides the following features, common to both compilers:

1. OS/390 UNIX System Services (OS/390 UNIX) support, including the use of the OS/390 UNIX Hierarchical File System (HFS) for storage of compiler source and output. (OS/390 UNIX was formerly known as OpenEdition.) The OS/390 UNIX Shell and Utilities feature provides the c89 and cxx commands for invoking the OS/390 C/C++ compilers, the Language Environment Prelinker, and the system binder.

2. Coded character set (code page) support; the compiler can process C and C++ syntax characters (such as square brackets) regardless of which Latin-1 EBCDIC coded character set is used to create the source file.

3. DSECT Conversion Utility for converting descriptive data produced by the High Level Assembler licensed program into OS/390 C/C++ data structures, for OS/390 C/C++ programs that interface with assembler programs.

4. DLL support for generating Dynamic Link Libraries (DLLs) similar to the way Windows® DLLs are generated. DLLs allow a function call or a variable reference in one load module to use a definition located in another load module at run time. DLL support is also available in the OS/390 UNIX environment.

5. Full program reentrancy for OS/390 C/C++ programs.

6. Interlanguage calls between OS/390 C and OS/390 C++ programs, and between OS/390 C or OS/390 C++ programs and assembler, COBOL, PL/I or FORTRAN programs.

7. Language Environment preinitialized interface support for greater efficiencies when invoking a C or C++ program repeatedly from a PL/I or assembler program.

8. Longname support so external names can be mixed case and up to 1024 characters long.

9. Optimization of C and C++ code, using the OPT compiler option, in which the compiler changes unoptimized or inefficient code sequences. This includes such things as:

The compiler also performs both intraprocedural and interprocedural analysis. Intraprocedural analysis is a mechanism for performing optimization for each function in a compile unit, using only the information available for that function and compilation unit. Interprocedural analysis is a mechanism for performing optimization across function boundaries. You can invoke interprocedural analysis by using the IPA compiler option. It performs optimizations that are not otherwise available with the C/C++ compiler.

10. C/C++ support for the OS/390 UNIX environment, allowing application developers to use C or C++ to build OS/390 UNIX applications.

11. National Language Support to allow dynamic switching between English and Japanese messages.

The OS/390 C Compiler
In addition to the features common to OS/390 C and C++, the OS/390 C compiler provides you with the following capabilities:

1. System programming capabilities, which let you use z/OS C in place of assembler

2. Additional optimization capabilities through the INLINE compile-time option

3. Extensions of the standard definitions of the C language to provide programmers with support for the z/OS environment, such as fixed-point (packed) decimal data support

The OS/390 C++ Compiler
The OS/390 C++ compiler offers exception handling and template support consistent with the IBM VisualAge C++ family, including C and C++ Compilers for AIX V3.6.6. Exception handling coordinates program flow when unexpected error conditions occur so that they can be dealt with more effectively. Templates define families of related classes or functions. They can be used to construct individual classes or functions so code can be reused.

The OS/390 C++ compiler also offers the Name Demangler (CXXFILT utility), which provides a command-line and library function so that the mangled, or encoded symbolic names, generated by the compiler can be mapped to the original source.

C and C++ Industry Standards
When used with OS/390 UNIX Sytem Services and OS/390 Language Environment, the OS/390 C/C++ compilers provide support for the following standards at the system level:

The C/C++ compilers also provides locale-based internationalization support derived from the IEEE POSIX 1003.2-1992 standard and from the X/Open CAE Specification, System Interface Definitions, Issue 4 and Issue 4 Version 2.

The OS/390 C Compiler also allows you to write portable code conforming to the following standards:

The OS/390 C++ Compiler also provides an implementation based on the definition of the language contained in the Draft Proposal International Standard for Information Systems-Programming Language C++(X3J16/92-00091).

Documentation
The OS/390 C/C++ product offers references for the C and C++ compilers and utilities, the C/C++ library, the IBM Open Class Library, and the Debug Tool. Displayable BookManager (softcopy) versions of most publications are available on CD with the IBM Library Omnibus Edition: OS/390 Collection (SK2T-6700) and from a tape available with OS/390.

Versions History

OS/390 Version 2 Release 10 C/C++
The OS/390 V2R10 C/C++ Compilers are also an element of z/OS V1R1. For this release, OS/390 C/C++ includes the following performance and usability enhancements:

This release introduces the following new compiler option:

The IBM System Object Model (SOM) is no longer supported in the C++ compiler and the IBM Open Class Library. The SOM-enabled class library DLLs have been stabilized at the V2R9 level and continue to be shipped as a run-time environment only. You cannot use the V2R10 Compiler to build SOM applications.

The Model Tool is no longer available.

The option_override #pragma directive defines function-specific options that override those specified by the command line options when performing optimization for code and data in that subprogram. This enables finer control of program optimization. In V2R10 we add support for the COMPACT and SPILL options. The subprogram-specific SPILL option is not a new option, however, the maximum spill area size has been increased for this release to 1073741823 bytes or 230-1 bytes.

OS/390 Version 2 Release 9 C/C++
OS/390 Release 9 introduces the following compiler options and sub-options:

OS/390 C/C++ has also introduced the following #pragma directives:

For details on how to use these #pragma directives, see the chapter on Preprocessor Directives in the OS/390 C/C++ Language Reference.

OS/390 Version 2 Release 6 C/C++
The OS/390 V2R6 C/C++ Compilers are also an element of OS/390 V2R7 and OS/390 V2R8.

We have made the following enhancements and changes for OS/390 Release 6:

As part of the name change of OpenEdition to OS/390 UNIX System Services, occurrences of OpenEdition have been changed to OS/390 UNIX System Services or its abbreviated name, OS/390 UNIX, throughout the OS/390 C/C++ information library. OpenEdition may continue to appear in messages, panel text, and other code locations.

OS/390 Version 2 Release 4 C/C++
The OS/390 V2R4 C/C++ Compilers are also an element of OS/390 V2R5.

We have made the following enhancements for OS/390 Release 4:

OS/390 Version 2 Release 3 C/C++
We have made the following enhancements for OS/390 Release 3:

- Interprocedural Analysis using the IPA compile-time option is now available for C++ as well as C. This option instructs the compiler to collect information about all of the compilation units in your program, and perform optimizations across the program as a whole.Using the IPA option can improve the execution time of your C/C++ applications.
- The OPTIMIZE(2) compile-time option is now available for C++ as well as C. This option instructs the compiler to perform global optimizations to produce faster running code.
- All libraries in the IBM Open Class Library, excluding the cross-language SOM version of the Collection Class Library, are now thread-safe. This feature allows you to use the class libraries in a multi-threaded environment. Multi-threading offers you the advantages of multi-processing by scheduling tasks independently.
- In addition, the Application Support Class Library includes the following enhancements:

We're here to help

live-assistance

Easy ways to get the answers you need.


Or call us at:
877-426-3774
Priority code:
104CBW67