The Evolution of C++ as a Programming Language
C++ is a very useful programming language. Many educational curriculums will include either C or C++ as the tool entry-level programmers will use to learn the syntax, semantics, and data structures key to effective programming that is required of computer scientists. C++ is such a diverse language, one cannot help but wonder how it became the popular language it is today, and this paper is going to demonstrate just that.
Introduction to CPL
Cis the great-grandfather of C++, designed in 1963. It is short for “Combined Programming Language.” Many features within CPL are from, or are largely based on, Algol 60, which was a programming language developed in the early 1960’s. It was designed jointly by members of the University Mathematical Laboratory in Cambridge and the University of London Computer Unit. CPL was designed to be not just a mathematical calculation tool, but had support for uses in many non-mathematical applications as well. One of the biggest differences between Algol and CPL was the attempt to improve upon Algol’s precision with mathematical calculation. Algol commonly generalized different types of data in order to provide ease of manipulation, especially with simulation, but its precision suffered as a result.
CPL is generally made up of definitions, different kinds of data types and expressions, and commands, which manipulate that data. Code is split up into sections called blocks, made up of one or more definitions and one or more commands, which was a feature directly drawn from Algol. Numerical and non-numerical data types were referenced through index registers using names, either a single lower-case character or a series of upper-case alphanumeric characters. Basic symbols of the language are underlined and are not case-sensitive. A binary or octal number can be represented by preceding the value with a 2 or 8 and strings are enclose with quotes (‘’).
CPL uses standard operators and conditional statements, as well as loops called cycles, and is capable of evaluating expressions in both “right-hand” and “left-hand” modes, meaning it evaluates one side of an expression first before the other. CPL also supports the use of a “compound command,” using a special symbol §.
Brought forth from CPL was the concept of an “initialization definition,” which assigns a variable as it is defined a value obtained by referencing an array using an index or from evaluating an expression that may or may not need to be re-evaluated each time the variable is used. Also, CPL allowed labeled (more recently referred to as a pointer) definitions to be defined and referenced at any time, instead of having to be limited to the whole block of code, as in Algol.
Functions with parameters enclosed in brackets are used for complex computations in which the variables or constants used in the assignment expression must correspond in data type. Arrays and lists, like in LISP, are also...