m: matrix calculator with C syntax. (c) copyright 1991, Dr. Rick Perry, perry@ece.vill.edu Department of Electrical Engineering, Villanova University, Villanova, PA 19085 610-519-4969, fax: 610-519-4436, hm: 610-259-8734 The implementation is based on the calculator program in Chapter 8 of "The Unix Programming Environment" by Brian W. Kernighan and Rob Pike, Prentice-Hall, 1984. The program was inspired by previous experience with the original Matlab by Cleve Moler, now marketed by The Mathworks, Inc., and by experience with APL, A Programming Language, from IBM. BEFORE COMPILING, check the system dependent definitions for LIBRARY, in file.c, and HELPDIR, in m_cmd.c, and move the lib/ and help/ files accordingly. Makefiles are provided for Unix (Makefile), VMS (Makefile.vms, a simple command procedure), and PC (m.prj for PowerC compiler from Mix Software). m.c (output from `yacc m.y') is provided in case you do not have yacc. m.doc is a document created from the help files using soelim on help/m.so NOTES contains additional notes. TODO is a list of some things which remain to be done to improve the program. This program evolved into its current state somewhat randomly, with many kludges and hacks to make it work. The yacc parser, m.y, is an embarrassment to me, and could stand a complete rewrite. The switch statement is not implemented properly. But at least the implementation of the built-in functions allows for easy extension. Simply add a function to m_cmd.c, m_fn.c, or m_proc.c, add the declaration to m.h, and add a line to the initialization of the fns, cmds, or procs array in init.h