The research provides an insight into how C++ has evolved. It traces its generation, from when machine language was developed, to when Bjarne Stroustrup conceived the idea of merging C and Simula67. The paper highlights on challenges, ideas and the persons or bodies who contributed to the evolution of the language from its conception to the present standards. Furthermore, the paper presents the attributes that have made C++ to remain relevant, at the current world, as well as the importance of the language.
Bjarne Stroustrup is regarded as the father of C++ since he conceived the idea, designed and implemented the language, . C++ formerly called “C with classes” was the inheritance of the desirable attributes of C and Simula67, while leaving out the undesirable characteristics. C++ was intended to provide a fast way of developing projects in order to reduce the development time. According to Stroustrup (1987), C boasted of power and efficiency in design while Simula67 was object oriented.
History of the Language
Machine languages where the first languages which consisted of ones and zeros, that controlled the computer hardware and peripherals. They directly communicated with the hardware and there was no intermediary language that served in between. The use of machine language proved to be labour intensive, and this led to the development of assembly languages, which use mnemonic names instead of numbers to represent instructions, this made programming faster in relation to programming using machine language, assembly languages use assemblers to translate the source code to machine language. However, assembly language had its own deficiencies, like machine language, they were limited to a specific hardware platform, while at he same time, they were difficult to be understood.
The shortcomings of assemble languages led to the development of high level languages; these are languages that are similar with human grammar, and can be utilised across several platforms. The early resemble human grammar and syntax more closely, and are often portable to different operating systems and machines. The first high level languages that gained widespread popularity include FORTRAN, (Formula Translator) which was developed by John Backus of IBM and released in 1957. COBOL (COmputer Business Oriented Language), was released in April of 1959 and ALGOL (ALGOrithmic Language) which was created around the 1960s, these languages needed interpreters and compilers in order to translate the language code to machine language. ALGOL influenced the development on another language, In early 1960s University of London, University of Cambridge , Mathematical Laboratory developed the Combined Programming Language, however, the language has several challenges including being slow in implementation, this influenced Martin Richards of the university of Cambridge to develop BCPL (Basic Combined Programming Language) in 1966, the language was developed as an attempt to address the shortcomings realised with CPL. The fact that BCPL consumed immense computer resources, such as memory, Ken Thompson when dealing with the MULTICS project in 1969 at the Bell laboratories, was inspired to develop BCPL based language, which utilised fewer resources as presented by Kernighan et al (1978), with the assistance of Dennis Ritchie he developed the B language. In 1972, while at Bell Laboratories, Dennis Ritchie developed C programming language, which was intended to be used with the UNIX operating system
ALGOL also played an important role in influencing the development of another language in Oslo between 1963 and 1967, the SIMULA programming language. This language was the effort of Ole-Johan Dahl and Kristen Niggard at Norwegian Computing Center (NCC) . According to Meyer (1988), Simula formed the foundation for Object-Oriented programming conception.
Simula had several strengths including the fact that routine mechanisms and the comprehensive type checking mechanisms made sure that problems and errors did grow linearly, this lead to easy to write, understand, debug and easy to maintain programs. According to Stroustrup (1987), the implementation of the language favoured small programs. April of 1979 at Bell laboratories, there was an attempt to develop efficient and flexible language, C with Classes developed as an annexe to C for expressing modularity, concurrency and enhanced program organization.
C with classes enabled the declaration of local and global variables, this coupled with capability to link independently compiled programs, and reliability in placing requisite information in the header files ,while at the same time being simple to use and implement made C with classes, a better merger of Simula and C.
The new language was referred to as C++ in 1983 by Rick Mascitti, which is the year when additional features were introduced, such as function name and operator overloading, constants, references. The language was to be improved further when the first edition of the language was released in 1985, and with it came, the references. This was followed with the second release of the language in 1989, which was accompanied by abstract classes, protected members, multiple inheritance among other additions. Other additions such as exceptions and libraries were added, as the language’s manual was released in the year 1990. Whereas the standards committee published the first standards in 1998, rectification of the standard, was done in 2003, this was followed by the informal technical report of 2005.
Importance of C++
C++ and attributes and characteristics, which has made the language to remain relevant up to the present times, this includes the architecture of the language in that it was designed to be a portable across several platforms, while being general purpose language Oualline(2003). The language also avoids unnecessary overhead, while at the same time, the language does not require a sophisticated environment in order to run. Finally C++ is designed to be attuned with C, while at the same time sustaining numerous programming styles. This has ensured that the C++ language enjoys immense following and remain relevant with the changing tim
Kernighan, Brian & Dennis, Ritchie. (1978). The C Programming Language.
New York: Prentice− Hall.
Oualline, Steve .(2003). Practical C++ programming. London: O’Reilly Media.
Meyer, Bertrand. (1988). Object− Oriented Software Construction. New York: Prentice− Hall
Stroustrup, Bjarne. (1987). The Evolution of C++: 1985− 1987. Proc. USENIX C++ conference, Santa Fe.