Difference between Axiom/Aldor and the rest of the world
Martin Rubey <[email protected]>
| Newsgroups | gmane.comp.mathematics.axiom.user |
|---|---|
| Message-ID | <[email protected]> |
Dear Bill, Ondrej, I'd like to make two differences between the extension languages of Maple, Mathematica, MuPAD on one hand, and Aldor on the other hand very clear. Aldor has semantics which are very well explained (in great detail, see the "Aldor Compiler User Guide"), and are reduced to very few important concepts. Most importantly: Types are first class objects and every object has a type. This implies, for example, that the result of a function may be a type, as is the case with the "Fraction" constructor, or the "Polynomial" constructor in Axiom. The current implementation of Aldor is quite good at following those semantics. Really, with Aldor one should distinguish between the implementation and the language. It is quite clear what is a bug and what is a feature, although, of course, there are some borderline cases. In other words, the definition of Aldor does *not* go like "Aldor is the language implemented by the current Aldor compiler", but rather "Aldor is the language as described in the Aldor Compiler User Guide", and there is an implementation that tries hard to follow this guide. If you look at it this way, you can *really* say that SPAD is version 1 of the Aldor compiler, although this is not true historically. There are astonishingly few semantic differences and some syntactic differences, but mostly, SPAD implements simply a subset of what is described in the Aldor Compiler User Guide. I left out Maxima on purpose, since I believe that the "true" Maxima extension language is Ansi Common Lisp, although the current group of developers thinks otherwise. If you can come up with a semantic description of Mathematica's extension language, please tell Richard Fateman, since he tried but failed. :-) ------------------------------------------------------------------------------- Concerning simplification, I'd like to add that this is really a non-concept. The real concept behind it is "normal form" or "canonical form", or at least, "test for zero". And in fact, Axiom is very strong in those domains very you have one of those things. And that's exactly why I'd like to have my hierarchy "rational - ... - differentially algebraic functions" implemented in Axiom, since they all allow test for zero, and an incredible amount of functions occurring in practice falls into one of these domains. Although, the example you gave for the limit computation does not, as far as I can see. All the best, Martin