Apr 97 URLs
Volume Number: 13
Issue Number: 4
Column Tag: MacTech Online
Watch Your Languages
By Nicholas C. "nick.c" DeMello
Definitive C++
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
http://www.research.att.com/~bs/homepage.html
The C++ Programming Language Errata
http://sf.www.lysator.liu.se/c/bs-errata.html
The ANSI C++ Working Papers
http://www.research.att.com/c++/
http://www.cygnus.com/misc/wp/
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
ftp://rtfm.mit.edu/ftp/pub/usenet-by-group/comp.lang.c++/
http://www.cerfnet.com/~mpcline/C++-FAQs-Lite/
The C++ FAQ Book
http://heg-school.aw.com/cseng/authors/cline/FAQ/FAQ.html
C++ Libraries FAQ
ftp://rtfm.mit.edu/ftp/pub/usenet-by-group/comp.lang.c++/C++-faq/libraries/
http://purl.oclc.org/NET/C++Libraries/
C++ Annotations
http://www.icce.rug.nl/docs/cpp.html
Understanding C++: An Accelerated Introduction
http://www.iftech.com/oltc/cpp/cpp0.stm
Introduction to Object-Oriented Programming Using C++
http://uu-gna.mit.edu:8001/uu-gna/text/cc/index.html
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 online@mactech.com