Bjarne Stroustrup


Bjarne Stroustrup is a Danish computer scientist, known for the development of the C++ programming language. He led the Large-scale Programming Research department at Bell Labs, served as a professor of computer science at Texas A&M University, and spent over a decade at Morgan Stanley while also being a visiting professor at Columbia University. Since 2022 he has been a full professor at Columbia.

Early life and education

Stroustrup was born in Aarhus, Denmark. His family was working class, and he attended local schools.
He attended Aarhus University from 1969 to 1975 and graduated with a Candidatus Scientiarum in mathematics with computer science. His interests focused on microprogramming and machine architecture. He learned the fundamentals of object-oriented programming from its inventor, Kristen Nygaard, who frequently visited Aarhus.
In 1979, he received his PhD in computer science from the University of Cambridge, where his research on distributed computing was supervised by David Wheeler.

Career and research

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. 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 2002 to 2014, Stroustrup was the College of Engineering Chair Professor in Computer Science at Texas A&M University. From 2011, he was made a University Distinguished Professor.
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.
Since 2021, Bjarne Stroustrup has been a Technical Advisor to Metaspex, a company developing a new C++ programming approach for business applications.
As of July 2022, Stroustrup is a full professor of computer science at Columbia University.

C++

[Image:C++ Standards Committee meeting - March 1996 Santa Cruz - Wednesday general session.jpg|thumb|right|Stroustrup (standing on left) at the March 1996 Santa Cruz meeting of the C++ Standards Committee]
Stroustrup is best known for his work on C++. In 1979, he began developing C++. 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 ; 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.
  • Value and reference semantics.
  • Systematic and general resource management : constructors, destructor, and exceptions relying on them.
  • Support for efficient object-oriented programming: based on the Simula model with statically checked interfaces, multiple inheritance, and efficient implementation based on virtual function tables.
  • Support for flexible and efficient generic programming: templates with specialization and concepts.
  • Support for compile-time programming: template metaprogramming and compile-time evaluated functions.
  • Direct use of machine and operating system resources.
  • Concurrency support through libraries.
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 and has remained an active member ever since. For 24 years he chaired the subgroup chartered to handle proposals for language extensions.

Awards and honors

Selected honors
Fellowships
Honorary doctorates and professorships

Publications

Stroustrup has written or co-written a number of publications, including the books:A Tour of C++ Programming: Principles and Practice Using C++The C++ Programming Language The Design and Evolution of C++The Annotated C++ Reference Manual.
In all, these books have been translated into 21 languages.
More than 100 academic articles, including:
  • Thriving in a crowded and changing worldEvolving a language in and for the real world
  • B Stroustrup: What should we teach software developers? Why? CACM. January 2010.
  • Gabriel Dos Reis and Bjarne Stroustrup: A Principled, Complete, and Efficient Representation of C++. Journal of Mathematics in Computer Science Volume 5, Issue 3, Page 335–356. 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.
  • Y. Solodkyy, G. Dos Reis, and B. Stroustrup: Open and Efficient Type Switch for C++. Proc. OOPSLA'12.
  • Peter Pirkelbauer, Yuriy Solodkyy, Bjarne Stroustrup: Design and Evaluation of C++ Open Multi-Methods. In Science of Computer Programming. Elsevier Journal. June 2009..
  • Gabriel Dos Reis and Bjarne Stroustrup: Specifying C++ Concepts. POPL06. January 2006.
  • B. Stroustrup: Exception Safety: Concepts and Techniques. In Springer Verlag Lecture Notes in Computer Science, LNCS-2022. ISSN 0302-9743.. April 2001.
  • B Stroustrup: Generalizing Overloading for C++2000. Overload, Issue 25. 1 April 1998.
  • B. Stroustrup: Why C++ isn't just an Object-Oriented Programming Language. Addendum to OOPSLA'95 Proceedings. OOPS Messenger, vol 6 no 4, pp 1–13. October 1995.
  • B. Stroustrup: A History of C++: 1979–1991 Notices. Vol 28 No 3, pp 271–298. March 1993. Also, History of Programming languages Addison-Wesley, 1996.
  • B. Stroustrup: What is Object-Oriented Programming?. Proc. 1st European Software Festival. February 1991.
  • B. Stroustrup: Data Abstraction in C. Bell Labs Technical Journal. vol 63. no 8, pp 1701–1732. October 1984.
  • B. Stroustrup: Classes: An Abstract Data Type Facility for the C Language. Sigplan Notices, January 1982.
More than a hundred technical reports for the C++ standards committee