Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Generic programming and the STL : using and extending the C++ Standard Template Library
Austern M., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1998. 548 pp. Type: Book (9780201309560)
Date Reviewed: Dec 1 1998

Object-oriented programming shows its full potential advantagesonly if the principles of generic programming are also applied. Thisbook centers on writing reusable, generic software components by usingand extending the C++ Standard Template Library (STL). The material isdivided into three parts and an appendix that discusses the common, butnevertheless annoying, problem of portability. Part 1 (chapters 1through 5) is a well-done introduction both to generic programming ingeneral and to the STL. The second part (chapters 6through 9) precisely describes the concepts used in designing thelibrary. The last part (chapters 10 through 16), which makes up morethan half of the book, documents the STL’s predefined algorithms andclasses in detail.

In the first part, the author starts with a small but convincingexample of how to profit from the STL. Then, heintroduces iterators as a concept to separate data structures from thealgorithms operating on them. An iterator points to some item and isable to step through a range. The hierarchy of iterators allows aclassification defining which algorithm can be used with which datastructure. Chapter 4 discusses function objects as a means toparameterize algorithms. Finally, the hierarchy of containers ispresented, giving programmers access to a wide variety of datastructures to be used in different contexts.

Although the second part is titled “Reference Manual: STLConcepts,” it may also be read as a guide to how to constructgeneric programs in any object-oriented language. A generic algorithm isunderstood as consisting of actual instructions that describe the stepsto be performed (but that do not refer to a concrete data structure) anda set of requirements that specify precisely the properties a datastructure must satisfy in order for it to be used with the algorithm.This part proceeds in the same order as the first. Each concept isdescribed following a common schema stating which concept it is arefinement of, defining associated types, explaining syntactically validexpressions, and giving some examples. This part is intended to bereferred to whenever a programmer wants to define a new class oralgorithm, but it may also be used to teach good, up-to-date programmingstyle. The third part lists all the algorithms and classes predefined bythe Standard Template Library. The descriptions are precise,informative, and well organized. It is easy to find the information oneneeds.

This is not a book on object-oriented programming, C++, ordesigning efficient algorithms, although it explains some aspects ofthese subjects. It fulfills its intention of being an introduction todesigning reusable software. A large and well-structured index assistsreaders in finding what they are looking for. I recommendthis book to both application programmers and system programmers.

Reviewer:  H. J. Schneider Review #: CR126047 (98120941)
Bookmark and Share
  Featured Reviewer  
 
Interoperability (D.2.12 )
 
 
C++ (D.3.2 ... )
 
 
Data Abstraction (D.2.11 ... )
 
 
Design Tools and Techniques (D.2.2 )
 
 
Miscellaneous (D.1.m )
 
Would you recommend this review?
yes
no
Other reviews under "Interoperability": Date
Generic programming and the STL: using and extending the C++ Standard Template Library
Austern M., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1998.  548, Type: Book (9780201309560), Reviews: (2 of 2)
Feb 1 1999
.NET 2.0 interoperability recipes: a problem-solution approach
Bukovics B., Apress, Berkeley, CA, 2006.  632, Type: Book (9781590596692)
Jan 31 2007
The dream of a global knowledge network: a new approach
Doerr M., Iorizzo D. Journal on Computing and Cultural Heritage 1(1): 1-23, 2008. Type: Article
Oct 20 2008
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy