Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

C++Sources


July 1997/C/C++Sources

The only thing more important than useful information is information on where to find it.


Focus On Reader Requests

During the past 18 months that I've been producing this column, interacting with readers has been the most exciting part of the job. Helping people find the everyday tools they need is much more fulfilling than trying to guess what people "might" like to see. From Italy to Japan, readers of this column and participants in the C/C++ Users Group have written to me in desperate need of a library or tool. Most of them are sure that the tool in question is "out there" somewhere on the Internet, but they have failed in frustration to find it themselves. I don't claim to be more clever than these folks, I just have a little more experience in knowing where to start looking.

Of course, I've replied to everyone by e-mail prior to publication. But if you've got a better link or tool to offer than what I've come up with, then by all means send a brief e-mail. I anticipate that reader-originated requests will become a growing segment of this column. Read on; odds are you'll find something you've been looking for or maybe gave up looking for.

About the C/C++ Users Group

The C/C++ Users Group has been a major influence in promoting user-supported software since 1981. The CUG produces CD-ROM updates twice yearly which are announced right here in the C/C++ Users Journal. Several of this month's recommendations point to the CUG CD-ROM as well as the Internet. I'll only mention once where to learn more about it or find where to order it:

http://www HAL9K.com/cug

Subscriptions are now available from Walnut Creek CD-ROM. A subscription saves you 50% off buying CDs individually and also guarantees that you always have the newest edition.

http://www.cdrom.com

C/C++ Sources: Reader Requests

[email protected] writes:

How about a C-to-C++ tutorial, for people who started in C, but want to learn C++. :)

[email protected] writes:

[I would like to see] a Tutorial on C/C++

C++ Answer Man:

Here's some URLs for C++ tutorials:

http://www.desy.de/ftp/pub/userwww/projects/C++/learning.html
http://www.up.ac.za/information/c-c++-learn.html

Coronado C tutorial:

http://www.simtel.net/pub/simtelnet/msdos/c/gencsrc.zip
http://www.simtel.net/pub/simtelnet/msdos/c/genctxt.zip

Coronado C++ tutorial:

ftp://www.simtel.net/pub/simtelnet/msdos/cpluspls/cptuts22.zip
ftp://www.simtel.net/pub/simtelnet/msdos/cpluspls/cptutt22.zip

I highly recommend the Coronado C++ tutorial to all my colleagues.

On the C/C++ Users Group CD-ROM, there are several tutorials, including these:

(CUG 252) C Tutor Doc
(CUG 253) C Tutor Source
(CUG 353) C++ Tutor: a self-paced course
(CUG 442) C Pointer and Array Tutorial

[email protected] writes:

[I would like to see] OpenGL 3D interface programming utilities.

C/C++Answer Man:

There's only one URL to know to get all the information you need about OpenGL, including where to find libraries that provide a higher level interface:

http://reality.sgi.com/mjk_asd/opengl-links.html

Javier Medina <[email protected]> writes:

Do you know where i can get a cheap/free compiler for C/C++: I am a broke student. Thanks.

C/C++ Answer Man writes:

You didn't say what platform, so I assume you have a 386 or better PC. In that case, you want the GNU C/C++ Compiler, its free. Plan on using about 15 MB of disk space:

http://www.delorie.com/djgpp/

If you have less space or require only C (as opposed to C++) and are working on small educational size programs, I recommend the Miracle C Compiler. Miracle C requires a small shareware payment for continued use:

http://www.ncf.carleton.ca/~bg283/

Miracle C will also appear on the July 1997 edition of the C/C++ Users Group CD-ROM:

(CUG 464) Miracle C Compiler for MS-DOS

[email protected] writes:

[I would like to see] graphical algorithms, CAD related (fourier transforms)

Dorisvaldo B Paiva <[email protected]> writes:

Hi Mr Volkman,

Excuse my taking your time, but I'm looking for a piece of code to do Fast Fourier, or better, DFT for a homemade EECG. I need to analyze brain waves in the range 4 to 30 Hz, 64/s, 10 bits ADC. I have seen some code in the net, But I don't have large experience in C++. I'm learning yet and most of them are missing some parts. Any help will be welcome, thanks very much.

