Mock Mathematica



Hunter Monroe wrote:
> Developers are wanted for the new sourceforge project Mockmma which will
> develop a capability to translate Mathematica files into Maxima .mac files
> and provide a Mathematica-style command line. This would build on Richard
> Fateman's Mockmma, John La Peyre's Mathematica to Maxima compatibility
> tools, and some work by Andrey Siver. Some initial objectives would be to
> get Mockmma to compile on LISPs other than Franz Allegro,
There is a subdirectory "davorpatch"  in 
http://www.cs.berkeley.edu/~fateman/mma1.6/
which includes patches for CLISP and KCL  (predecessor to GCL).  Whether 
this solves your problems or not,
I cannot say. 
>  create an
> executable and release it,
The usual way of producing something for lisp is not to package it as a 
separate executable program, but to provide it as a library that can be 
read in to any suitable lisp.  It is actually not necessary to "compile" 
anything unless you are in a rush.  As I recall, the translation process 
was essentially instantaneous, with hundreds of lines being parsed in a 
fraction of a second.


>  get this executable to work with wxMaxima,

The "right" way to do this would be to load the library into wxmaxima.

>  and
> import the Combinatorica.m package (the author has given permission) into a
> Maxima .mac file (or choose your favorite Mathematica package).
>   
When I looked at Combinatorica, years ago, what struck me was that the 
programs could be written so much better in Lisp!
> Initially this would translate Mathematica functions into Maxima functions
> even though this are evaluated quite differently.
>   
 The things that would mostly work are simple expressions, in which
Sin[a x+b]  would be translated to sin(a*x+b).  
This kind of simple translation would not work for a Mathematica package 
with function definitions etc.
Mockmma does have a rudimentary evaluator that matches patterns etc, so 
it can handle some function definitions etc.

It would be possible to change Mockmma to work with maxima in a more 
substantial way, if you wished to
use the same internal data structures. A lisp structure to lisp 
structure translator would probably be the simplest way:


external                    maxima                        Mockmma

a+b          ((mplus simp) $b $a)               (Plus a b)   {in the mma 
package}... or something like this..

RJF