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