In the volume Advanced Programming Guide of the Maple manual, the "clasical" picture of the Maple system architecture is depicted:

 A1: Internal Organization

Maple consists of three main components: a kernel, a library, and a user interface. The kernel and library together are known as the math engine.
Kernel The kernel is written in the C language and is responsible for low-level operations such as arbitrary precision arithmetic, file I/O, execution of the Maple language, and the performance of simple mathematical operations such as differentiation of polynomials.
Library Most of the Maple mathematical functionality is in the Maple library, which is written in the Maple language. The library is stored in an archive, and pieces of it are loaded and interpreted by the kernel on demand.
User Interface The user interface is the part of Maple that the user sees, and is conceptually separate from the math engine. The same math engine can be used with different user interfaces.

However, the architecture of the system has been moving away from this picture for several years already. Eg:

A second parser has been implemented in the Standard GUI, instead of the kernel.

Some IO code like the 'ExcelTools' package is available only through the Standard GUI (cf. ?ExcelTools[Export]), meaning, presumably, that it does not resides in the "math engine" but in the Standard GUI.

"Plot enhancements" that are available only through menues but not programatically, meaning also that they do not reside in the "math engine" (cf. ?plot,interface).

The same for many other interface "features" like Maplets, embeded components, etc. However some Java code is available through the Command line UI or the Classic GUI (like the 'maplet' plot device).

And also some numeric code resides in externally called compiled libraries.

I am sure that I am missing many similar changes in this short list. Could someone add more information towards an updated picture of the Maple architecture?

Please Wait...