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 BOOT? Regards, Bill Page. _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
