Bjarne Stroustrup (Born 30 December 1950) is a Danish computer scientist, most notable for the creation and development of the widely used C++ programming language. He is currently Professor and holder of the College of Engineering Chair in Computer Science at Texas A&M University.
According to Stroustrup,”the name signifies the evolutionary nature of the changes from C”. During C++’s development period, the language had been referred to as “new C”, then “C with Classes”. The final name is credited to Rick Mascitti (mid-1983) and was first used in December 1983. When Mascitti was questioned informally in 1992 about the naming, he indicated that it was given in a tongue-in-cheek spirit. It stems from C’s “++” operator (which increments the value of a variable) and a common naming convention of using “+” to indicate an enhanced computer program. A joke goes that the name itself has a bug: due to the use of post-increment, which increments the value of the variable but evaluates to the unincremented value, C++ is no better than C, and the pre-increment ++C form should have been used instead.
In 1985, the first edition of The C++ Programming Language was released, providing an important reference to the language, as there was not yet an official standard.The first commercial implementation of C++ was released in October of the same year. Release 2.0 of C++ came in 1989 and the updated second edition of The C++ Programming Language was released in 1991. New features included multiple inheritance, abstract classes, static member functions, const member functions, and protected members. In 1990, The Annotated C++ Reference Manual was published. This work became the basis for the future standard.
Throughout C++’s life, its development and evolution has been informally governed by a set of rules that its evolution should follow:
- It must be driven by actual problems and its features should be useful immediately in real world programmes.
- Every feature should be implementable (with a reasonably obvious way to do so).
- Programmers should be free to pick their own programming style, and that style should be fully supported by C++.
- Allowing a useful feature is more important than preventing every possible misuse of C++.
- It should provide facilities for organising programmes into well defined separate parts, and provide facilities for combining separately developed parts.
- No implicit violations of the type system (but allow explicit violations that have been explicitly asked for by the programmer).
- Make user created types have equal support and performance to built in types.
- Any features that you do not use you do not pay for (e.g. in performance).
- There should be no language beneath C++ (except assembly language).
- C++ should work alongside other pre-existing programming languages, rather than being part of its own separate and incompatible programming environment.
- If what the programmer wants to do is unknown, allow the programmer to specify(provide manual control).
Stroustrup began developing C++ in 1978 (then called “C with Classes”), and, in his own words, “invented C++, wrote its early definitions, and produced its first implementation… chose and formulated the design criteria for C++, designed all its major facilities, and was responsible for the processing of extension proposals in the C++ standards committee.” Stroustrup also wrote what many consider to be the standard textbook for the language, The C++ Programming Language.
Stroustrup was the head of AT&T Lab’s Large-scale Programming Research department, from its creation until late 2002. Stroustrup was elected member of the National Academy of Engineering in 2004. He is a Fellow of the ACM (1994) and an IEEE Fellow.
Stroustrup has a master’s degree in mathematics and computer science (1975) from Aarhus University, Denmark, and a Ph.D. in computer science (1979) from the University of Cambridge, England, where he was a student at Churchill College. His thesis advisor in Cambridge was David Wheeler.