In 1979, Stroustrup began his career as a member of technical staff in the Computer Science Research Center of Bell Labs in Murray Hill, New Jersey, USA. There, he began his work on C++ and programming techniques. Stroustrup was the head of AT&T Bell Labs' Large-scale Programming Research department, from its creation until late 2002. In 1993, he was made a Bell Labs fellow and in 1996, an AT&T Fellow.
From January 2014 to April 2022, Stroustrup was a technical fellow and managing director in the technology division of Morgan Stanley in New York City and a visiting professor in computer science at Columbia University.
As of July 2022, Stroustrup is a full professor of Computer Science at Columbia University.
Stroustrup is best known for his work on C++. In 1979, he began developing C++ (initially called "C with Classes"). In his own words, he "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." C++ was made generally available in 1985. For non-commercial use, the source code of the compiler and the foundation libraries was the cost of shipping (US$75); this was before Internet access was common. Stroustrup also published a textbook for the language in 1985, The C++ Programming Language.
The key language-technical areas of contribution of C++ are:
A static type system with equal support for built-in types and user-defined types (that requires control of the construction, destruction, copying, and movement of objects; and operator overloading).
Value and reference semantics.
Systematic and general resource management (RAII): constructors, destructor, and exceptions relying on them.
Support for flexible and efficient generic programming: templates with specialization and concepts.
Support for compile-time programming: template metaprogramming and compile-time evaluated functions ("constexpr functions").
Direct use of machine and operating system resources.
Concurrency support through libraries (where necessary, implemented using intrinsics).
Stroustrup documented his principles guiding the design of C++ and the evolution of the language in his 1994 book, The Design and Evolution of C++, and three papers for ACM's History of Programming Languages conferences.
Stroustrup was a founding member of the C++ standards committee (from 1989, it was an ANSI committee and from 1991 an ISO committee) and has remained an active member ever since. For 24 years he chaired the subgroup chartered to handle proposals for language extensions (Evolution Working Group).
2017: The Faraday Medal from the IET (Institute of Engineering Technology) for significant contributions to the history of computing, in particular pioneering the C++ programming language.
2010: The University of Aarhus's Rigmor og Carl Holst-Knudsens Videnskabspris.
2005: The William Procter Prize for Scientific Achievement from Sigma Xi (the scientific research society) as the first computer scientist ever.
1993: The ACM Grace Murray Hopper award for his early work laying the foundations for the C++ programming language. Based on those foundations and Dr. Stroustrup's continuing efforts, C++ has become one of the most influential programming languages in the history of computing.
Gabriel Dos Reis and Bjarne Stroustrup: A Principled, Complete, and Efficient Representation of C++. Journal of Mathematics in Computer Science Volume 5, Issue 3 (2011), Page 335–356 doi:10.1007/s11786-011-0094-1. Special issue on Polynomial System Solving, System and Control, and Software Science.
Gabriel Dos Reis and Bjarne Stroustrup: General Constant Expressions for System Programming Languages. SAC-2010. The 25th ACM Symposium on Applied Computing. March 2010. doi:10.1145/1774088.1774537
Peter Pirkelbauer, Yuriy Solodkyy, Bjarne Stroustrup: Design and Evaluation of C++ Open Multi-Methods. In Science of Computer Programming (2009). Elsevier Journal. June 2009. doi:10.1016/j.scico.2009.06.002.