Programming

Most users of mathematical programs do not use compilers. Indeed, the programming productivity bottleneck (``people time is usually more critical than machine time'') suggests that working on as high a level as possible is advisable. If a ready tool is not available, then general resources (e.g. maple, matlab, gnuplot, geomview, xv, awk, ...) should be considered before writing a program from scratch. But for those whose needs and interests dictate software development, the lab has significant resources to support this activity.

On the Mac side, three machines (Indian, Long, and Ontario) have Think Pascal, and two (Keuka and Niagara) have Think C. Beebe contains the Metroworks Code Warrior Gold release, supporting compilation in both native and 68000 mode for many languages. If you are new to working in these environments and interested only in computation with simple graphics, we can provide sample elementary examples. More sophisticated applications on Macs require heavy use of the ``toolbox''. The lab has several books by Mark & Reed introducing this topic in C or Pascal. The Dan Sydow book ``Metroworks Code Warrior Programming'' is a good place to start on the Metroworks environment. There are also a number of Metroworks tutorials printed out.

We have one copy of the ``Inside Mac'' CD ROM, as well as the Think Reference on Michigan.

The Mathlab Fileserver also contains public domain implementations of a number of languages including lisp and prolog. Beebe's copy of Soft Windows (Windows emulation) has Microsoft Quick Basic with it.

On the Unix side, our programming workhorse is the Indigo 2, Superior. It has C, Pascal and FORTRAN installed, together with many supporting tools. Iris insight is an excellent way to locate supporting materials. C++ is available on CD, and will be installed when adequate space is available. Debugging can be by dbx; we hope to soon clear up the licensing problems with the graphics CaseWindows debugging environmnts.

For people interested in parallel programming, e.g. as part of SPUR, pvm 3.3 (parallel virtual machine) is installed on Superior.

Writing graphics programs in a Unix environment is quite demanding. We can provide simple X examples if that is of interest. However X programming is too involved to be taken up casually. A new tool for easy programming of Unix graphics interfaces is John Ousterhout's Tcl (tool command language) and Tk toolkit. With these, one can interact with a shell (``wish'') to put up interfaces. Do a ``printenv'' on Superior to find environment variables giving the location of these and other resources. The lab has a copy of John Ousterhout's introductory book.

Skylight has gcc as well as Sun C, C++, FORTRAN, and Pascal (pc).

Software development work in a Unix environment usually involves the use of an editor. The usual choices are emacs or vi. It is also possible to use textedit on a Sun under MacX, especially with the Open Windows olwm window manager. Another alternative on superior is pico, the easy to use editor which comes with the mail program, pine. The lab has supporting materials if you need to get started on vi or emacs.

There are books in the lab covering C-shell, X use, emacs, latex, tex pictures, Maple, Matlab, graphics formats, and many other topics. If you have any difficulties with Makefiles, or other Unix utilities, please ask for help - there is a lot of Unix and X development experience available in the lab.

Home Page