HP C for OpenVMS
HP C for OpenVMS
— control optional messages using a single numeric
"importance level"
— control optional messages using functional groups
• Compiler-generated listing file including optional:
— Annotations that provide information about cer-
tain optimizations that were performed or not per-
formed (Alpha and I64 only)
— Source Code
— Include-file contents
— Machine code
— Macro expansion
— Compilation statistics
— Symbol table with attributes of source program
identifiers
— Symbol cross reference, showing for each sym-
bol the source lines where it is defined or used,
annotated with type of use
• Built-in functions allow access to a subset of VAX,
Alpha, and I64 machine instructions. HP C Open-
VMS Alpha inline-assembly code is also supported
giving access to all Alpha machine-code instructions
and PAL calls.
• Integration into the OpenVMS Common Language
Environments:
— Generation of complete debug and traceback
records for Debug support
— Conformance to the Calling Standard
— Access to the Common Run-Time Library for
general purpose routines and support of multi-
language environments
— Access to the data management facilities of Open-
VMS Record Management Services (RMS) by di-
rect calls to the Common Run-Time Library
— Support for providing error diagnostics to the HP
Language-Sensitive Editor and cross-reference
information for the HP Source Code Analyzer
— Support for Common Data Dictionary (CDD)
— HP C OpenVMS support for interaction with rou-
tines executing in translated mode. On OpenVMS
Alpha, native Alpha images can link against and
interoperate with images translated from Open-
VMS VAX. On OpenVMS I64, native I64 images
can link against and interoperate with images
translated from OpenVMS Alpha (including Alpha
images translated from OpenVMS VAX).
• Extensive global and local optimizations of generated
code for increased performance under OpenVMS
• Extensive control over optimization behavior
• Interface to the curses screen-manipulation package
• Installation kit cooperates with HP C++.
Compatibility with Other C Implementations
HP C is a conforming hosted implementation of
ANSI X3.159-1989 Programming Language C (ISO/IEC
9899:1990[1994]). Its VAXC, common C, and Microsoft
C compatibility modes provide many features to ease
porting from other environments, though they do not
provide 100% emulation of every feature of a particular
version of the compilers used in those environments.
In addition, the relaxed ANSI mode accepts all features
from the currently-supported standard (C99 for Open-
VMS Alpha and OpenVMS I64, C89 for OpenVMS VAX)
and also accepts a number of features present in those
special dialects that do not conflict with the standard,
as well as features from the GNU C compiler (gcc) that
are sometimes used in Open Source applications and
header files on the Linux platform (e.g. the _ _typeof_ _
operator).
While many programs written in C for other compilers
can be successfully recompiled under HP C, some in-
compatibilities among implementations exist.
Run-Time Library for C Applications
With the exception of OpenVMS VAX Operating Sys-
tems prior to V6.1, the complete HP C Run-Time Library
that is needed for use with HP C is distributed with the
OpenVMS Operating Systems. The HP C Run-Time
Library provides routines to perform input/output, char-
acter and string handling, mathematical computations,
memory allocation, and emulation of selected UNIX[R]
features. These routines are provided both in shared
image and object module library form.
Run-time Library Redistribution
The HP C kit may include run-time library components in
either shareable image or object library form. HP grants
the user a nonexclusive royalty-free worldwide right to
reproduce and distribute these Run-Time Libraries ("the
RTLs") provided that the user:
• distributes the RTLs only in conjunction with and as a
part of the user’s software application product, which
is designed to operate in the OpenVMS environment;
• does not use HP’s name, logo, or trademarks to mar-
ket the user’s software application product;
• includes HP’s copyright notice for HP C on one of
the following:
— the user’s product disk label
— each copy of the application
3