axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] Re: [sage-devel] Categories for the working programmer


From: root
Subject: [Axiom-developer] Re: [sage-devel] Categories for the working programmer
Date: Sun, 9 Nov 2008 16:21:56 -0500

There are at least two possible paths toward a category hierarchy in Sage,
adopting Axiom's version or designing a new one.

The key advantage of adopting the Axiom category hierarchy is the Sage
system could reuse a lot of the algorithms in Axiom. The Spad language
used in Axiom is similar in style and spirit to the Sage python language.
If the same categories were available it should be possible to use the
algorithms in Axiom's domains as written.

The temptation to re-design is very seductive but not very productive.

========================================================================
For those who don't understand Axiom's category/domain/package structure
I'll give the following very weak analogy:

You might find it useful to understand that Axiom has the algebra
divided into 3 kinds of things, Categories, Domains, and Packages.

By analogy to clothing,
   Categories would be the patterns, fabrics, buttons, styles and
   other things that are not specific. Mathematically these are things
   like OrderedSet which specify functions like >, <=, etc.

   Domains are instances of choices, like a particular dress, which
   is chosen from a selection of categories by inheritance, so that
   a particular domain (dress) has a certain fabric, pattern, style, etc.
   Mathematically these are domains like Integer which model the 
   integer number system.

   Packages are tools for dressmaking, such as sewing machines,
   button-hole makers, ironing boards, etc.

In general, you work in domains which are particular instances of
mathematics with certain functions and properties inherited from
the categories. Every object created lives in some domain.





reply via email to

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