C/C++ Answer Man:

Here are some places to look:

http://www.xraylith.wisc.edu/~khan/software/fftpack/fftpakc.html
http://www.lh.com/oleg/ftp/packages/fft.tar.gz
ftp://ftp.usc.edu/pub/C-numanal/fft-stuff.tar.gz
http://www.spektracom.de/~arndt/fxt/fxtpage.html#fxt
http://monet.uwaterloo.ca/blitz/

Also, there are many FFT-related algorithms on the ACM Collected Algorithms (CALGO) page. CALGO is new to the web and has many sophisticated algorithms for you to peruse.

http://www.acm.org/calgo/contents

Scot Nielsen <[email protected]> writes:

Any ideas where I can find the source to ed or any other line editor? I've been looking for days. Any help would be much appreciated.

C/C++Answer Man:

I recommend GNU ed to solve your problem. GNU ed is an 8-bit clean, POSIX-compliant line editor written in C. For a description of the ed algorithm, see Kernighan and Plauger's book Software Tools in Pascal, Addison-Wesley, 1981.

Bugs reports/suggestions for GNU ed are welcomed and may be sent to [email protected].

ftp://prep.ai.mit.edu/pub/gnu/ed-0.2.tar.gz

The C/C++ Users Group CD-ROM also has a bevy of full-screen editors for your consideration:

(CUG 373) MicroEMACS for Windows
(CUG 386) Thomson-Davis Editor
(CUG 399) MINED: Multi-Platform Editor
(CUG 411) Vi Improved (VIM) Editor
(CUG 414) THE: Highly Portable Text Editor
(CUG 424) ED Editor: highly portable windowing editor
(CUG 428) PICTOR: Text-Mode Video Library

[email protected] writes:

[I would like to see] libraries for GIF and/or JPG graphical manipulation.

C/C++Answer Man:

You can't do better than the Independent JPEG Group (IJG) for JPEG implementations. I've personally used it in commercial projects. Also, technical support via their mailing list is quite good. IJG provides C code for JPEG compression that is both free and highly portable. IJG JPEG also includes documentation and test files.

ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6a.tar.gz

or

ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/jpegsr6a.zip

(or at any Simtel mirror site).

For more information, see also

http://www.cis.ohio-state.edu/hypertext/faq/usenet/jpeg-faq/part2/faq-doc-14.html

A distribution is also available on C/C++ Users Group CD-ROM:

(CUG 381) JPEG: Highly portable graphics compression

Hamid Montazeri <[email protected]> writes:

I am in the process of investigating available quality tools/libraries for finite state machine type problems. My project is in need of state machines for proper behavior and I am wondering if you are aware of some tools/libraries in this area. Many thanks for your e-mail.

C/C++Answer Man:

FIRE Lite, by Bruce Watson, is a finite automata toolkit written in C++. It provides production quality implementations of finite automata and regular expression algorithms. FIRE Lite implements several finite automata minimization algorithms, including Hopcroft's O(n lg n) algorithm. FIRE Lite supports both deterministic and non-deterministic automata, and it has been used for compiler construction, hardware modeling, and computational biology applications.

ftp://ftp.win.tue.nl/pub/techreports/pi/automata/toolkit/v1.1/fire.tar.gz

A commerical version is also available at

http://www.RibbitSoft.com

Grail, by Darrell Raymond and Derick Wood, is a symbolic computation environment for finite-state machines, regular expressions, and other formal language theory objects. Grail converts readily between input machines and expressions. It can minimize, make deterministic, complement, and perform many other operations. Grail is written in C++ and can be accessed either through a process library or through a C++ class library. It handles machines with up to 100,000 states and dictionaries of up to 20,000 words.

http://www.csd.uwo.ca/research/grail

(Lee Gernes) [email protected] writes:

Have you ever come across the C source for either lint or prettyC?

C/C++ Answer Man:

