C++ Books

Tuesday, May 14, 2013

Dr. Stroustrup's Fourth Edition just released...

...and sold out! "I got my copy (the very first copy!) on Friday [May 10, 2013]. At 9am Monday, it became available on the publisher's site, InformIT, and at 10am it had sold out. Now, they have re-stocked, but this is all very scary for an author. I have worked hard on this for about four years (not counting the 13 years it took getting the C++11 standard out)," said Dr. Bjarne Stroustrup, designer and originator of C++.

What makes the fourth edition of "The C++ Programming Language" distinctive and appreciated is its inclusion of the new C++11 standard. C++11 "allows programmers to express ideas more clearly, simply, and directly, and to write faster, more efficient code," writes Dr. Stroustrup.

The C++ Programming Language, Fourth Edition has been extensively rewritten to introduce the C++11 language, the C++11 standard library, and the programming techniques they support. This includes "support for concurrency; regular expressions, resource management pointers, random numbers, and improved containers; general and uniform initialization, simplified for statements, move semantics, and Unicode support; Lambdas, general constant expressions, control over class defaults, variadic templates, template aliases, and user-defined literals; and compatibility issues."

Dr. Bjarne Stroustrup is a University Distinguished Professor and the holder of the College of Engineering Chair in Computer Science at Texas A&M University. The recipient of numerous honors, Dr. Stroustrup is a member of the National Academy of Engineering, an IEEE Fellow, and an ACM Fellow. His research interests include distributed systems, simulation, design, programming techniques, software development tools, and programming languages. He remains actively involved in the ANSI/ISO standardization of C++. Dr. Stroustrup holds an advanced degree from the University of Aarhus in his native Denmark and a Ph.D. in Computer Science from Cambridge University, England.

Written by Kathy Flores

Tuesday, November 6, 2012

Open and Efficient Type Switch for C++

by Yuriy Solodkyy, Gabriel Dos Reis, and Bjarne Stroustrup

Selecting operations based on the run-time type of an object is key to many object-oriented and functional programming techniques. We present a technique for implementing open and efficient type switching on hierarchical extensible data types. The technique is general and copes well with C++ multiple inheritance.

To simplify experimentation and gain realistic performance using production-quality compilers and tool chains, we implement a type switch construct as an ISO C++11 library, called Mach7. This library-only implementation provides concise notation and outperforms the visitor design pattern, commonly used for case analysis on types in object-oriented programming. For closed sets of types, its performance roughly equals equivalent code in functional languages, such as OCaml and Haskell. The type-switching code is easier to use and is more expressive than hand-coded visitors are. The library is non-intrusive and circumvents most of the extensibility restrictions typical of the visitor design pattern. It was motivated by applications involving large, typed, abstract syntax trees.

See also: OOPSLA'12 paper, slides, notes, extras, Mach7 Library

Where do you go to find out about C++?

by Kathy Flores

Texas A&M University's Department of Computer Science and Engineering is one of the founding members of the Standard C++ Foundation. Other founding members of the Foundation are Microsoft, Google, Intel, IBM, HP, ARM, Pearson, Bloomberg, OpenMP, BD Software... The Foundation is a not-for-profit organization with the mission to convey up-to-date information about C++ and to make available both standard and community libraries to developers of modern C++. It does this primarily through its isocpp.org website.

Among the initial contents, you can find a sample from Texas A&M's own Bjarne Stroustrup's forthcoming book: The C++ Programming Language (4th Edition).

The directors and officers of the Foundation are Chandler Carruth (Google) [Treasurer], Beman Dawes (Boost C++ Libraries), Stefanus Du Toit (Intel) [Secretary], Bjarne Stroustrup (Texas A&M University), Herb Sutter (Microsoft) [Chairman, President], and Michael Wong (IBM) [Vice President].

Wednesday, September 26, 2012

HotDrink: A Library for Web User Interfaces

by John Freeman, Jaakko Järvi, and Gabriel Foust

HotDrink is a JavaScript library for constructing forms, dialogs, and other common user interfaces for Web applications. With HotDrink, instead of writing event handlers, developers declare a "view-model" in JavaScript and a set of "bindings" between the view-model and the HTML elements comprising the view. These specifications tend to be small, but they are enough for HotDrink to provide a fully operational GUI with multi-way dataflows, enabling/disabling of values, activation/deactivation of commands, and data validation. HotDrink implements these rich behaviors, expected of high-quality user interfaces, as generic reusable algorithms. This paper/tool demonstration introduces developers to the HotDrink library by stepping through the construction of an example web application GUI.

