axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] Re: [axiom] Axiom and noweb


From: root
Subject: [Axiom-developer] Re: [axiom] Axiom and noweb
Date: Tue, 15 Oct 2002 17:07:26 -0400

>Tim,

>While I'm sympathetic to your efforts, at present I want to be sure
>that the name `noweb' is attached to my work and not to anyone else's.
>In particular, when I come up for tenure, it would be unfortunate for
>me if there were to be any confusion.  Maybe if you tell me more of
>the details we can work something out.

>Norman

A perfectly reasonable request.

Details:

Axiom carries almost all of its knowledge of algebra in a high level
language called "spad". Currently these files suffer from a few
problems that can be addressed by literate programming.

First, there is the classic separation of mathematical theory from
its implementation. People write papers that give the theory and
develop the code to reduce the theory to practice. The paper gets
published, the code gets integrated. Unfortunately, they never again
meet. In a computer algebra system (unlike, say, an editor or other
general purpose program) you can't really tell people "go read the
code" because most of what you need to know to understand the code
exists in a research library.

Second, there is the problem that various parts of a large system
like Axiom can get badly out of sync. Test cases get lost, help
files become outdated, etc.

Third, it is my opinion that computer algebra systems are reaching a
natural limit of complexity based on the way they are constructed.
Because of the theory separation they are very hard to maintain and
even harder to extend. Axiom has been around for 30 years. How will
we get thru the next 30 years?

So, I'm experimenting with literate programming as a way to attacking
the above problems. The experiment involves several directions.

To attack the first problem I'm planning on rewriting the algebra
files as literate programs. I'm going back to the original source
material (thesis work and papers), finding the authors and writing
literate programs that start by explaining the theory and work toward
its reduction to practice. (Eventually I'd like to start a journal 
that requires literate algebra programs as submission material).
I have a few hundred pages so far but there are many years of work 
ahead.

To attack the second problem I'm planning to require a certain style
of document with marked sections and chunks for test cases, user docs,
regression tests, etc. This file format (which you call .nw and I
call .pamphlet) will have bibliographic cross references to other
pamphlets that contain required code. Since code is currently 
dynamically loaded I'm planning to build the system so you can
"drag and drop" a pamphlet onto the system and it will self-expand
(including expanding cross references) and update the system.
This is where I expect to have to add filters and possibly modify
noweb.

To attack the third problem I'm planning on developing the concept
of "booklets" which are groups of pamphlets. One could put together
booklets that explain, say, all of the matrix types in Axiom (think
of a horizontal slice thru the types). Or one could put together
booklets that explain, say, integration in depth (think of a
vertical slice thru the types). It appears that noweb may support
this already (thru -delay) so I don't anticipate any changes for
this idea.

Tim






reply via email to

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