There is a freely available program called 'lclint' that does much the same thing as traditional lint. The announcement and source code are available at

ftp://larch.lcs.mit.edu/pub/Larch/lclint
http://larch-www.lcs.mit.edu:8001/larch/lclint.html

The best prettyprinter with source is of course GNU Indent. GNU Indent, from Joseph Arceneaux (San Francisco, CA), becomes the newest installment of high quality tools from the GNU project. The Indent program changes the appearance of a C program by inserting or deleting whitespace.

The Indent program can be used to make code easier to read or to convert from one style of writing C to another. Indent understands a substantial amount about the syntax of C, but it also attempts to cope with incomplete and malformed syntax. Indent can replace the original source .C file and retain a backup copy or else write its output to a new .C file. See

ftp://prep.ai.mit.edu/pub/gnu/indent-1.9.1.tar.gz

There is also a copy on the CUG CD-ROM

(CUG 392) GNU Indent: beautifies your C code

Lee Gernes again:

Thanks very much for your speedy reply! One other request: How about a pclint program that checks Microsoft Windows 3.11 code?

C/C++Answer Man (again):

You can use TracePlus/Win32 to follow all of your Windows API calls.

http://www.sstinc.com/sstinc/

TracePlus and many other great programming tools are featured in my book entitled Windows Programming with Shareware Tools.

http://www.HAL9K.com/book

[email protected] writes:

I'm interested in standard public code, genetic programming, and number theory.

C/C++Answer Man:

For a list of interesting C/C++ source code links on the WWW related to genetic programming, see

The comp.ai.genetic FAQ

http://www.cis.ohio-state.edu/hypertext/faq/usenet/ai-faq/genetic/top.html

The "Genetic Algorithm Research Group Online Resources" page:

http://www-personal.engin.umich.edu/~streak/online.html

The "CMU Artificial Intelligence Repository" page:

http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/genetic/ga/systems/genlib/0.html

The C/C++ Users Group CD-ROM has the following tools:

(CUG 369) Genitor: Genetic Algorithm tool
(CUG 370) GATool: Genetic Algorithm Tool
(CUG 401) SGPC: Simple Genetic Programming in C

[email protected] writes:

By visiting your site we would appreciate receiving your recommendation for sound, .WAV controls:

1. Speed control real time
2. Volume control real time
3. Pan L/R

C/C++ Answer Man:

There is no better product for your needs than DiamondWare's Sound Toolkit. They can meet these requirements and many others, such as polyphonic sound and dynamic pitch adjustment. Currently, their product is a DLL, but very easy to call from VB, C, or C++. Get a shareware evaluation version at:

http://www.dw.com

For more information, see my review of their toolkit in Windows Developer's Journal, December 1996 issue

http://www.wdj.com

Arne Morken <[email protected]>

I just read your article about cross-platform development tools. You have not mentioned the Amulet toolkit, so you might be interested in checking out the Amulet homepage:

http://www.cs.cmu.edu/~amulet/

I have used both Amulet and wxWindows (for some "toy" projects), and find Amulet to be more user friendly and "abstract." A new version has just been released, with interesting new features.

C/C++Answer Man:

Thanks for the info, I'll pass it along to CUJ readers.

Richard Holford <[email protected]> writes

What has happened to the MetalBase program you described in your column? I found an equivalent description and address in "free-databases," but ftp to ftp.uu.net etc. comes up empty.

C/C++Answr Man:

Good question! Fortunately, it seems to have reappeared on several other sites, such as

http://ftp.uni-paderborn.de/pub/sunsite/apps/databases/mbase.tar.z
ftp://sunsite.kth.se/pub/Linux/apps/databases/mbase.tar.z

Thanks for bringing this to my attention! o

Victor R. Volkman received a BS in Computer Science from Michigan Technological University. He has been a frequent contributor to the C/C++ Users Journal since 1987. He is the author of the book Windows Programming with Shareware Tools. He can be reached at http://www.HAL9K.com/home.htm, or email to [email protected].


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.