3 ms·
Mathics is implementation of Mathematica (actually it is now called Wolfram language) using sympy, ply, and django. It also provides jupyter kernel. The origi
by denfromufa 10y ago
Mathics is implementation of Mathematica (actually it is now called Wolfram language) using sympy, ply, and django.
It also provides jupyter kernel.
The original author was hired by Wolfram, but the project still lives on!
http://mathics.github.io http://mathics.github.io
Maxima is older than Mathematica and written in LISP. One of its contributors has written MockMMA to implement Mathematica in LISP:
https://people.eecs.berkeley.edu/~fateman/lisp/ https://people.eecs.berkeley.edu/~fateman/lisp/
- wiz21c 10y agoI've looked at the github project for Mathics and didn't see any use of ply... Looks like they have written their own parser/lexer.
- denfromufa 10y agoYes, indeed - it is very weird! Because mathics still mentions ply in change.rst, but not used in code anymore: https://github.com/mathics/Mathics/blob/master/CHANGES.rst https://github.com/mathics/Mathics/blob/master/CHANGES.rst
- sn6uv 10y agoHidden in there (under 1.0) is "new recursive descent parser #416". We've only just finished 1.0 and haven't had a chance to announce it properly yet.
- denfromufa 10y agois this limitation in ply?
- sn6uv 10y agoWe previously used ply but ran into a few issues: The main issue was that generating the tables was extremely slow (~15mins). We solved this by packaging the tables, but when the version of ply changed a table regeneration was forced on our users. The recursive descent parser was also simpler and significantly more performant. There's a short write-up on the PR: https://github.com/mathics/Mathics/pull/416 https://github.com/mathics/Mathics/pull/416
- sn6uv 10y agoMathics developer here. Yes, we rewrote it. I better update the docs.