The library is a concrete realization of our prior work on the "property models" approach to declarative GUI programming. To encourage adoption among developers, we have packaged the technology following established web programming conventions.

See also: GPCE'12 paper, property models, demo, project

Sunday, April 22, 2012

Bjarnefest

Workshop on Quality Software: A Festschrift for Bjarne Stroustrup

Texas A&M University, College Station, TX
April 27-28, 2012

The Workshop on Quality Software: A Festschrift for Bjarne Stroustrup will be held to honor and celebrate the career of Bjarne Stroustrup. The workshop will be held at Texas A&M University in College Station, TX. The program includes an opening reception on the evening of Thursday, April 26, technical presentations on April 27-28, and a banquet with reminiscences about Bjarne on the evening of Friday, April 27.

Monday, May 23, 2011

Tech Icons: Bjarne Stroustrup

Meet Bjarne Stroustrup, inventor of C++, and Hero of the Digital Revolution is the title of a March 2011 video released by Tech Icons, an AT&T Tech Channel show. Tech Icons focuses on the Heroes of the Digital Revolution in a series of fascinating biographies. The focal point of this video is Dr. Stroustrup, his creation of C++ and it's worldwide and interplanetary applications.



This audiovisual program highlights Dr. Stroustrup's journey from AT&T Bell Labs to Texas A&M University, emphasizing the history of C++ design and it's revolutionary affect on today's technology. C++0x* is also referenced as Dr. Stroustrup continues to improve C++ for future technologies. He says in the video, "C++...is my vehicle to get to interesting places and see interesting people." We are privileged that he has chosen Texas A&M as an interesting place on his incredible journey.

Dr. Bjarne Stroustrup is the Distinguished Professor and College of Engineering Endowed Chair in Computer Science in Texas A&M Engineering's Department of Computer Science and Engineering.

Written by Kathy Flores

Wednesday, March 30, 2011

An Automatic Parallelization Framework for Algebraic Computation Systems

A paper "An Automatic Parallelization Framework for Algebraic Computation Systems" by Yue Li and Gabriel Dos Reis was accepted by ISSAC 2011


Abstract:
This paper proposes an automatic parallelization framework for an existing computer algebra system. The framework performs a semantics-based static analysis to extract reductions in library components. Reductions using associative binary operators are automatically transformed to their parallel versions. Our implementation is evaluated using algebraic library functions and a self-implemented application. Experimental results show that up to 5 times speed-up for the application is obtained. It is feasible to adapt the core of this framework to other algebraic computation systems and programming languages. The adaptation requires a type system which is able to provide semantics algebraic information from users.


Tuesday, November 23, 2010

Extending Type Systems in a Library

Type-safe XML processing in C++
by Yuriy Solodkyy and Jaakko Järvi

Abstract

Type systems built directly into the compiler or interpreter of a programming language cannot be easily extended to keep track of run-time invariants of new abstractions. Yet, programming with domain-specific abstractions could benefit from additional static checking. This paper presents library techniques for extending the type system of C++ to support domain-specific abstractions. The main contribution is a programmable “subtype” relation. As a demonstration of the techniques, we implement a type system for defining type qualifiers in C++, as well as a type system for the XML processing language, capable of, e.g., statically guaranteeing that a program only produces valid XML documents according to a given XML schema.


Research highlights

  • Metaprogramming capabilities of C++ enable domain-specific type system extensions.
  • A template library for building new type system extensions.
  • Type system extensions for type qualifiers.
  • Type system extensions for regular expression types for typing XML.

Keywords: Type systems; XML; Type qualifiers; C++; Template metaprogramming; Active libraries

Wednesday, October 13, 2010

25th Anniversary of C++

This Thursday will mark the 25th anniversary of the commercial release of the programming language C++, which was designed and implemented by our very own Distinguished Professor and College of Engineering Chair in Computer Science Dr. Bjarne Stroustrup. C++ is one of the most popular programming languages in the world. The first commercial release of the language and the publication of the first edition of the book entitled "The C++ Programming Language" happened on October 14, 1985.

Thursday, September 23, 2010

Literature Search for Computer Science

Interesting talk by Todd Veldhuizen that was presented by Dr. Jaakko Jarvi during our PTTL Reading Group gathering last Friday.

Literature Search for Computer Science

by Todd Veldhuizen
Abstract
Why read the literature?
  • Because sometimes "a year of hard work can save a week of reading".
  • Increase the likelihood that someone will care about your research:
    • Not duplicate an already known result.
    • Identify communities of people who will appreciate what you are doing.
  • Be able to give a convincing treatment of your research problem:
    • Using standard terminology and notations;
    • Comparing your contribution to related work;
    • Avoiding obvious ‘newbie ’ mistakes
    • Not getting crushed by some crusty professor who claims to have published your result twenty years ago.

