Mathics somewhat translates Mathematica to SymPy.

https://github.com/poeschko/mathics

http://www.mathics.org/

I tried to play with Mathics' code a while ago, unfortunately there is very 
little documentation. In any case, Mathics has a parser for Mathematica's 
code, it builds its own AST object mapping, and calls SymPy to perform the 
algorithmic evaluation. You could try to use it and put a debugging 
breakpoint on the SymPy calls, but that's still hard to do.

Mathics has also a Mathematica compatible pattern matcher.

Technically, I think that if we add assumptions-awareness and specificity 
sorting to the patterns containing wild cards, and default/optional 
wildcards, SymPy's patterns would become much more similar to those of 
Mathematica (except for excessive matches like inverse functions and 
powers).

On Thursday, October 9, 2014 6:15:22 AM UTC+2, Richard Fateman wrote:
>
> There are at least 2 open source parsers for Mathematica code.
>
> The trivial stuff  -- parsing x Sin[x]  into    x*sin(x) equivalent could 
> be
> done by following directions in any intro to compilers book.
>
> The rest of the stuff, which requires pattern matching, simplification, and
> a whole collection of specific commands all sitting inside the Mathematica
> rule-based evaluation mechanism ...  well you won't get that by translating
> naively into python.
>
> It's like saying you can translate Lisp into C.  Sure.   But if you want to
> execute it, you need a whole bunch of stuff, like a garbage collector,
> arbitrary-precision integers,  etc etc etc   that you don't get by 
> translating
> (+ a b)     into a+b.
>
>
>
> On Wednesday, October 8, 2014 7:16:02 PM UTC-7, [email protected] wrote:
>>
>> you can try this expression for a test 
>> (-6x^2-x-7)(2x^3+3x^2-2x-5)
>>
>> 在 2012年5月2日星期三UTC+8上午12时19分18秒,Aaron Meurer写道:
>>>
>>> This probably is doable, but we would need an actual parser in SymPy, 
>>> which is the difficult part.  If we had that, adding rules for 
>>> Mathematica functions would ideally not be hard.  See 
>>> https://github.com/sympy/sympy/wiki/parsing for some ideas on parsing. 
>>>
>>> More realistically, in 
>>> http://code.google.com/p/sympy/issues/detail?id=161, it is suggested 
>>> that for Maxima, Sage can be used.  So I'm wondering if Sage, or maybe 
>>> some other project has a parser for Mathematica that can put it in a 
>>> form that SymPy can read, or at least on close. 
>>> http://code.google.com/p/sympy/issues/detail?id=2864 is also related 
>>> to this. 
>>>
>>> Can you give an example of a Mathematica expression that you want to 
>>> parse? 
>>>
>>> Aaron Meurer 
>>>
>>> On Tue, May 1, 2012 at 9:00 AM, [email protected] 
>>> <[email protected]> wrote: 
>>> > I doubt that any automated translation will produce quality code. The 
>>> > style of Mathematica code is much more functional than the object 
>>> > oriented python style. What you get from automatic translation will 
>>> > not be human-readable (it will be python but very obfuscated). 
>>> > 
>>> > So I am very pessimistic. However if you have any success with this it 
>>> > will be great for sympy. 
>>> > 
>>> > -- 
>>> > You received this message because you are subscribed to the Google 
>>> Groups "sympy" group. 
>>> > To post to this group, send email to [email protected]. 
>>> > To unsubscribe from this group, send email to 
>>> [email protected]. 
>>> > For more options, visit this group at 
>>> http://groups.google.com/group/sympy?hl=en. 
>>> > 
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/84407fd0-1a16-4901-af10-1b1db8b4600b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to