HPlogo HP C++ Programmer's Guide: HP 9000 Series Workstations and Servers > Chapter 1 Overview of HP C++

History of C++

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

C++ is a general-purpose programming language designed at AT&T Bell Laboratories and licensed through USL.

Based on the C programming language, C++ was designed to be used in a C programming environment on a UNIX system. C++ retains most of C's efficiency and flexibility, incorporates all the features of C, and also supports features that are unavailable in the C language. Many of the added features were designed to support object-oriented programming.

Dr. Bjarne Stroustrup, author of The C++ Programming Language, designed most of the new language, with additional contributions from Brian Kernighan and other Bell Labs staff. In undertaking the project, Stroustrup borrowed successful features from other older languages. As a result, C++ incorporates the concepts of classes and virtual functions from Simula67. C++ borrows the idea of operator overloading from Algol 68. These features are an important part of the support that C++ provides for object-oriented programming.

Early versions of the language were collectively known as "C with Classes" and lacked many details that were added later. According to Stroustrup, the name C++ was coined by Rick Mascitti. The name is a play on words since "++" is the C increment operator and can also be taken to signify the evolution of changes from C. Stroustrup also points out that the language is not called D because it does not remove any features of C, but rather it is an extension of C.

The USL translator has evolved through several releases. Version 1.0, the original release, reflects the language as defined in Bjarne Stroustrup's The C++ Programming Language. Version 1.1 added two features: pointers to member functions and the keyword protected. Version 1.2 added support for the overloading of unsigned integers and unsigned longs.

Version 2.0 added several major features, including support for multiple inheritance, additional operator overloading, and type-safe linkage. Version 2.0 also fixed a number of problems in the C++ language. As a result, version 2.0 is not backward compatible with previous releases.

Version 2.1 primarily repaired defects and more rigorously enforced the definition of the language. In addition, HP C++ added compiler mode to version 2.1, which compiles C++ source directly to object code instead of translating it to C. This reduces compilation time significantly. Version 2.1 is both source compatible and link compatible with version 2.0.

The C++ Programming Language, written by Bjarne Stroustrup, contains the definition of the C++ language supported by the current version, 3.0. (Language features that are not implemented in version 3.0 are listed in appendix C, "Not Implemented Messages," of the C++ Language System Release Notes.) Version 3.0 adds significant new functionality in templates, true nested classes, protected derivation, and a number of other new features.

HP C++ implements version

3.0 of the USL translator and adds an exception handling mechanism that conforms to the definition in The C++ Programming Language.

HP C++ also supports shared libraries on HP-UX by allowing you to create position-independent code (PIC).

© Hewlett-Packard Development Company, L.P.