Is Maxima modular?...(and/or How learn source code?...)



There is a notion that underlies much of the CAS
"rewriting" that has been done in building Maple,
Mathematica, Mupad, Singular, Pari etc.  And that is that the
old systems like Reduce, Scratchpad, Macsyma, are
kludgey, non-modular, etc  because the people who
built them were doing something wrong, and that
new systems will not suffer from the same problems
because people know better now.

In fact, most of the underlying code that can be
thought of as neatly modular in nature is modular
already. If you only provide (say) polynomial arithmetic,
then you can be pretty clean.

The messy stuff is messy -- in part -- because much
of the rest of applied mathematics is messy.
Some people wonder if
sum(f(i),i,1,n)   is the same as

s:0;
for i:1 step 1 thru n do s:s+f(i);
s;

The answer is: sometimes.  What if n=inf?
What if n=-1?  What if f(i)=1/i^2?  What
if f(i) = 1.0e0/i^2 ?

So some of the global flags and mysterious
rules are there because people disagree about
what a system should do.

Some of the global flags etc are there because
of errors, mistakes of judgment, etc.

Which are in each category is often hard to say.

RJF


C Y wrote:
> --- Stavros Macrakis <stavros.macrakis@verizon.net> wrote:
> 
>>>If you took initiative to study and learn the LISP code on
>>>your own then you deserve to be a member of the Maxima dev team.
>>
>>Chris,
>>
>>What I didn't say (I think others on the list already know it) was
>>that a lot of that code reading etc. happened in 1971-77, when I was
>>fortunate to be a very junior member of the original Macsyma
>>development team.  That I could figure out the Macsyma code when I
> 
> was 
> 
>>15 gives me some confidence that others will, too.  Of course, I did 
>>have the benefit of the guidance of more senior members of the team, 
>>like Rich Fateman.  Surprisingly, even after 25 years away from the 
>>code (Maclisp-only at that point), I still find it looks familiar.  
>>That said, there are large swathes of the code that I didn't know 
>>before and which I am learning now by reading and experimenting.
> 
> 
> Chris, my advice would be, just as a way to start, creating
> system/programmer documentation for Maxima is a good way to go.  That
> type of work is very useful for the project, and also gets you learning
> the structure of the code.
> 
> 
>>>My tendency would be to start all over and write a beautiful
>>>commented object oriented CA from scratch
>>
>>That's precisely what other groups have done: Axiom, for example,
>>which is now open source.  Since Axiom has not yet been released, 
>>though, I can't say what its advantages and disadvantages are.  I do 
>>know that Maxima has benefitted from years of practical experience, 
>>and tends to be very pragmatic.
> 
> 
> If you do want to start over, you might take a look at Yacas.  Yacas is
> much less powerful than Maxima, but from what I've heard it is cleanly
> written.  It's a new effort, so if you want to start from scratch that
> might be a good framework.
> 
> CY
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
> http://platinum.yahoo.com
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima