In the volume Advanced Programming Guide of the Maple manual, the "clasical" picture of the Maple system architecture is depicted:
A1: Internal Organization
Components
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.
For a single pair of left single quotes, ?name is clear:
Any valid Maple name formed without using left single quotes is precisely the same as the name formed by surrounding the name with left single quotes.
So this is fine:
`x`;
x
But what about multiple left single quotes? This help page also states:
After ?invtrig:
For real arguments x, y, the two-argument function arctan(y, x), computes the principal value of the argument of the complex number x+I*y, so -Pi < arctan(y, x) <= Pi.
For any point in C or R^2 (x,y)<>(0,0) the geometrical meaning of this result is clear: the angle that the segment/vector from (0,0) to (x,y) forms with the x-axis. But this angle is undefined if this point is the origin.
So, what is arctan(0,0)?, and what it should be?
The help page ?type/protected states:
The set of protected names in Maple can be computed with select(type, {unames(), anames(anything)}, protected).
However, the result of this computation is "time dependent". I.e. repeated execution of this command produce different sets. E.g. executed in a fresh session:
The calling sequence in ?complex states only the two argument form 'Complex(x, y)', but later in the section "Description", in a bit confusing way, two rules for the single argument form are stated:
As the discussion in this thread did not provide me a clear understanding of the implementation and intended usage of the property 'continuous' I have looked at this subject a bit further. And as it is an underdocumented subject, it seems fit to post here some issues that I have found.
Because of John's answer to my last comment about a Maple wiki, I have searched first for antecedents in Maple Primes. From the many posts found in this search, I put together here what I consider the main points stated so far.
Oficial plans + technology:
2 hours 11 min ago
2 hours 18 min ago
7 hours 49 min ago
15 hours 9 min ago
15 hours 32 min ago
15 hours 42 min ago
17 hours 44 min ago
17 hours 58 min ago
18 hours 5 min ago
18 hours 47 min ago