axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] Project directions


From: C Y
Subject: Re: [Axiom-developer] Project directions
Date: Fri, 27 Jul 2007 21:59:29 -0700 (PDT)

--- Bill Page <address@hidden> wrote:
> I think this is not an accurate description of the situation since
> Boot is written in Lisp and it is *part* of Axiom. In other words no
> matter what we do, Axiom is written in Lisp. Period.

Currently, true.  As we have discussed earlier, Lisp is regarded by
some as a ghetto in the software world and thus a possible intellectual
"dead end."  (I don't think it is, but that ground has been covered.) 
I had taken that as a desire on the part of some people to shift
entirely off of Lisp to something else (Aldor, for example.)
 
> This is a question of *how* to use Lisp in Axiom, i.e. whether to use
> Lisp to first implement an intermediate application-specific
> higher-level language (Boot) and then use it in turn to implement
> Axiom (Spad and Interpreter). Note: this is a development strategy
> also used in some other large software projects besides Axiom. Or
> whether to dispense with the intermediate language and write
> everything at the same level.

To me, the logic should work like this:

A new programming language should only be introduced when the
expressive power gained by implementing the new language is sufficient
to counteract the cost of the inevitable definition work, programmer
learning curves, compiler debugging cycles, and ongoing maintainance
involved with the creation and use of the new language.

Lisp is a language with a stable definition, considerable expressive
power, and several high quality free implementations.  It also has a
mass of useful utility libraries, although I concede it is missing a
few key ones such as a native graphics toolkit (McCLIM isn't quite
there yet).  

My own guess (and it is just a guess, I have no way of quantifying
this) is that there are only three situations in Axiom which justify
the introduction of a language other than Lisp.

1)  Interactive mathematical language (B-natural) - make the
interactive environment feel as much like "human" mathematics as is
practical.  If you don't do this, you don't get end users.

2)  Mathematical library programming.  This task is likely to involve
such a large total percentage of the effort involved in creating Axiom
that the effort required to create a language tuned to support it will
be more than paid back in code quality and productivity, in spite of
the extra work it requires.  Hence, SPAD or Aldor.

3)  Proof languages - not as native languages, but I can see being able
to "speak" the various languages of proof engines.  Proof engines are
highly non-trivial and confirming results in multiple engines only adds
to the credibility of a solution - hence flexibility is worth some
effort.  Being demonstrably correct is probably the single biggest
chance Axiom has of being something more than "just another CAS."

I suppose you could regard LaTeX as a forth case, if you wanted to.

> Writing everything at the same level is a reversal of one of the
> design decisions made by the original Axiom developers. I think this
> could be cited as grounds for not applying the name "Axiom" to this
> approach.

The intent of every branch I am aware of is to have at least two levels
- one for the Algebra and one for the supporting layers.  Tim has
related to us some of the history of the Lisp vs. Boot question in the
original project, IIRC - so we're carrying on an age old tradition in
that respect ;-).
 
> I agree that having defined a sufficiently general higher-level
> intermediate language (as Boot, arguably nearly is) it is in
> principle possible to imagine eliminating the need for the language
> in which it was originally written (Lisp) at least after you first
> solve the bootstrap problem. This is what happened with the most of
> the ML languages for example. Perhaps this is the direction in which
> Gaby has imagined taking Boot.

If I understand correctly, Aldor does not in fact require Lisp at all?

> But if one were really inclined to make this rather big step, then I
> think one would be much better off at the level of Spad, rather than
> Boot. To do this it would be necessary to improve Spad sufficiently
> that it could take over the role of Boot. But in effect we already
> have this! It's name is Aldor. And as far as I can see that is
> exactly the direction in which the original Axiom project was headed.

Then, we also have the 30 year horizon goals that were the beginning of
the open source Axiom project.

> But realistically in the short to medium term I do not see any
> practical way to really abandon Lisp as fundamental to Axiom. At best
> one might hope to do (as Gaby outlined in his slides) would be to
> define a much reduced and streamlined subset of Lisp whose specific
> purpose is was to efficiently implement Axiom. This is (more or less)
> exactly what NAG was attempting to do with the use of CCL in its
> commercial version of Axiom.

That's just it - some of us want to do that, and some of us want to
embrace Lisp.  IIRC it sounded like even in the original commercial
Axiom team there was disagreement about how to handle this, although
I'll have to go back and re-read the emails describing it.

Cheers,
CY


       
____________________________________________________________________________________Ready
 for the edge of your seat? 
Check out tonight's top picks on Yahoo! TV. 
http://tv.yahoo.com/




reply via email to

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