1996 22.11 1998

Vol.22 n°11 (#271) november 1997

(ddj_1997_11.jpg)

EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

A CONVERSATION WITH WILLIAM KAHAN

[author : Jack Woehr]

Noted mathematician and computer scientist William Kahan has played a central role in everything from the design of the 8087 math coprocessor to defining the ANSI/IEEE Standard for binary floating-point arithmetic. He takes time out of his schedule to talk with us about the current state of numeric computing.

SCIENTIFIC COMPUTING: C++ VERSUS FORTRAN

[author : Todd Veldhuizen]

In the past, C++ programs were noticeably slower than their Fortran counterparts. But the performance of C++ programs has improved, mainly because of better optimizing C++ compilers and libraries such as Todd's Blitz++, a C++ class library designed for scientific computing.

EXTENDED-PRECISION NATIVE INTEGERS FOR JAVA

[author : Lou Grinzo]

To address performance problems in the JDK 1.1 BigInteger class, Lou implemented mInts-his own "monster" integer library. The main difference between Lou's mInts and BigInteger is that BigInteger offers arbitrary precision, while Lou's library provides signed integers fixed at 256 bits.

CONVOLUTIONAL ERROR-CONTROL CODES

[author : Hugo Lyppens]

Convolutional codes are error-correction codes that can encode an unlimited number of message symbols into one codeword and support "soft-decision" decoding. Hugo presents a C++ template class that implements both the encoder and decoder.

HIGH-SPEED FINITE-STATE MACHINES

[author : Brenton Hoff]

Many programming problems can be efficiently handled with a custom virtual machine-and many virtual machines can be implemented as finite-state machines. Brenton presents a technique for implementing a virtual machine, using text-processing as an example application.

EMBEDDED SYSTEMS

OPTIMIZING MICROCONTROLLER PERFORMANCE

[author : James Flynn]

Software practitioners often face the challenge of enhancing software performance. James describes one such situation he encountered when developing control software for a Mitsubishi M37735-based cellular phone.

INTERNET PROGRAMMING

TEMPLATE-DRIVEN WEB PAGES

[author : Jay Johansen]

Jay presents "dynadd," a general-purpose, template-driven CGI application that automatically updates web sites.

PROGRAMMER'S TOOLCHEST

MODELING WITH MATLAB

[author : Mark Weaver]

Designing and implementing complicated systems is a complex process. Mark describes how he uses MatLab, a mathematical tool from MathWorks, as a system-level programming tool for modeling communications systems.

DIFFERENCE EQUATIONS AND CHAOS IN MATHEMATICA

[author : Robert Knapp and Mark Sofroniou]

Mathematica provides an environment for technical computing that includes tools for symbolic computation, numerical computation, and graphics. Our authors set up programs and use links to external programs to demonstrate Mathematica's dynamic properties.

COLUMNS

PROGRAMMING PARADIGMS

[author : Michael Swaine]

Copy protection doesn't help at all in Michael's column this month.

C PROGRAMMING

[author : Al Stevens]

Al uses the Windows 95 Wizard dialog box and WinHelp database to build an automated tech-support help desk. He also takes a look the CodeWarrior Professional Release 1 development system.

JAVA Q&A

[author : Clif Berg]

A longstanding problem with Java is that printing support has not been available. JDK 1.1 makes a first stab at solving this problem, and Cliff shows you how to make the most out the printing facilities it provides.

ALGORITHM ALLEY

[author : Tim Kientzle]

In this month's column, Tim goes inside the IMA ADPCM audio-compression format and examines how it is implemented by Microsoft and Apple.

UNDOCUMENTED CORNER

[author : Robert R. Collins]

Robert continues his examination of in-circuit emulators and the Pentium by looking at the Pentium's ICE Mode.

PROGRAMMER'S BOOKSHELF

[author : Gregory V. Wilson]

This month on the bookshelf, you'll find Greg's reports on Object-Oriented Software Testing, by Shel Siegel, UML and C++, by Richard C. Lee and William M. Tepfenhart, Software Metrics, by Norman E. Fenton and Shari Lawrence Pfleeger, Programming Python, by Mark Lutz, and Computing Tomorrow: Future Research Directions in Computer Science, edited by Ian Wand and Robin Milner (eds.).

Forum

LETTERS

[author : you]

NEWS & VIEWS

[author : the DDJ staff]

OF INTEREST

[author : Eugene Eric Kim]

SWAINE'S FLAMES

[author : Michael Swaine]