Seminar by Bjarne Stroustrup at UC3M

This year we had a wonderful C++ start at Universidad Carlos III de Madrid. The Department of Computer Science and Engineering was honored to have Prof. Bjarne Stroustrup giving a seminar on C++ to start the semester.

We are always happy to have Bjarne Stroustrup with us. Since 2019 he holds a Honorary Doctorate by Universidad Carlos III de Madrid and he has visiting us several times.

He is a professor of Computer Science at Columbia University in New York City. Dr. Stroustrup is a member of the US National Academy of Engineering, and an IEEE, ACM, and CHM fellow. He received the 2018 Charles Stark Draper Prize, the IEEE Computer Society’s 2018 Computer Pioneer Award, and the 2017 IET Faraday Medal. He did much of his most important work in Bell Labs.

Both talks were very well attended with a nice mix of professional developers from industry, students (bachelor, masters and PhD) and researchers and professors from several different departments.

You may get a playlist with both talks here:

This is a short summary of the two talks he gave:

Day 1: C++ 20: Reaching the aims of C++.

Out of necessity C++ has been an evolving language. I outline some early ideals for C++, some techniques for keeping the evolution directed, and show how C++20 comes close to many of those ideals. Specific topics ncludes type-and-resource safe code, generic programming, modularity, the elimination of the preprocessor, and error handling. Naturally, over the years, C++ has acquired many “barnacles” that can become obstacles to developing elegant and efficient code. That has been a recognized problem since the early days of C – Dennis Ritchie and I talked about it – so we must distinguish between what can be done and what should be done. The C++ Core Guidelines is the current best effort in that direction.

Day 2: Type-and-resource Safe programming in ISO Standard C++.

You can write C++ with no violations of the type system, no resource leaks, no memory corruption, no garbage collector, no limitation of expressiveness or performance degradation compared to well-written modern C++. This talk show how this can be achieved – and guaranteed – by the applying the C++ Core Guidelines, simple supporting libraries (mostly the ISO C++ standard library), and static analysis.

Many examples demonstrate how this can be done with code that’s dramatically simpler than older C++ (and C) code. This talk will touch upon RAII, type deduction, span, range checking, nullptr, initialization, invalidation,  casting and variants.

This entry was posted in C++ language, cpp-posts, events, Trip Reports and tagged , . Bookmark the permalink.