axiom-developer
[Top][All Lists]
Advanced

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

RE: [Axiom-developer] Aldor and Lisp


From: Weiss, Juergen
Subject: RE: [Axiom-developer] Aldor and Lisp
Date: Sat, 22 Oct 2005 14:31:35 +0200

> -----Original Message-----
> From: Bill Page [mailto:address@hidden 
> Sent: Saturday, October 22, 2005 3:53 AM
> To: Weiss, Juergen
> Cc: address@hidden
> Subject: RE: [Axiom-developer] Aldor and Lisp
> 
> 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.

If the problems with the inclusion of Aldor into
the Axiom distribution are resolved, we should 
certainly consider moving the algebra library
to the Aldor language. I have no idea how much
work would be involved doing that. But I would
guess that writing a new compiler is much more 
work. To achieve a reasonable design, it could
not be 100 compatible to the old compiler written
in lisp. So we had to migrate the algebra
library to a new language anyhow.

> Did you mean the following as alternatives?

Yes.
> 
> > 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.

I would not advise that road either.

> > 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
> BOOT?

Yes, in lisp the functions to access parts of a structure
(defstruct) are just ordinary lisp macros which can
get called from BOOT as well. One could define lisp macros 
to set parts of a structure. On the long run,
an extension of the BOOT syntax for assignment (setf in lisp)
and some more "syntactic sugar" to handle defstructs
would be nice. 

Regards 

Juergen Weiss

Juergen Weiss     | Universitaet Mainz, Zentrum fuer Datenverarbeitung,
address@hidden| 55099 Mainz, Tel: +49(6131)39-26361, FAX:
+49(6131)39-26407




reply via email to

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