Stroustrup in 2010
|Thesis||Communication and control in distributed computer systems (1979)|
|Doctoral advisor||David Wheeler|
Bjarne Stroustrup (/ /; Danish: [pjaːnə ˈstʁɒwˀstʁɔp]; born 30 December 1950) is a Danish computer scientist, most notable for the creation and development of the C++ programming language. He is a visiting professor at Columbia University, and works at Morgan Stanley as a Managing Director in New York.
Early life and education
He attended Aarhus University 1969–1975 and graduated with a master's degree in mathematics and 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 a PhD in computer science from the University of Cambridge, England, where he was supervised by David Wheeler. His thesis concerned communication in distributed computer systems.
In 1979, Stroustrup began his career as a member of technical staff in 1979 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 Lab's fellow and in 1996, an AT&T Fellow.
As of January 2014, Stroustrup is 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.
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 everyone had Internet access. 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 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 ("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 two 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).
Awards and honors
- 2018: The Charles Stark Draper Prize from The US National Academy of Engineering for conceptualizing and developing the C++ programming language. This is the NEA's highest honor and one of the world's highest honors for an engineer. Notable recipients include the inventors of the chip, the jet engine, communications satellites, fiber optics, GPS, CCDs (digital cameras), and also a few computer scientists including: John Backus, Vint Cerf, and Tim Berners-Lee. : Draper Labs press release.
- 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. The Faraday Medal is the IET's highest honor. Notable recipients include J.J. Thomson, C.A.R.Hoare, Donald Knuth, and Maurice Wilkes. The institute of Engineering Technology (the IET) is one of the world's oldest and largest engineering institutions with over 168,000 members in 150 countries.
- 2018: The Computer Pioneer Award from The IEEE Computer Society For bringing object-oriented programming and generic programming to the mainstream with his design and implementation of the C++ programming language. The award recognizes a contribution of lasting value; it is at the earliest given 15 years after the work it recognizes. Notable recipients include John Backus, Bob Barton, Tony Hoare, David Kuck, Peter Naur, Maurice Wilkes, and Niklaus Wirth. IEEE CS press release.
- 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. The GMH award is given for a significant achievement before the age of 35. Many of the GMH recipients, such as Don Knuth, Steve Wozniak, and Robert Metcalfe, went on to do further great things.
- 2010: The University of Aarhus's Rigmor og Carl Holst-Knudsens Videnskapspris. The university's oldest and most prestigious honor for contributions to science by a person associated with the university.
- 2005: The William Procter Prize for Scientific Achievement from Sigma Xi (the scientific research society) as the first computer scientist ever.
- Member of the National Academy of Engineering in 2004.
- Fellow of the Association for Computing Machinery (ACM) in 1994.
- Fellow of the Institute of Electrical and Electronics Engineers (IEEE) in 1994
- Fellow of the Computer History Museum for his invention of the C++ programming language. in 2015.
- Honorary Fellow of Churchill College, Cambridge in 2017.
Honorary doctorates and professorships
- He was awarded an honorary doctorate from the University Carlos III, Spain 2019.
- Stroustrup has been a noble doctor at ITMO University since 2013.
- Honorary Professor in Object Oriented Programming Languages, Department of Computer Science, University of Aarhus. 2010.
- A Tour of C++ (1st and 2nd edition)
- Programming: Principles and Practice Using C++
- The C++ Programming Language (1st, 2nd, 3rd, and 4th edition)
- Design and Evolution of C++
- The Annotated C++ Reference Manual.
In all, these books have been translated into 21 languages
More than 100 popular and academic articles including
- B. Stroustrup: Software Development for Infrastructure. Computer, vol. 45, no. 1, pp. 47–58, Jan. 2012, doi:10.1109/MC.2011.353.
- B. Stroustrup: Evolving a language in and for the real world: C++ 1991–2006. ACM HOPL-III. June 2007.
- 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 (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.
- 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 (2009). Elsevier Journal. June 2009. doi:10.1016/j.scico.2009.06.002.
- 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. ISBN 3-540-41952-7. 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. Proc ACM History of Programming Languages conference (HOPL-2). ACM Sigplan Notices. Vol 28 No 3, pp 271–298. March 1993. Also, History of Programming languages (editors T.J.Begin and R.G.Gibson) Addison-Wesley, 1996.
- B. Stroustrup: What is Object-Oriented Programming? (1991 revised version). Proc. 1st European Software Festival. February 1991.
- B. Stroustrup: Data Abstraction in C. Bell Labs Technical Journal. vol 63. no 8 (Part 2), 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 (WG21)
- Bjarne Stroustrup at the Mathematics Genealogy Project
- Stroustrup, Bjarne. "How do you pronounce "Bjarne Stroustrup?"". Bjarne Stroustrup's Homepage. Retrieved 18 November 2014.
- Stroustrup, Bjarne. "Bjarne pronounces his own name". Bjarne Stroustrup's Homepage. Retrieved 18 November 2014.
- Wong, William (29 October 2013). "Interview: Bjarne Stroustrup Discusses C++". Electronic Design. Retrieved 29 January 2014.
- "Bjarne Stroustrup's Homepage". Research.att.com. Archived from the original on 7 July 2000. Retrieved 9 June 2016.
- Stroustrup, Bjarne (2010). "Viewpoint: What should we teach new software developers? Why?". Communications of the ACM. 53: 40. doi:10.1145/1629175.1629192.
- Stroustrup, Bjarne (1998). "The Real Stroustrup Interview" (PDF). Computer. 31 (6): 110–119. doi:10.1109/MC.1998.683014.
- "List of interviews with Bjarne Stroustrup". stroustrup.com.
- "A hoax interview transcript with IEEE's Computer magazine". harmful.cat-v.org.
- "NAE Honors 2018 Draper Prize Winner" (PDF). stroustrup.com. 2 January 2020.
- Wong, William (26 November 2013). "Bjarne Stroustrup: C++ Creator Keeps RUNE Developing". Electronic Design. Retrieved 29 January 2014.
- Stroustrup, Bjarne (1979). Communication and control in distributed computer systems. jisc.ac.uk (PhD thesis). University of Cambridge. OCLC 219769715. EThOS uk.bl.ethos.474113. Archived from the original on 16 November 2018. Retrieved 15 November 2018.
- Stroustrup, Bjarne (2 January 2020). "Communication and control in distributed computer systems". British Library.
- "Archived copy". Archived from the original on 1 July 2007. Retrieved 27 June 2007.CS1 maint: archived copy as title (link)
- Communications, Texas A&M Engineering (8 September 2015). "Faculty – People – Computer Science & Engineering – College of Engineering". Cse.tamu.edu. Retrieved 9 June 2016.
- "Department of Computer Science, Columbia University – Faculty". Cs.columbia.edu. Retrieved 9 June 2016.
- Stroustrup, Bjarne (2 January 2020). "The C++ Programming Language". stroustrup.com.
- Stroustrup, Bjarne (2 January 2020). "The Design and Evolution of C++". stroustrup.com.
- Stroustrup, Bjarne (2 January 2020). "A History of C++: 1979– 1991" (PDF). stroustrup.com.
- Stroustrup, Bjarne (2 January 2020). "Evolving a language in and for the real world: C++ 1991–2006" (PDF). stroustrup.com.
- Stroustrup, Bjarne (2 January 2020). "Some Information about Bjarne Stroustrup". stroupstup.com.
- "Ученый Совет НИУ ИТМО на заседании 25.06.2013 г. избрал Бьѐрна Страуструпа почетным доктором нашего университета" (PDF). Is.ifmo.ru. Retrieved 7 December 2017.
- Bjarne Stroustrup at DBLP Bibliography Server
- Bjarne Stroustrup publications indexed by the Scopus bibliographic database. (subscription required)
- Stroustrup, Bjarne (2013). A Tour of C++. Addison-Wesley Professional. ISBN 978-0-321-95831-0.
- Stroustrup, Bjarne (29 December 2008). Programming: Principles and Practice Using C++ (1st ed.). Addison-Wesley Professional. ISBN 978-0-321-54372-1.
- Stroustrup, Bjarne (23 May 2013). The C++ Programming Language (4th ed.). Addison-Wesley Publishing Company. ISBN 978-0-321-56384-2.
- Stroustrup, Bjarne (29 March 1994). Design and Evolution of C++ (1st ed.). Addison-Wesley Publishing Company. ISBN 978-0-201-54330-8.
- Ellis, Margaret A.; Stroustrup, Bjarne (1 January 1990). The Annotated C++ Reference Manual. Addison-Wesley Publishing Company. ISBN 978-0-201-51459-9.
- Stroustrup, Bjarne (2 January 2020). "Book Covers". stroustrup.com.
- Stroustrup, Bjarne (2 January 2020). "My C++ Standards committee papers". stroustrup.com.