The Maple Computer Algebra System
Michael Monagan![]()
Maple is a comprehensive general purpose computer algebra system. It is used primarily in education and scientific research in the sciences, in mathematics, and in engineering. Maple can do both symbolic and numerical calculations and has facilities for 2 and 3-dimensional graphical output. The newest version of Maple, Maple V Release 2, sports a new user interface that integrates these three facilities as well as text into a document called a worksheet. Worksheets are a nice medium for presenting and communicating results and teaching material. A new feature of Release 2 that makes worksheets especially appealing is that results computed by Maple are displayed in a high quality font with full support for math symbols, Greek characters, subscripts, superscripts etc.
Maple is also a programming language. In fact almost all of the mathematical and graphical facilities are written in Maple and not in a systems implementation language like other computer algebra systems. These Maple programs reside on disk in the Maple library and are loaded on demand. The programming language supports procedural and functional programming. We will not give specific details of the programming language beyond this, even though this is perhaps a key part of the Maple system. Details and examples can be found in the manuals cited in the references. We wish to mention a bit of history however.
The main design goal of Maple in 1980 was to design a language for implementing mathematical algorithms which was powerful and efficient enough so that almost all of the mathematical algorithms could be written in it, rather than in a systems implementation language like C or Lisp. Another main design objective was to minimize overall memory requirements so that larger problems could be solved, and Maple could run on smaller computers, and support many simultaneous users on time-shared systems. The outcome is a system consisting of three components, the user interface, the kernel, and the Maple library. The user interface and kernel are programmed in C and comprise about 500Kbytes of memory. The Maple library is programmed in Maple. It consists of about 2,500 functions (about 150,000 lines of Maple code).
This design makes it possible for Maple to run on small computers e.g. Amigas, PC's, Macintoshes with as little as 2 megabytes of RAM, as well as on most workstations, mainframes and supercomputers. This is attractive for educational laboratories and for students. The attention to space efficiency has helped in solving large problems and also contributed to the overall time efficiency of the system. Also, because the clean separation of the user interface from the kernel and library, and the overall space efficiency, Maple is used as the symbolic component in other commercial and research systems. For example, the system MathCAD, a numerical system popular amongst engineers, makes some of Maples symbolic functionality accessible to the user.
There is also a growing number of functions and packages
in the Maple share library which have been contributed by users
from around the world. The share library also contains additional
documentation, other software tools, etc.
It is updated quarterly as new applications codes are contributed
and is now distributed electronically by an electronic
mail server and anonymous ftp.
Other sources of information include the Maple news group, an electronic forum for discussion, the Maple ROOTS newsletter, which contains information about new releases, and the Maple Technical newsletter which contains application and technical articles on Maple. Further information about Maple can be obtained from

We summarize below the capabilities of Maple under the headings Numeric, Symbolic and Graphics and follow with some examples illustrating some of the new features of Release 2. Maple input commands are the lines beginning with the > prompt character. The Maple output shown is close to what you see on your terminal in Release 2.