Bjarne Stroustrup
   HOME

TheInfoList



OR:

Bjarne Stroustrup (; ; born 30 December 1950) is a Danish
computer scientist A computer scientist is a person who is trained in the academic study of computer science. Computer scientists typically work on the theoretical side of computation, as opposed to the hardware side on which computer engineers mainly focus (al ...
, most notable for the invention and development of the
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
programming language. As of July 2022, Stroustrup is a professor of Computer Science at
Columbia University Columbia University (also known as Columbia, and officially as Columbia University in the City of New York) is a private research university in New York City. Established in 1754 as King's College on the grounds of Trinity Church in Manhatt ...
.


Early life and education

Stroustrup was born in
Aarhus, Denmark Aarhus (, , ; officially spelled Århus from 1948 until 1 January 2011) is the second-largest city in Denmark and the seat of Aarhus Municipality. It is located on the eastern shore of Jutland in the Kattegat sea and approximately northwest ...
. His family was
working class The working class (or labouring class) comprises those engaged in manual-labour occupations or industrial work, who are remunerated via waged or salaried contracts. Working-class occupations (see also " Designation of workers by collar colou ...
, and he went to the local schools. He attended Aarhus University 1969–1975 and graduated with a
master's degree A master's degree (from Latin ) is an academic degree awarded by universities or colleges upon completion of a course of study demonstrating mastery or a high-order overview of a specific field of study or area of professional practice.
in
mathematics Mathematics is an area of knowledge that includes the topics of numbers, formulas and related structures, shapes and the spaces in which they are contained, and quantities and their changes. These topics are represented in modern mathematics ...
and
computer science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
. His interests focused on microprogramming and machine architecture. He learned the fundamentals of object-oriented programming from its inventor,
Kristen Nygaard Kristen Nygaard (27 August 1926 – 10 August 2002) was a Norwegian computer scientist, programming language pioneer, and politician. Internationally, Nygaard is acknowledged as the co-inventor of object-oriented programming and the programming ...
, who frequently visited
Aarhus Aarhus (, , ; officially spelled Århus from 1948 until 1 January 2011) is the second-largest city in Denmark and the seat of Aarhus Municipality. It is located on the eastern shore of Jutland in the Kattegat sea and approximately northwest ...
. In 1979, he received a PhD in computer science from the
University of Cambridge , mottoeng = Literal: From here, light and sacred draughts. Non literal: From this place, we gain enlightenment and precious knowledge. , established = , other_name = The Chancellor, Masters and Schola ...
, where he was supervised by David Wheeler. His thesis concerned communication in distributed computer systems.


Career

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 2002 to 2014, Stroustrup was the College of Engineering Chair Professor in
Computer Science Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
at
Texas A&M University Texas A&M University (Texas A&M, A&M, or TAMU) is a public, land-grant, research university in College Station, Texas. It was founded in 1876 and became the flagship institution of the Texas A&M University System in 1948. As of late 2021, T ...
. 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 Morgan Stanley is an American multinational investment management and financial services company headquartered at 1585 Broadway in Midtown Manhattan, New York City. With offices in more than 41 countries and more than 75,000 employees, the fir ...
in New York City and a visiting professor in computer science at Columbia University. As of July 2022, Stroustrup is a professor of Computer Science at Columbia University.


C++

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 C++ Programming Language'' is a computer programming book first published in October 1985. It was the first book to describe the C++ programming language, written by the language's creator, Bjarne Stroustrup. In the absence of an official ...
''. 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 In computer programming, operator overloading, sometimes termed ''operator ad hoc polymorphism'', is a specific case of polymorphism, where different operators have different implementations depending on their arguments. Operator overloading is ...
). * 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 Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is an approximate superset of ALGOL 6 ...
model with statically checked interfaces,
multiple inheritance Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit features from more than one parent object or parent class. It is distinct from single inheritance, where an object or ...
, and efficient implementation based on virtual function tables. * Support for flexible and efficient
generic programming Generic programming is a style of computer programming in which algorithms are written in terms of types ''to-be-specified-later'' that are then ''instantiated'' when needed for specific types provided as parameters. This approach, pioneered b ...
: templates with specialization and concepts. * Support for compile-time programming:
template metaprogramming Template metaprogramming (TMP) is a metaprogramming technique in which templates are used by a compiler to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled. The output of these t ...
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).


Awards and honors

Selected honors * 2018: The Charles Stark Draper Prize from The US National Academy of Engineering for conceptualizing and developing the C++ programming language. * 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. * 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. Fellowships * Member of the
National Academy of Engineering The National Academy of Engineering (NAE) is an American nonprofit, non-governmental organization. The National Academy of Engineering is part of the National Academies of Sciences, Engineering, and Medicine, along with the National Academy ...
in 2004. *
Fellow A fellow is a concept whose exact meaning depends on context. In learned or professional societies, it refers to a privileged member who is specially elected in recognition of their work and achievements. Within the context of higher education ...
of the
Association for Computing Machinery The Association for Computing Machinery (ACM) is a US-based international learned society for computing. It was founded in 1947 and is the world's largest scientific and educational computing society. The ACM is a non-profit professional member ...
(ACM) in 1994. * Fellow of the
Institute of Electrical and Electronics Engineers The Institute of Electrical and Electronics Engineers (IEEE) is a 501(c)(3) professional association for electronic engineering and electrical engineering (and associated disciplines) with its corporate office in New York City and its operation ...
(IEEE) in 1994. * Fellow of the
Computer History Museum The Computer History Museum (CHM) is a museum of computer history, located in Mountain View, California. The museum presents stories and artifacts of Silicon Valley and the information age, and explores the computing revolution and its impact on ...
for his invention of the C++ programming language in 2015. * Honorary Fellow of
Churchill College, Cambridge Churchill College is a constituent college of the University of Cambridge, England. It has a primary focus on science, engineering and technology, but still retains a strong interest in the arts and humanities. In 1958, a trust was establish ...
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 ITMO University (russian: Университет ИТМО) is a state-supported university in Saint Petersburg and is one of Russia's National Research Universities. ITMO University is one of 15 Russian universities that were selected to particip ...
since 2013. * Honorary Professor in Object Oriented Programming Languages, Department of Computer Science, University of Aarhus. 2010.


Publications

Stroustrup has written or co-written a number of publications, including the books: * ''A Tour of C++'' (1st and 2nd edition) * Programming: Principles and Practice ''Using C++'' * ''
The C++ Programming Language ''The C++ Programming Language'' is a computer programming book first published in October 1985. It was the first book to describe the C++ programming language, written by the language's creator, Bjarne Stroustrup. In the absence of an official ...
'' (1st, 2nd, 3rd, and 4th edition) * ''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: * B. Stroustrup: Thriving in a crowded and changing world: C++ 2006–2020. ACM/SIGPLAN History of Programming Languages conference, HOPL-IV. London. June 2020. * 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 . 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. . * 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. 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)


References


External links

* * {{DEFAULTSORT:Stroustrup, Bjarne 1950 births Aarhus University alumni Fellows of Churchill College, Cambridge C++ C++ people Columbia School of Engineering and Applied Science faculty Danish computer programmers Danish computer scientists Danish expatriates in the United States Fellow Members of the IEEE Fellows of the Association for Computing Machinery Grace Murray Hopper Award laureates Living people Members of the United States National Academy of Engineering People from Aarhus People from Watchung, New Jersey Programming language designers Scientists at Bell Labs Texas A&M University faculty