Apr 97 URLs
Volume Number: 13 (1997)
Issue Number: 4
Column Tag: MacTech Online
Watch Your Languages
By Nicholas C. "nick.c" DeMello
In 1979 a student named Bjarne Stroustrup presented a Ph.D. thesis entitled Communication and Control in Distributed Computer Systems to Cambridge University. While working on that thesis, and later while working at Bell Laboratories, Stroustrup began building the conceptual basis and C code that eventually evolved into his C++ language. In this column, we will explore some of the online resources dedicated to that language.
Bjarne Stroustrup has a home page that presents a brief biography, some frequently asked questions about C++, and even a copy of a rather famous post Stroustrup made to comp.lang.c++ (in which he responded to many criticisms about C++). There's also a copy of a post he made in 1983, regarding his opinions on how best to learn C++. Various papers and books Stroustrup has written are described as well. The most significant of these is The C++ Programming Language 2nd ed (Addison-Wesley, 1991, ISBN 0-201-53992-6). The first edition of this book, introduced in October of 1985, was the formal introduction of C++ to the world, and is still the definitive description of the language. An errata of that book is available online, as well as another essential reference to C++ - the working papers for the ANSI C++ standard.
Bjarne Stroustrup's Home Page
The C++ Programming Language Errata
The ANSI C++ Working Papers
Resources for Learning C++
An essential step in learning anything is reviewing the FAQs. C++ has been around a long time, and the FAQs are well understood and have been artistically compiled by Marshall Cline. So well compiled that the C++ FAQ, originally posted to comp.lang.c++, has evolved into the C++ FAQ, a book available from Addison-Wesley's developer press (by Cline and Lomow, Addison-Wesley, 1995, ISBN 0-201-58958-3). Marshall still maintains an HTML and text version of the FAQ called the C++ FAQ Lite. Lite is a relative term though, this document is regularly posted to comp.lang.c++ in seven parts, and contains a huge amount of useful information (imagine how much more exists in the book form). You'll also find a posting of the C++ Libraries FAQ on comp.lang.c++ and news.answers - maintained by Nikki Locke. This FAQ, also available in HTML form, contains an extensive listing of C++ class libraries on subjects as diverse as processing gray scale images, developing neural networks and genetic algorithms, adding relational database functionality, garbage collecting, matrix manipulation, and MPEG decoding.
However, FAQ's aren't enough. A structured tutorial is a good way to get started with a new language. Some excellent tutorials exist online, such as the C++ Annotations pages and the eight part Accelerated Introduction to C++. Once you have a handle on C++, and want to learn more about the Object Paradigm, visit the Introduction to Object-Oriented Programming Using C++.
The C++ FAQ Lite
The C++ FAQ Book
C++ Libraries FAQ
Understanding C++: An Accelerated Introduction
Introduction to Object-Oriented Programming Using C++
Resources for Building with C++
There is a wealth of online resources for C++ programmers. The C/C++ Users Group offers an extensive collection of example code in C and C++, accessible through indices organized by subject, title, platform, or author and through a search engine. The http home of the IRC channel #C++ also offers archives of source code and reference information. Another good starting point is Jon's C++ Resources. Jon Morris Smith has arranged his links (which point to libraries, compiler specific information, book reviews, extensions, STL, and other resources) by geographic location. This will be especially useful to European readers who sometimes have difficulty accessing US based resources. Also check out Wolfgang Wanders' Getting Informed about C++ page and the C++ Virtual Library for a wide selection of links.
There are a lot of exciting things happening with OOP these days, but C++ is still the king of the object paradigm. There is a wealth of libraries, tutorials, and source available to help you make the most of C++. Hopefully this column has put you in touch with some of those resources that are available online.
- nick.c email@example.com