DDJ August 1996 C/C++ Programming


FEATURES

BEYOND C++ TEMPLATES

by Fred Wild

Templates are just one approach to achieving code reuse in C++ programs. Fred examines templates and a number of other forms of instantiation some of which you may be acquainted with, and others you may not.

OBJECT-ORIENTED INTERPROCESS COMMUNICATION

by Stephen Blaha

Stephen shows how to place IPC services in C++ wrappers. He then turns his attention to Java socket classes, which illustrate an alternative object oriented interface.

STL ALGORITHMS

by Dan Zigmond

STL generic algorithms are independent of any particular data representation. Given a particular data structure that meets the algorithm's access requirements, they are as efficient as an algorithm hand-coded for that data structure.

LINEAR ALGEBRA WITH C++ TEMPLATE METAPROGRAMS

by Todd Veldhuizen and Kumaraswamy Ponnambalam

A C++ technique called "template metaprograms" makes it possible for you to exploit the interpretive nature of the C++ template mechanism to write metaprograms that are interpreted at compile time and generate specialized algorithms as their output.

DYNAMIC MESSAGE PASSING IN C++

by Pierre Arnaud

Pierre implements Objective-C-like dynamic message passing in C++, using a set of macros and classes. This project provides a set of operating-system-independent classes that let you build and modify a user interface with only a few mouse clickseven from within a running application.

INSIDE SOFTRAM 95

by Mark Russinovich, Bryce Cogswell, and Andrew Schulman

Our authors examine "RAM doubling" technology, then look inside SoftRAM 95 to find out what it does and, more importantly, does not do.

EMBEDDED SYSTEMS

CONCURRENT SMALL C

by Andy Yuen

Concurrent Small C is a programming language specifically designed for embedded-system development. A subset of Small C, Concurrent Small C uses five new keywords to provide direct support for preemptive multitasking, interprocess communication, and interrupt handling.

NETWORKED SYSTEMS

NETWORKING CD-ROMs USING CACHED CD IMAGES

by John H. McCoy

John describes a cache driver that reads cached CD images and makes them appear as CD-ROM drives. The images can be located on either the client machine or on a network server if the client accesses the network via a real-mode redirector rather than a shell.

EXAMINING ROOM

EXAMINING SYMANTEC'S CAFE

by Anil Hemrajani

Cafe is a 32-bit standalone Java visual-development environment available for both Windows and Macintosh. Anil uses it to develop a typical Java appleta phonebook for retrieving information about a person at a given Web site using their first name, last name, telephone number, fax number, or e-mail address.

PROGRAMMER'S WORKBENCH

BUILDING AN EXPERT SYSTEM

by Gregg Weismann

Gregg describes an expert system that helps in the installation and operation of network and network/modem combo cards. He developed the system using Borland C++, Microsoft Assembler 6.1, and Amzi! Prolog+Logic Server.

COLUMNS

PROGRAMMING PARADIGMS

by Michael Swaine

Between reading Dorfman and Ghosh's Developing Games that Learn and catching up on his correspondence, Michael takes time to attend Apple's World Wide Developer's Conference.

C PROGRAMMING

by Al Stevens

Interviewing for a job as a C++ programmer? Al has some tips for you, after which he discusses the Windows 95 Start Menu.

JAVA Q&A

by Cliff Berg

How do you send e-mail from a Java applet? Cliff shows you how.

ALGORITHM ALLEY

by Mark R. Nelson

The suffix trees Mark describes here precalculate data structures for fast string searches. To illustrate suffix trees, he presents a program that reads in a string of text from standard input, then builds a tree.

UNDOCUMENTED CORNER

by Scot Wingo and George Shepherd

George and Scot look inside OLE control property pages so you can see what's happening behind the scenes. They also present a workaround for adding parameterized properties to an OLE control.

PROGRAMMER'S BOOKSHELF

by Phil Mitchell

Phil examines Andrew Hodges' Alan Turing: The Enigma and Bruce Blum's Beyond Programming: To a New Era of Design.

FORUM

EDITORIAL

by Jonathan Erickson

LETTERS

by you

SWAINE'S FLAMES

by Michael Swaine

PROGRAMMER'S SERVICES

OF INTEREST

by Monica E. Berg