GSoC Project Idea 17: Maxima to Python translator

lisp
python

#1

Context: Maxima is a system for the manipulation of symbolic and numerical expressions with more than 40-year history. The system is maintained by an active community of users and developers and is incorporated in systems, such as Sage. Maxima is an open source and its functionality is on par with commercial systems, such as Maple and Mathematica. The main applications of the system are calculus, dynamical systems and matrix algebra, which are used for example in the context of biophysical modelling.

Python is gaining more and more ground in neuroinformatics [1]. However, development of numerical functionality is limited only to wrapped C libraries.

The project idea: Maxima is represented internally by expression trees. This can be the basis for a system to translate Maxima into other languages. The goal of the project will be to implement a Maxima to Python translator.

Tasks

  1. Implement a framework for transforming Maxima expression trees
  2. Implement Python-specific output functions to print expressions, possibly transformed in some way, in Python syntax. The output will be a Python program which is, as nearly as

possible, equivalent to the original Maxima program.

Minimal set of deliverables

  • Requirement specification - Prepared by the candidate after understanding the functionality.
  • System Design - Detailed plan for development of the translator and test cases.
  • Implementation and testing - Details of the implementation and testing of the translator.

Desired skills: experience with Python or Lisp

Mentors: Dimiter Prodanov (dimiterpp@gmail.com), INCF Belgian Node; (backup) Rober Dodier, Maxima project, (robert.dodier@gmail.com)

References

[1] https://www.frontiersin.org/research-topics/8/python-in-neuroscience