Nostalgic recollections of some early days of C++ :-)
Friday, December 7, 2007
C++ Chronicles
Posted by
Unknown
at
14:04
0
comments
Labels: Bjarne Stroustrup, C++
Friday, September 21, 2007
Open Multi-Methods for C++
We've recently got our paper on multi-methods accepted to GPCE'07 and Peter will do a dry run of the presentation on Tuesday, September 25, 2007 at 16:00 in HRBB 302. Please stop by and give us your feedback. Thanks!
Abstract
Multiple dispatch -- the selection of a function to be invoked based on the
dynamic type of two or more arguments -- is a solution to several classical
problems in object-oriented programming. Open multi-methods generalize multiple dispatch towards open-class extensions, which improve separation of concerns and provisions for retroactive design. We present the rationale, design, implementation, and performance of a language feature, called open multi-methods, for C++. Our open multi-methods support both repeated and virtual inheritance. Our call resolution rules generalize both virtual function dispatch and overload resolution semantics. After using all information from argument types, these rules can resolve further ambiguities by using covariant return types. Great care was taken to integrate open multi-methods with existing C++ language features and rules. We describe a model
implementation and compare its performance and space requirements to existing open multi-method extensions and workaround techniques for C++. Compared to these techniques, our approach is simpler to use, catches more user mistakes, and resolves more ambiguities through link-time analysis, runs significantly faster, and requires less memory.
In particular, the runtime cost of calling an open multimethod is constant and
less than the cost of a double dispatch (two virtual function calls). Finally,
we provide a sketch of a design for open multi-methods in the presence of
dynamic loading and linking of libraries.
Technical report on this work can be found here
More information about Peter Pirkelbauer can be found on his webpage.
Posted by
Unknown
at
15:00
0
comments
Labels: Bjarne Stroustrup, C++, Multimethods
Wednesday, September 12, 2007
The Future of C++
by Bjarne Stroustrup
In a rare public talk, C++ creator Dr. Bjarne Stroustrup discusses his ideal in programming languages, as well how he sees the next version (and beyond) of C++ developing. He explains the general selection criteria used for adding new features, some of the legacy of C++, and many other interesting topics. Especially interesting is during the Q&A he explains his views of the embrace and extend mentality some implementations, such as VC++, have taken.
Get the Flash Player to see this video using Flash Player.
Source: University of Waterloo
Posted by
Unknown
at
15:41
0
comments
Labels: Bjarne Stroustrup, C++
Tuesday, July 31, 2007
C++0x: An overview
by Bjarne Stroustrup
A good programming language is far more than a simple collection of features. My ideal is to provide a set of facilities that smoothly work together to support design and programming styles of a generality beyond my imagination. Here, I briefly outline rules of thumb (guidelines, principles) that are being applied in the design of C++0x. Then, I present the state of the standards process (we are aiming for C++09) and give examples of a few of the proposals such as concepts, generalized initialization, being considered in the ISO C++ standards committee. Since there are far more proposals than could be presented in an hour, I'll take questions.
Posted by
Unknown
at
23:00
0
comments
Labels: Bjarne Stroustrup, C++
Wednesday, February 21, 2007
Concepts: Extending C++ Templates For Generic Programming
by Doug Gregor
Concepts are a major addition to C++0x that make templates more robust, more powerful, ... all » and easier to write and use. At their most basic level, concepts provide a type system for templates. Using concepts, the C++ compiler is able to detect errors in the definition and use of templates before they are instantiated. One immediately obvious benefit of this separate type-checking capability is a dramatic improvement in error messages resulting from improper use of templates. Look a little deeper and we find that concepts support an entirely new programming paradigm, Generic Programming, enabling the construction of a new breed of generic libraries that provide better extensibility, composability, and usability than what is possible with today's C++.
This talk will provide an overview of the new features introduced by concepts and how they will benefit C++ programmers. We will see how concepts can be used to express the core components of the C++ Standard (Template) Library, and explore some of the new capabilities that concepts bring to the C++ language.
Posted by
Unknown
at
23:30
0
comments
Labels: C++
C++0x Initialization Lists
by Bjarne Stroustrup
Getting initialization right is an important part of programming. Over the years, this ... all » has led to a mess of language facilities and techniques. This talk describes how C++0x (most likely) will address two issues: how to get a uniform syntax and semantics for all initialization and how to allow initialization by general lists. Obviously, people will want the solution to be really simple and completely compatible. As ever, the resolution is to be almost completely compatible and almost simple. This talk will describe sequence constructors, homogeneous and heterogeneous initializer lists, and (as far as time allows) fit generalized constant expressions, prevention of narrowing conversions, and variadic templates into this picture.
Posted by
Unknown
at
23:00
0
comments
Labels: Bjarne Stroustrup, C++