Maxima language revision, was: User-level namespace system for Maxima
Subject: Maxima language revision, was: User-level namespace system for Maxima
From: Robert Dodier
Date: Mon, 21 Aug 2006 22:13:00 -0600
On 8/21/06, Stavros Macrakis <macrakis at gmail.com> wrote:
> I disagree radically with the notion that a "permissive" language is
> better for building systems at a higher level.
Probably we have different notions of permissive languages
in mind. I don't think we need to sort that out, though.
Specifically in reference to computer algebra, what I want
to see is that Maxima does not make unnecessary
assumptions about whether or not an expression can
have a useful interpretation.
At present Maxima assumes if x > 0 then foo cannot
have a useful interpretation when x is unbound.
Also it assumes no expression containing 1/0 can
have a useful interpretation. Likewise elementp('x, 'S).
Maxima doesn't know what to do with those, and it
rules out someone else inventing an interpretation.
The latter is a definite misfeature. If someone tries to
build another system on top of Maxima -- say, a decision
analysis system, or a strongly-typed algebra system --
it seems likely that artificial limitations would make that
harder than it needs to be.
> How the error signal is treated
> (error message or something else) is another matter --
For bona fide errors (e.g. wrong number of arguments)
I would like to see an object thrown.
That at least makes it possible to put some recovery
mechanism in place.
> of course if you have a program as a user, you want to signal
> the error differently than if you have a human user.
I'm not sure these are all that different. In a typical GUI design,
GUI code mediates between the user and Maxima.
There is a user present, but the GUI code catches the error.
For what it's worth,
Robert Dodier