Hi Martin and Bill,

I understand your point. You realized you need a well defined
(general) language, and Aldor is it's implementation. This is much
better than Maple/Mathematica, I agree.

I am just addressing the technological point of view - you have a nice
language, tuned to the purpose of the CAS. This is certainly one way
to go.

There is certainly another way to go however, and that is the way I
took - don't reinvent some language, just take already working
language with a specification and a working (open source)
implementation. And a large userbase.

I think those are quite philosophical questions and it's not clear
which approach is better. So you just need to make some decision, and
I did one (with good arguments), you did another (with good
arguments).

Ondrej


On 27 Mar 2007 09:19:39 +0200, Martin Rubey <[EMAIL PROTECTED]> wrote:
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




_______________________________________________
Axiom-mail mailing list
Axiom-mail@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-mail

Reply via email to