|
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.
© 2007 Joris van der Hoeven
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.