--- Ralf Hemmecke <[EMAIL PROTECTED]> 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 _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