Friday, April 30, 2010

Dr. Stroustrup named Distinguished Professor

by Tony Okonski

Dr. Bjarne Stroustrup has earned promotion to the academic rank of Distinguished Professor in recognition of his contributions to computer science and software development at Texas A&M University. The promotion will take effect on September 1, 2010.

Dr. Stroustrup's research interests include distributed systems, simulation, design, programming techniques, software development tools, and programming languages. Stroustrup is the College of Engineering Chair in Computer Science at Texas A&M University.

He is the author of three editions of the definitive book on C++, The C++ Programming Language, The Design and Evolution of C++ (1994), The Annotated C++ Reference Manual (1989), and a textbook for freshmen and beginning programmers, Programming Principles and Practice Using C++ (2009). These books have been translated in numerous languages.

C++ is one of the most widely used programming languages. It is used for everyday applications such as internet browsers and cell phones as well as scientific applications, such as NASA's Mars Rovers and the human genome project. Its key strength is in infrastructure applications, such as wind turbine control, micro-electronics industrial tools, and Google.

Stroustrup is a member of the National Academy of Engineering, an IEEE Fellow, an AT&T Fellow, and an ACM Fellow. He is actively involved in the ANSI/ISO standardization of C++.

In 1993 he received 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." In 2008, Stroustrup received the Dr. Dobb's Excellence in Programming award for "advancing the craft of computer programming."

Stroustrup is also a recipient of the 2009 Association of Former Students at Texas A&M University Distinguished Achievement Award in the Category of Research at both the College of Engineering and University levels. His elevation to Distinguished Professor is a very noteworthy achievement as it signifies the excellence and quality of Dr. Stroustrup's teaching and research in programming languages.

Thursday, January 28, 2010

What Should We Teach New Software Developers? Why?

Dr. Bjarne Stroustrup, Professor and College of Engineering Chair in Computer Science at Texas A&M University, recently wrote an article for Communications of the ACM where he speaks about the fundamental changes to computer science education that are required to better address the needs of industry. The article in its entirety can be found here.

Thursday, August 6, 2009

Bjarne Stroustrup Expounds on Concepts and the Future of C++

In his recent article on DevX, Danny Kalev asks Bjarne the hard questions about concepts and C++'s future.

