HP C originates from the C language designed in
1972 by Dennis Ritchie at Bell Laboratories. It descended from several
ALGOL-like languages, most notably BCPL and a language developed
by Ken Thompson called B.
Work on a standard for C began in 1983. The Draft Proposed American National Standard for Information-SystemsProgramming Language C
was completed and was approved by the Technical Committee X3J11
on the C Programming Language in September, 1988. It was forwarded
to X3, the American National Standards Committee on Computers and
Information Processing, early in 1989. It became an American National
Standard in December, 1989.
C has been called a "low-level, high-level" programming language.
C's operators and data types closely match those found in modern
computers. The language is concise and C compilers produce highly
efficient code. C has traditionally been used for systems programming,
but it is being used increasingly for general applications.
The most important feature that C provides is portability.
In addition, C provides many facilities such as useful data types,
including pointers and strings, and a functional set of data structures,
operators, and control statements.
The creation of an ANSI standard for C raises the question
of compatibility with preexisting implementations of the language.
For the most part, the committee that developed the standard adopted
the goal of codifying existing practice, rather than introducing
new language features that had never been tried. They went to great
lengths to minimize changes which would "break" existing programs.
Many programs will compile and execute properly in an ANSI
C environment with no changes. In the vast majority of cases where
a change is required, the offending construct will be identified
by a warning or error message produced by the compiler. In a few
cases, which are believed to be rare in actual practice, certain
program constructs will be accepted but will behave differently
under ANSI C. HP C/HP-UX is capable of producing migration warnings
to help identify code where such "quiet changes" would occur.