Maple is a symbolic and numeric computing environment, and is also a multi-paradigm programming language.

Developed by Maplesoft, Maple also covers other aspects of technical computing, including visualization, data analysis, matrix computation, and connectivity.

A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation.

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 (CC#FortranJavaMATLAB, 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 LibrariesATLAS libraries, or GMPlibraries.

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.