Axiom/FriCAS Interpreter

This is an experiment to see how much of the FriCAS
interpreter that I can write using SPAD code.
Currently the interpreter is written in 'boot' code. For
example in int-top.boot, server.boot, i-toplev.boot
i-syscmd.boot and many others.

Motivation

Boot code is poorly documented and loosely typed. There
would be lots of advantages if boot code were removed. I would like to be able to modify the interpreter so that I could have a chance to implement the features that I would like (see wishlist here). Modifying the existing interpreter is not practical for me, I don't have any experience with boot/Lisp code and any changes are likely to have unpredictable consequences, even for those who are experienced with the code. I may have a better chance with more strongly typed, higher level and better documented SPAD code.

Overview

The interpreter is a continuously running loop which I have called the 'main loop'. Each cycle of the loop goes through the stages on the right:

So far I have started working on the following, which is discussed on these pages:

The plan is to gradually implement
more of these functions in high level code.

Using The Code

Currently I am testing this out by running my interpreter loop inside the existing compiler loop. This makes it easier to work on and debug, it means that I don't have to recompile everything ever time I make some changes. At some stage in the future, if my experiments go well, I will need to compile this in as the main interpreter loop.

The code I have written to experiment with these things is on github here. Currently it just outputs diagnostic information to help me debug it.

To try the code download 'Interpret.spad' and 'types.spad' from github and compile it like this:

Note: we need to compile first in 'bootStrapMode' and then again normally, this is because the code has circular references.

Now we have compiled it we can run it as described on the Main Loop page

Computer Algebra Systems

On this page I have put some information about computer algebra systems and in particular Axiom/FriCAS.

Other Code

This is one of a series of pages describing code that I have written for FriCAS. Some of this code has already been included with the FriCAS library and so can be used as soon as FriCAS is installed (as described here). Other code on these pages is not yet included with FriCAS and so would have to be compiled from within FriCAS. For an overview of all the code I have written, on various topics, see page here.

IDE for FriCAS

I am working on an IDE for FriCAS based on Eclipse. So far this program is just experimental, in that it is not yet ready for useful work, but feel free to evaluate it.