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 modeling.

Python is gaining more and more ground in neuroinformatics [1]. However, the 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 the development of the translator and test cases.
  • Implementation and testing – Details of the implementation and testing of the translator

The candidate

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

[2] http://maxima.sourceforge.net/