axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] Re: Aldor and Axiom


From: C Y
Subject: [Axiom-developer] Re: Aldor and Axiom
Date: Tue, 14 Feb 2006 08:30:14 -0800 (PST)

--- Ralf Hemmecke <address@hidden> wrote:

> Hi Cliff,
> 
> > Agreed.  Am I correct that the logical starting point is to
> > identify where the compiler ends and the math begins (whether
> > it is set/category theory or Axiom's domain and cagetory
> > implementation or whatever) and get the core parts documented
> > and working on top of Aldor?
> 
> Yes, I think that is a starting point, but it is not that simple.

Figures.

> The logical reason why there are two libraries in Aldor (libaldor
> and libalgebra) is that the first one just provides basic 
> functionality.  libaldor is a kind of low-level library.

So we actually want to retarget Axiom to Aldor+libaldor, rather than
just the Aldor compiler itself?

> Manuel Bronstein once explained to me that libaldor is just a 
> non-mathematical library. Every mathematics comes in libalgebra.

OK.  So Aldor+libaldor should contain all the non-mathematical tools we
will need to begin defining mathematical structure?

> In libaldor's design, speed was one issue. For example, Array
> indexing starts at zero and thus maps without overhead to C-arrays.
> That causes a little confusion at first, but if one works with
> Matrix from libalgebra, the minimal index is 1.

Hmm.  OK.  If we document the conventions I doubt that will be a major
problem.

> There is not need to use Array except to use it as a datastructure
> to store objects. If one needs a mathematical object than one should
> say so, for example choose Vector (which has minimal index 1).

Right.  So you would only use Array when defining something like
Vector.  I would recommend that the convention be established that
nothing in libaldor be directly accessible by any math code, just as
Vector is created instead of using Array.  Even if by chance the math
behavior should be identical to a behavior in libaldor, we should
maintain the coding convention of separation.

> I'd happy to translate libaldor into pamphlets. (Of course, help is 
> appreciated.)

Sounds good.  How much of what kind of skills are needed to usefully
translate/document various parts of libaldor?

Cheers,
CY

P.S.  So is this a reasonable first approximation of a todo list? 
(Feel free to change, reorder, alter, or mock it - I just want to try
and get some kind of sequential tasklist set up)

1)  Covert libaldor to pamphlets, understand functionality provided by
libaldor and compiler.
2)  Identify core mathematical logic in Axiom, whether in the SPAD
system or elsewhere, and structure it to build off of the
non-mathematical compiler+libaldor tools.  If libaldor does not provide
sufficient functionality, expand it as needed to maintain the clean
separation of mathematical and non-mathematical code.  If necessary,
create higher level non-mathematical libraries but maintain the clear
distinction.  The goal is to have a clean, well defined and literate
environment in which to begin defining mathematical abilities.
3)  Create a list of mathematical abilities in Axiom to move to move to
the new core framework built on libaldor, starting with the most
"fundamental" abilities and building to higher level ones.  Move them
over piece by piece, converting the SPAD code to Aldor code and making
"real" literate documents (e.g. code and text) out of each one before
moving on to the next.
4)  At some point in 3, when enough abilities have been ported and
defined, consider B-natural and the best way to handle createing a
"friendly" interaction layer on top of the rigorously specified code.

Does that seem to make sense, at least as a short answer to the various
"what comes next" questions?

Cheers,
CY

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




reply via email to

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