What is C++?

C++ is an object-oriented, low-level ANSI and ISO standard programming language. As a low-level language similar to and compatible with its predecessor C, C++ can generate very efficient, very fast programs.
As an object-oriented language, C++ has the power and extensibility to write large-scale programs. C++ is one of the most popular programming languages for all types of programs. Most of the programs you use on your PC every day are written in C++.
C++ has been certified as a 99.9 percent pure standard. This makes it a portable language. There is a C++ compiler for every major operating system, and they all support the same C++ language.

C++ langugae : History

The C++ programming language has a history going back to 1979, when Bjarne Stroustrup was doing work for his Ph.D. thesis. One of the languages Stroustrup had the opportunity to work with was a language called Simula, which as the name implies is a language primarily designed for simulations. The Simula 67 language - which was the variant that Stroustrup worked with - is regarded as the first language to support the object-oriented programming paradigm. Stroustrup found that this paradigm was very useful for software development, however the Simula language was far too slow for practical use.
Shortly thereafter, he began work on "C with Classes", which as the name implies was meant to be a superset of the C language. His goal was to add object-oriented programming into the C language, which was and still is a language well-respected for its portability without sacrificing speed or low-level functionality. His language included classes, basic inheritance, inlining, default function arguments, and strong type checking in addition to all the features of the C language.
The first C with Classes compiler was called Cfront, which was derived from a C compiler called CPre. It was a program designed to translate C with Classes code to ordinary C. A rather interesting point worth noting is that Cfront was written mostly in C with Classes, making it a self-hosting compiler (a compiler that can compile itself). Cfront would later be abandoned in 1993 after it became difficult to integrate new features into it, namely C++ exceptions. Nonetheless, Cfront made a huge impact on the implementations of future compilers and on the Unix operating system.
In 1983, the name of the language was changed from C with Classes to C++. The ++ operator in the C language is an operator for incrementing a variable, which gives some insight into how Stroustrup regarded the language. Many new features were added around this time, the most notable of which are virtual functions, function overloading, references with the & symbol, the const keyword, and single-line comments using two forward slashes (which is a feature taken from the language BCPL).
In 1985, Stroustrup's reference to the language entitled The C++ Programming Language was published. That same year, C++ was implemented as a commercial product. The language was not officially standardized yet, making the book a very important reference. The language was updated again in 1989 to include protected and static members, as well as inheritance from several classes.
In 1990, The Annotated C++ Reference Manual was released. The same year, Borland's Turbo C++ compiler would be released as a commercial product. Turbo C++ added a plethora of additional libraries which would have a considerable impact on C++'s development. Although Turbo C++'s last stable release was in 2006, the compiler is still widely used.
In 1998, the C++ standards committee published the first international standard for C++ ISO/IEC 14882:1998, which would be informally known as C++98. The Annotated C++ Reference Manual was said to be a large influence in the development of the standard. The Standard Template Library, which began its conceptual development in 1979, was also included. In 2003, the committee responded to multiple problems that were reported with their 1998 standard, and revised it accordingly. The changed language was dubbed C++03.
In 2005, the C++ standards committee released a technical report (dubbed TR1) detailing various features they were planning to add to the latest C++ standard. The new standard was informally dubbed C++0x as it was expected to be released sometime before the end of the first decade. Ironically, however, the new standard would not be released until mid-2011. Several technical reports were released up until then, and some compilers began adding experimental support for the new features.
In mid-2011, the new C++ standard (dubbed C++11) was finished. The Boost library project made a considerable impact on the new standard, and some of the new modules were derived directly from the corresponding Boost libraries. Some of the new features included regular expression support (details on regular expressions may be found here), a comprehensive randomization library, a new C++ time library, atomics support, a standard threading library (which up until 2011 both C and C++ were lacking), a new for loop syntax providing functionality similar to foreach loops in certain other languages, the auto keyword, new container classes, better support for unions and array-initialization lists, and variadic templates.

C++ language : C++ is a Subset of C

The C and C++ programming languages are closely related. C++ grew out of C, as it was designed to be source-and-link compatible with C.Due to this, development tools for the two languages (such as IDEs and compilers) are often integrated into a single product, with the programmer able to specify C or C++ as their source language. However, due to minor semantic differences, most non-trivial C programs will not compile as C++ code without modification — C++ is not a superset of C.
Likewise, C++ introduces many features that are not available in C and in practice almost all code written in C++ is not conforming C code.

C++ language : Features of C++

* C++ is a "middle-level" language. Programming languages can be categorized as high-level or low-level. Assembly languages are low-level languages. An assembly language allows the programmer maximum control over the computer system. The programmer can directly interface with and control the computer's hardware and operating system.
*C++, although it is a middle-level language (and, therefore easier to learn and use than an assembly language), contains many of the low-level capabilities of an assembly language. Thus, C++ is sometimes called a "middle-level" language. It is possible through C++ to attain almost as much control over the computer as you can achieve with an assembly language.
*C++ is portable. Most high-level languages are portable in the sense that a program written in a high-level language should execute, with minor modifications, on several different computer systems. C++ is one of the most portable of all the high-level languages. Properly written, a C++ program can run on several computer systems with no modifications.
*C++ is small. The C++ language does not contain many of the built-in features present in other programming languages (such as in Visual Basic), which further enhances its portability. For example, Visual Basic has about 150 keywords. (A keyword is a word that has special meaning in the language.) C++, on the other hand, has about 60 keywords.
*C++ is an object-oriented extension of the C programming language. Dennis Ritchie developed C at Bell Laboratories in 1972 to help write the UNIX operating system for the PDP-11 minicomputer. Today many mainframes and most minicomputers, including Reduced Instruction Set Computing (RISC) workstations, and many Intel-based PCs and servers use the UNIX or Linux operating system. All versions of UNIX/Linux contain a version of C as their native language. In other words, UNIX/Linux speaks C.In the early 1980s, Bjarne Stroustrup of AT&T Bell Labs developed C++, which is an object-oriented extension of C.
*C is an example of a procedure-oriented programming language. Thus, to develop a C program to accomplish a task, the programmer breaks down the task into a series of steps. On the other hand, to develop an object-oriented C++ program, the programmer views the problem as a set of interacting objects, each with its own properties and behaviors.


Free Web Hosting