[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Axiom-developer] Aldor and Lisp

From: Bill Page
Subject: RE: [Axiom-developer] Aldor and Lisp
Date: Fri, 21 Oct 2005 21:53:23 -0400

On October 21, 2005 2:08 PM Juergen Weiss wrote:
> In my opinion, a drawback of the current 
> implementation of AXIOM in BOOT/LISP is,
> that BOOT/LISP does not easily allow the use of
> typed variables (defstruct). In more modern
> lisp programming lists are out, defstruct
> is in (if we forget OO altogether) ;-). So
> the implementation technique of the AXIOM 
> interpreter/compiler lacks a feature (typed data),
> for which AXIOM is famous as a computer algebra
> system. This is rather unfortunate.

I think that is a very valuable observation which
is especially relevant if we are contemplating
making significant improvements to the Axiom
interpreter. Regarding the compiler, I am still
convinced that Aldor is by far the best way forward.

Did you mean the following as alternatives?

> So you could extend BOOT with defstruct,

This makes a lot of sense to me. Making improvements
to Axiom making improvements in it's foundations
sounds like a reasonable long term strategy.

> drop BOOT and convert everything to lisp,

Contrary to some people, I think BOOT was and still
is very important in the overall design of Axiom. You
can see everywhere examples of how the language in
which something is written affects the look and feel
of things written in that language. Clearly no one
wanted ScratchPad to look and feel like lisp (but
perhaps work like lisp, yes). So it was an inspired
idea, I think to first write a language that was
"half way in between" so as to speak.

If one were to drop boot, I think one might risk
the long term logical integrity of this design.
In BOOT you still have low level access to the
features of lisp that are essential for symbolic
mathematics, but it is dressed in a syntax closer
to the SPAD high level target language. If we want
some of advantages of new features of lisp (e.g.
defstruct and types) to be available to Axiom,
the best place to start is BOOT - in other words
BOOT with primitive types.

> define the data with defstruct in lisp
> and use the accessor functions from BOOT.

Could you explain a little more what you mean by
this approach? Do you mean using the built-in ability
in BOOT to escape to lisp when necessary or more
convenient? What are the "accessor functions" in

Bill Page.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]