History of Mathemagix

At the late ninetees, our wish for a new general purpose computer algebra language was motivated by two main reasons: the quasi-absense of free computer algebra systems and the non-existence of sufficiently general compiled computer algebra languages.

In the meantime, some progress has been made: on the one hand side the old computer algebra systems Maxima and Axiom have become free and several special purpose C/C++ libraries have become increasingly powerful. In parallel, the progress on Mathemagix has been quite slow, mainly due to the fact that we started by writing a compiler.

Taking into account the above developements, the original design goals of Mathemagix have changed a bit in the direction of making something more directly useful. On the one hand side, greater priority is given to the incorporation of existing libraries. On the other hand, the language had to be adjusted so as to make it possible to rapidly write an interpreter for prototyping, without losing the perspective of writing a compiler one day.

Until 2006, the above design objectives lead to the development of the mmx-shell interpreter to which C/C++ functionality could be glued using a uniform typed extension facility mmx-extend. In parallel, we developed a standard C++ library Mmxlib.

From 2006 on, we have reorganized Mathemagix so as to become a collection of packages with dag-like dependencies. On the one hand, the new system provides a C++ interface for gluing new functionality to Mathemagix. On the other hand, we provide the concept of an “abstract evaluator”. This allows users to implement different concrete languages which may take advantage out of the functionality provided by libraries.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License. If you don't have this file, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.