Overview
Core functionality
Users can enter mathematics in traditional
mathematical notation. Custom user interfaces can also be created. There is support for numeric computations, to arbitrary precision, as well as symbolic computation and visualization. Examples of symbolic computations are given below.
Maple incorporates a
dynamically typed imperative-style
programming language which resembles
Pascal.^{
[2]} The language permits variables of lexical
scope. There are also interfaces to other languages (
C,
C#,
Fortran,
Java,
MATLAB, and
Visual Basic). There is also an interface to
Excel.
Maple supports
MathML 2.0, a W3C format for representing and interpreting mathematical expressions, including their display in Web pages.^{
[3]}
Architecture
Maple is based on a small
kernel, written in
C, which provides the Maple language. Most functionality is provided by libraries, which come from a variety of sources. Most of the libraries are written in the Maple language; these have viewable source code. Many numerical computations are performed by the
NAG Numerical Libraries,
ATLAS libraries, or
GMP libraries.
Different functionality in Maple requires numerical data in different formats. Symbolic expressions are stored in memory as
directed acyclic graphs. The standard interface and calculator interface are written in
Java.