|
![](/i/fill.gif) |
>> Most CAS systems I've seen are hard-wired for algebra, and many of them
>> have the transformation rules hard-wired as well. Mathematica is more
>> general than that.
>
> Underneath it all, Maxima is similar. Its all symbolic. Certain things
> have certain meanings. All functionality and rules are defined in
> libraries, it has a standard set that it loads when started that gives
> pretty standard algebra and calculus. Depending on how far down the
> rabbit hole you want to go, you can even from the Maxima command line
> give it instructions in Lisp.
Many of these CAS programs have a parser written in C that snips up text
and turns it into internal data structures. Then other C code does
algebraic transformations such as collecting like terms and so forth. If
you want to input something that isn't algebra, or expressions in a
non-associative algebra... sorry, you can't do that.
Mathematica doesn't work this way. The core implements a transformation
engine, and arbitrary precision math. Beyond that, the parser, the
printer, the simplification rules, *everything* is Mathematica source
code, which can be altered at will (if you're so-inclined).
I have no idea about the architecture of Maxima, but it wouldn't
surprise me. There are advantages to doing it this way. (The main
disadvantage is performance...)
Post a reply to this message
|
![](/i/fill.gif) |