Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
-
C++
- Language type:
- Description:
C++ is a fairly complicated object-oriented
language derived from C. The syntax
of C++ is a lot like C, with various
extensions and extra keywords needed to
support classes, interitance and other OO
features. C++ was originally developed
as an extension to C, but quickly
evolved into its language. Despite some
of the flaws it has inherited from C,
C++ is a very popular language for
application development on Unix systems
and PCs.
The C++ programming language
offers a very broad range of OOP features:
multiple inheritance, strong typing, dynamic memory
management, templates (generics),
polymorphism, exception
handling, and overloading.
Some newer C++ systems also offer
run-time type identification and
separate namespaces.
C++ also supports the usual features expected
of an application language: a variety of data types including
strings, arrays and structures, full I/O facilities,
data pointers and type conversion.
The C++ Standard Template Library (STL)
offers a set of collection and abstract
data type facilities.
Because it is derived from C, C++ has a
number of features that support unsafe
and defective software. The more
recent C++ standards do support safe
casts, but this feature is not yet
universally available or employed.
Also,
C++ has dynamic memory allocation, but
does not have garbage collection; this
allows programs to mis-use and leak
memory. C++ also supports
dangerous raw memory
pointers and pointer arithmetic. These
low-level facilities are useful in some
situations, but can increase the time
needed for software development.
Efforts at unifying the C++ language were
begun in 1989.
C++ was finally standardized by the ISO and ANSI
in November, 1997.
Information on C++ is widely available on
the WWW, but language has no official home
on the Web. Many C++ implementations
exist, some of them follow the old
tradition of translating C++ into C, while
others are native compilers. A few free
C++ compilers exist, the most notable of
which is the GNU C/C++ compiler, GCC.
- Origin:
Bjarne Stoustrup, AT&T Bell Labs, 1982-85.
- See Also:
- Remarks:
C++ is one of the most popular programming
languages available today; in 1997 it was
estimated that 1.5 million people knew how
to write C++ code. The language is
popular for several reasons:
- it is pragmatic
- it is powerful
- it resembles C which was
also very popular
- it is used to write system
and application programs for UNIX and MS-Windows,
- good compilers for it are available both
for free and commercially
- there are plenty of good books about
it available
C++ is one of the most mature and
certainly the most widely-implemented
object-oriented language. Even so, it
is missing some features that are
considered obligatory in a new OOP
language design: concurrency, persistence,
automatic garbage collection, and
reflection. In exchange for these
deficiencies, C++ gives some things that
system programmers especially like:
determinism and control. Because very
little need happen behind the scenes in
C++ programs, they have low overhead and
good performance.
C++ has a number of notable features
that make it powerful, but which make
it easy to write undecipherable
unmaintainable programs. First, it
supports operator overloading for almost
every operator in the language, include []
and () and and ->. Second, it
support raw pointers. Third, it supports
both implicit and explicit type
conversions, both built-in and
programmer-defined. Fourth, it supports
the C macro preprocessor. Fifth, it
allows the programmer to control the
degree of data hiding enforced by
object classes. Taken together, these
features offer the programmer the ability
to do great things, and but the potential
for writing really awful code
[Note: this is
not theoretical -- I've personally used
and misused all of these features.]
A wide variety of add-on libraries and
utilities for C++ developers are available.
Good compilers are available for all
platforms.
- Links:
-
-
-
-
- Date:
- Sample code:
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.