The first official version of the OpenMath specification was released in December. This paper presents the first implementation of this standard, in the form of a C library. To ensure a faithful realization, a second, independent implementation with the same API was built using Alder (A" ). We describe how the C library has been embedded in two main-stream computer algebra systems, Maple and Reduce, which can now communicate with each other and Alder, and with specialized programs also linking the libraries. We discuss some of the problems encountered in developing the .4P1.and the solutions we have chosen.
Several computer algebra teams around the world have been working on OpenMath since 1994, but in spite of more than six years of work (including a dedicated three years European project), there are not yet any widely available OpenMath applications. There is obviously some sort of boot-strapping problem: people developing mathematical software are not really ready to invest in the OpenMath technology by making their applications OpenMath compliant because there are no interesting OpenMath programs which their own applications can talk to.Our computer algebra team at INRIA (formerly SAFIR and now CAFE) has been involved with the international OpenMath effort since the very first OpenMath meeting. We have produced several prototypes at various stages. With the help of people from Waterloo Maple we have demonstrated a development version of Maple linked with our OpenMath C library in December 1996. This prototype was able to exchange data (including multivariate polynomials in a special representation) with a Reduce OpenMath server (thanks to people at ZIB) and a small Aldor ([11]) program (linked with an Aldor OpenMath library). We have produced a quite complete OpenMath version of Reduce at the end of 1997 (during a sabbatical leave at ZIB). We have used OpenMath in various projects: an algorithm animation system for Aldor programs ([3]), a deductive database for mathematical formulas ([5]), a software component to display and edit formulas ([2]) and as the output format of a system for optical formula recognition. Despite all these efforts and the efforts of the other teams involved in OpenMath which has shown the interest of this technology the future of OpenMath is still not clear. Many people in the mathematical software community remain to be convinced.The advent of MathML ([9]) has complicated the situation, since to some people it seems like an alternative to OpenMath. In practice those defining them see the two standards as complementary rather than competing, but the rationale for this is not always obvious to those outside these communities. With an ever growing number of MathML applications (the latest versions of Mathematica and Reduce are already MathML capable), it is desirable to have applications which demonstrate the advantages of OpenMath. A natural choice for such an application is a major computer algebra system. This would provide a very convenient environment to test OpenMath applications for any mathematical software implementer.Currently the only major system that has a reliable and well tested technology that can be used to make it an OpenMath application without access to the system internals is Mathematica (thanks to the MathLink library, [13]). That is why we choose to build MOMOS, an OpenMath-Mathematica translator. We also considered MuPAD and Maple as possible candidates. MuPAD is a very interesting system. Its ability to dynamically link external libraries would have allowed us to use our C library ([7]) to read and write OpenMath objects, but there are far fewer MuPAD users than Maple or Mathematica users. The last version of Maple also has the same sort of capability but when started to write MOMOS the current Maple version we had access to did not.
The programming language in which to describe mathematical objects and algorithms is a fundamental issue in the design of a symbolic computation system. XFun is a strongly typed functional programming language. Although it was not designed as a specialized language, its sophisticated type system can be successfully applied to describe mathematical objects and structures. After illustrating its main features, we sketch how it could be applied to symbolic computation. A comparison withScratchpad II is attempted. XFun seems to exhibit more flexibility, simplicity and uniformity.
No abstract
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.