A year ago, everyone was all but certain that the C++0x standard was just around the corner, and that it would include concepts (see Danny Kalev's earlier interview with Bjarne Stroustrup, the creator of C++, from August 2008). However, In July 2009 the C++ standards committee decided to remove concepts from the C++0x by an unprecedented move. Danny's recent controversial editorial was among the first to report that decision and its possible consequences. Despite vociferous disagreements over the removal of concepts themselves, nearly everyone agrees that the committee's decision left open many questions not only about concepts, but also about the committee's charter, and even the future of C++ itself.

Therefore, Danny has interviewed Bjarne Stroustrup again, this time to capture his thoughts about concepts, their removal, and the impact of that decision, along with his take on other pressing questions that currently concern the entire C++ community.

Source: DevX: Bjarne Stroustrup Expounds on Concepts and the Future of C++

Monday, February 16, 2009

Book Signing and Reception for Dr. Bjarne Stroustrup

by Tony Okonski

image of Dr. Bjarne StroustrupPlease join us for a book signing and reception honoring Dr. Bjarne Stroustrup on the release of his new book, Programming Principles and Practice Using C++. The reception will be held from 3-5pm on Friday, February 20, 2009 at the J. Wayne Stark Galleries on the campus of Texas A&M University.

Programming Principles and Practice Using C++ was written for those who have never programmed, and it has been tested with more than 1,000 first-year students at Texas A&M University. It is the current textbook for the ENGR 112, Foundations of Engineering 2, and CPSC 113 Intermediate Programming and Design courses; however, practitioners and advanced students will gain new insight and guidance by seeing how a recognized master approaches the elements of his art.

This book was written primarily to teach the fundamentals, concepts, and techniques of programming in greater depth as compared to traditional introductions. This approach creates a solid foundation for writing useful, correct, maintainable, and efficient code. The book also serves as a general introduction to programming, covering both object-oriented programming and generic programming. It is a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. The book presents modern C++ programming techniques from the start, introducing the C++ standard library to simplify programming tasks.

The book covers a wide range of essential concepts, from design and programming techniques, language features, and libraries, including input, output, computation, and simple graphics, to more specialized topics, such as text processing and testing, and provides abundant reference material. Source code and support supplements are available from the author's website. Some comments from readers:

"A remarkable balance of accessibility and accuracy."

"Up until now, I looked in vain for one that combines a good explanation of programming principles with a good explanation of C++."

"The sheer joy that shines throughout the pages. It's clear that Bjarne Stroustrup is still jazzed about programming after all this time."


Dr. Bjarne Stroustrup is the designer and original implementer of C++ and the author of The C++ Programming Language. He is the College of Engineering Chair in Computer Science and Professor at Texas A&M University, a member of the U.S. National Academy of Engineering, and an AT&T Fellow. He is a founding member of the ISO C++ standards committee.

Source: Department of Computer Science at Texas A&M University

Monday, December 15, 2008

Bjarne Stroustrup on Educating Software Developers

In this interview Dr. Stroustrup speaks about the challenges and problems – and improvements being made – in computer science programs. Among issues like perceptions of offshoring and the need to balance the theoretical with the practical, he addresses complaints by tech companies about the lack of fully qualified CS graduates.

Source: Datamation

Wednesday, June 25, 2008

The A-Z of Programming Languages: C++

by Naomi Hamilton

Bjarne Stroustrup, the creative force behind one of the most widely used and successful programming languages — C++ — is featured in an in-depth 8-page interview where he reveals everything programmers and software engineers should know about C++; its history, what it was intended to do, where it is at now, and of course what all good code-writers should think about when using the language he created.

Tuesday, April 15, 2008

Bjarne Stroustrup on the Evolution of Languages

by Howard Dierking

Every once in a while, an evolutionary leap rapidly advances and reshapes the entire field of engineering. Such a leap occurred in software development with the introduction of the C++ programming language. This leap was not inherent in the language itself: object-oriented languages such as Simula67 and Smalltalk existed prior to C++. But because C++ was built on top of the C programming language (and could compile existing C programs), it was able to bring the abstractions of object-oriented thinking into the mainstream.
C++ has inspired a great deal of thought surrounding software design and development, from design patterns to meta-programming. And because of its portability among hardware platforms and its lower-level expressiveness, C++ will assuredly be essential in a world of faster, smaller hardware.
I recently had the pleasure of talking to Bjarne Stroustrup, the creator of C++, about a host of topics, from his thoughts on languages to general industry trends to his own personal reading list. Many of the questions asked were suggested by readers via my blog, so thanks to everyone who contributed questions. And of course, thanks to Bjarne. Continue to the interview ...

Monday, March 31, 2008

An Interview with Bjarne Stroustrup

by James Buchanan

C++ creator Bjarne Stroustrup discusses the evolving C++0x standard, the education of programmers, and the future of programming.

http://www.ddj.com/cpp/207000124

Thursday, March 27, 2008

Dr. Dobb's Excellence in Programming Award

Santa Clara, Calif. - Best-selling author Bjarne Stroustrup, inventor of C++ and author of the Addison-Wesley title The C++ Programming Language, has received the Dr. Dobb's Journal Excellence in Programming Award.

The Dr. Dobb's Journal Excellence in Programming Award is annually bestowed on individuals who, in the spirit of innovation and cooperation, have made significant contributions to the advancement of software development. Stroustrup's award acknowledges significant achievements in object-oriented programming, software architecture and modeling.

"I'm especially pleased to receive this award because it reflects the views of real-world software developers and shows that with persistence and a bit of luck an individual can still make a difference", Stroustrup said. This award has been bestowed on few of the industry elite, including Linus Torvalds, the inventor of the LINUX operating system, Guido van Rossum, the Python programming language creator, and Larry Wall, author of the Perl programming language.

In addition to the The C++ Programming Language, now in its third edition, Stroustrup is the author of The Design and Evolution of C++, The Annotated C++ Reference Manual, and the forthcoming Programming: Principles and Practice Using C++, to be published in August.

Bjarne Stroustrup is the designer and original implementer of C++ and the author of The C++ Programming Language and The Design and Evolution of C++ from Addison-Wesley. His research interests include distributed systems, simulation, design, programming techniques, software development tools and programming languages. Stroustrup is the College of Engineering Chair in Computer Science at Texas A&M University and an AT&T Fellow. He is a member of the National Academy of Engineering, an AT&T Bell Laboratories Fellow, an IEEE Fellow and an ACM Fellow. He is actively involved in the ANSI/ISO standardization of C++.

This article was written by Andrea Bledsoe for Engineering Weekly; with contributions by Tony Okonski

Friday, December 7, 2007

C++ Chronicles

Nostalgic recollections of some early days of C++ :-)