Ted,
About calling other programs from Maxima and vv,
that is possible but somewhat problematic. Be that as it may,
several GUI's have been created as separate programs.
See http://maxima.sourceforge.net/relatedprojects.shtml for a list.
In every case (so far as I know) the GUI front end talks to
Maxima via a socket. The difficult part of that approach is that
it is hard to know when Maxima has completed a computation
or if it is waiting for more input. There is an assumption in the
Maxima code that there is always someone sitting at the
console. I am considering ways to weaken that assumption
but the problem is nontrivial.
Aside from working with sockets, there is also the possibility
of using a function call interface. It is trivial to call Lisp
functions from Maxima -- if myprogram.lisp contains
a function FOO then load("myprogram.lisp"); ?foo();
is enough. myprogram.lisp can also call Maxima functions.
There is more about Lisp & Maxima in the reference manual.
See "Lisp and Maxima" at
http://maxima.sourceforge.net/docs/manual/en/maxima.html .
? lisp at the interactive prompt should find the same text.
Calling C or Fortran is theoretically possible but more work,
as it would require using a so-called foreign function
interface for Lisp. There is not yet a FFI which works for
all Lisp implementations, although there seems to be
at least one active project for that. Fortran functions can
be translated into Lisp via f2cl, see:
http://clocc.cvs.sourceforge.net/clocc/clocc/src/f2cl
Maybe you can tell us more about what you want to do,
then we could give some more specific advice.
All the best,
Robert Dodier