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
 The language permits variables of lexical
scope. There are also interfaces to other languages (
Visual Basic). There is also an interface to
MathML 2.0, a W3C format for representing and interpreting mathematical expressions, including their display in Web pages.
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
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