Monday, May 3, 1999
Morning Tutorial Sessions (9:00 am - 12:30 pm):
M2am Writing Efficient C++ Programs
Stan Lippman, Consultant
Who should attend: Programmers either using, or about to use C++ for the delivery of production code in which efficiency is a concern. Attendees are presumed to be familiar with Standard C++; that is, the support C++ provides for object-based, object-oriented, and generic programming. Expertise in the language is not required.
In this tutorial, we present a series of C++ idioms for writing efficient C++ programs. We briefly review the underlying C++ object model, and turn to design alternatives when the idioms themselves become overwhelmed (e.g., with large-scale object creation and copy). We will look at object-based design, use of the STL container classes and generic algorithms, and object-oriented programming.
These are particularly effective areas of program efficiency because (a) the idioms generally make for more readable programs, and (b) once the idioms and implementation (or object) model is internalized, the gains in efficiency come mostly for free. In this course, we'll point out areas where experienced C programmers tend to write correct but frightfully sluggish C++ code.
To make the tutorial interesting, we'll walk through successive iterations in improving the performance of a correctly working program. To make the tutorial quantitative, we'll look at some performance numbers for reference.
Stan Lippman provides consultation on C++ and OO software development. Prior to becoming an independent consultant, Stan was principal software engineer at Disney Feature Animation. While at AT&T Bell Laboratories, Stan led the cfront Release 3.0 and Release 2.1 compiler development team. Stan was a member of the Bell Laboratories Foundation Project under the leadership of Bjarne Stroustrup and was responsible for the object model component of a research C++ programming environment. Stan is the author of C++ Primer, Inside the C++ Object Model, and Editor of C++ Gems. For more information see www.objectwrite.com.