- Optimization support:
- Extra Performance Linkage (XPLINK) function calling convention,
which has the potential for a significant performance increase when
used in an environment of frequent calls between small functions.
XPLINK makes subroutine calls more efficient by removing non-essential
instructions from the main path.
- Algorithms to take advantage of the IBM® System z® architecture to achieve improved
optimization and memory usage through the OPTIMIZE and IPA compiler
options.
- The OPTIMIZE compiler option, which instructs the compiler to
optimize the machine instructions it generates to try to produce faster-running
object code and improve application performance at run time.
- Interprocedural Analysis (IPA), to perform optimizations across
procedural and compilation unit boundaries, thereby optimizing application
performance at run time.
- Additional optimization capabilities are available with the INLINE
compiler option.
- DLLs (dynamic link libraries) to share parts among applications
or parts of applications, and dynamically link to exported variables
and functions at run time.
DLLs allow a function reference or
a variable reference in one executable to use a definition located
in another executable at run time.
You can use DLLs to split
applications into smaller modules and improve system memory usage.
DLLs also offer more flexibility for building, packaging, and redistributing
applications.
- Full program reentrancy
With reentrancy, many users can simultaneously
run a program. A reentrant program uses less storage if it is stored
in the Link Pack Area (LPA) or the Extended Link Pack Area (ELPA)
and simultaneously run by multiple users. It also reduces processor
I/O when the program starts up, and improves program performance by
reducing the transfer of data to auxiliary storage. z/OS® XL C programmers
can design programs that are naturally reentrant. For those programs
that are not naturally reentrant, z/OS XL C programmers
can use constructed reentrancy. To do this, compile programs with
the RENT option and use the program management binder supplied
with z/OS or
the Language Environment prelinker
and program management binder. The z/OS XL C++ compiler always uses
the constructed reentrancy algorithms.
- Locale-based globalization support derived from IEEE POSIX
1003.2-1992 standard. Also derived from X/Open CAE Specification,
System Interface Definitions, Issue 4 and Issue 4 Version
2. This allows you to use locales to specify language/country
characteristics for their applications.
- The ability to call and be called by other languages such as assembler,
COBOL, PL/1, compiled Java™,
and Fortran, to enable you to integrate z/OS XL C/C++ code
with existing applications.
- Exploitation of z/OS and z/OS UNIX System
Services technology.
z/OS UNIX System Services is the IBM implementation of the open operating
system environment, as defined in the XPG4 and POSIX standards.
- Support features in the following standards at the system level:
- ISO/IEC 9899:1999
- ISO/IEC 9945-1:1990 (POSIX-1)/IEEE POSIX 1003.1-1990
- The core features of IEEE POSIX 1003.1a, Draft 6, July 1991
- IEEE Portable Operating System Interface (POSIX) Part 2,
P1003.2
- The core features of IEEE POSIX 1003.4a, Draft 6, February
1992 (the IEEE POSIX committee has renumbered POSIX.4a to POSIX.1c)
- X/Open CAE Specification, System Interfaces and Headers,
Issue 4 Version 2
- The core features of IEEE 754-1985 (R1990) IEEE Standard
for Binary Floating-Point Arithmetic (ANSI), as applicable
to the IBM System z environment.
- X/Open CAE Specification, Networking Services, Issue 4
- A subset of IEEE Std. 1003.1-2001 (Single UNIX Specification, Version 3)
- A subset of ISO/IEC 9899:2011
- Support for the Euro currency