Allegro + Maxima on Windows.



Am Freitag, den 24.06.2011, 14:00 -0700 schrieb Richard Fateman:

Some words about DBM-READ:

When we think of a Lisp-read-eval-loop, then the function DBM-READ
replaces the Lisp function READ. A better name for DBM-READ would be
MAXIMA-TOPLEVEL-READ and a better place would be the file macsys.lisp.

The function DBM-READ reads input from a stream, which can be the
standard-input or a file in a demo- or batch-mode. If DBM-READ is
reading from the standard-input first a prompt is printed and the
function waits for input from the user. DBM-READ handles some special
chars like ":" for break commands or "?", a shortcut to get
documentation. If there are no special chars, then DBM-READ calls the
function MREAD. This is the main routine of Maximas parser. The return
value is a valid  but unevaluated and unsimplifed Maxima expression.

The function DBM-READ is called from the function CONTINUE. Again it
would be better to have a more expressive name like
MAXIMA-TOPLEVEL-LOOP. The function CONTINUE is Maximas read-eval-loop.
The function reads the input from a stream, evaluates and simplifies the
user input, and at last prints the result on the display. In addition
the function CONTINUE does some bookkeeping, stores the input and result
into labels and calculates the runtime of evaluation.

For German readers it might be interesting to have a look at the
documentation Maxima intern at
http://crategus.users.sourceforge.net/kmaxima.html
In this documentation I have started to write about Maximas internal
functions. The implementation is simplified to work out the main ideas
of the implementation. The first chapter Grundger?st is complete and
shows the main ideas of the toplevel functions and the way to implement
more functionality of a computer algebra system.

Dieter Kaiser