[Top][All Lists]

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

Re: [Axiom-developer] RE: More AxiomUI

From: Vanuxem Grégory
Subject: Re: [Axiom-developer] RE: More AxiomUI
Date: Wed, 22 Jun 2005 20:30:18 +0200


Le mercredi 22 juin 2005 à 11:27 -0400, William Sit a écrit :
> Martin Rubey wrote:
> > Currently, the parser of the interpreter and the parser of the compiler are
> > different. For example, you cannot define packages, domains or categories in
> > the interpreter.
> Much I would agree with you that the difference between the two parsers is a
> constant headache and certainly makes it harder to go from interpreter to
> compiler, I can understand the roles and necessity of both. Being a strongly
> typed language, to require a casual user or beginner to declare types for all
> identifiers and to use package calls is too much. Other CAS like Maple or
> Mathematica are not even typed. 
> > In fact, this is also a question of future direction, since I hope very much
> > that Aldor will become *the* language for Axiom.
> What features of Aldor do you want to add to Axiom?
> > Maybe it would make sense to make the type inference as much independent of 
> > the
> > interpreter as possible. It seems, that quite a few type coercions are 
> > defined
> > for the interpreter only. Why aren't they in the algebra? One example is the
> > coercion from UP to POLY, I think.
> First, a direct coercion between two domains of the same category is by 
> design,
> I think, not practical. Domains may differ by their mathematical meaning, but
> even if they do not, they differ by their data structure (and hence
> implementation). When a domain is constructed, it should not be required to be
> aware of other domains in the same category (providing coercion would), 
> because
> for one thing, it may be the first. Thus such a requirement would require
> constant updating of all older domains that in principle are coercible to 
> other
> "younger" ones. Note that by the same reasoning, only a younger domain can be
> CoercibleTo an older domain, not the other way round. (By making CoercibleTo 
> go
> the other way would make "older" become the "younger"). 
> Axiom handles this problem with maps. In the polynomial situation, there is
> POLYLIFT, which allows one in the compiler programs to map one polynomial of a
> domain into another in perhaps some other domain.  I suspect that the
> interpreter applies this (mapping facility) to do certain "coercions" that are
> not explicitly available (as in CoercibleTo, ConvertibleTo, RetractableTo) and
> for some reason, the choice of these maps is not shown in )set mess bot on.

As far as I know,

for a category or 'domain' there are

categoryfunction2 with map and other functions
domainfunctions2 with map and other functions

These maps are shown in the interpreter with )set mess bott on
(The interpreter uses probably a 'pattern matching function' to find
these packages)

In the interpreter, two files do a lot of known coercions:


They contains some specific code.



> William
> _______________________________________________
> Axiom-developer mailing list
> address@hidden

reply via email to

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