Maple Professionel
Maple Académique
Maple Edition Étudiant
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professionel
MapleSim Académique
Maple T.A. - Suite d'examens de classement
Maple T.A. MAA Placement Test Suite
Möbius - Didacticiels de mathématiques en ligne
Machine Design / Industrial Automation
Aéronautique
Ingénierie des véhicules
Robotics
Energie
System Simulation and Analysis
Model development for HIL
Modélisation du procédé pour la conception de systèmes de contrôle
Robotics/Motion Control/Mechatronics
Other Application Areas
Enseignement des mathématiques
Enseignement de l’ingénierie
Enseignement secondaire et supérieur (CPGE, BTS)
Tests et évaluations
Etudiants
Modélisation financière
Recherche opérationnelle
Calcul haute performance
Physique
Webinaires en direct
Webinaires enregistrés
Agenda des évènements
Forum MaplePrimes
Blog Maplesoft
Membres Maplesoft
Maple Ambassador Program
MapleCloud
Livres blancs techniques
Bulletin électronique
Livres Maple
Math Matters
Portail des applications
Galerie de modèles MapleSim
Cas d'Etudes Utilisateur
Exploring Engineering Fundamentals
Concepts d’enseignement avec Maple
Centre d’accueil utilisateur Maplesoft
Centre de ressources pour enseignants
Centre d’assistance aux étudiants
assemble - assemble a sequence of addresses into an object
disassemble - break an object into its component addresses
pointto - obtain the expression pointed to by an address
addressof - obtain the address that points to an expression
Calling Sequence
assemble(objectid, addrseq)
disassemble(addr)
pointto(addr)
addressof(expr)
Parameters
objectid
-
integer or symbolic object type identifier
addrseq
sequence of integer addresses
addr
integer representing an address
expr
Maple expression
Description
This collection of four functions is known as the ``hackware package'' in Maple. These functions allow access to the internal representations of Maple objects and to the addresses pointing to them.
You should become familiar with the internal representation of Maple objects before using this collection of functions. For details, refer to the Appendix in the Maple Programming Guide.
Extreme care is required when using these functions, because their use can lead to various types of unrecoverable internal errors. Maple does some rudimentary checks of the objects created through these functions, but it is not possible to check everything.
The functions assemble and disassemble are a complementary pair of functions:
The first function, assemble, assembles an object identifier and a sequence of integer addresses into a Maple object and returns an integer addr that gives the address of the object.
The second function, disassemble, looks at the Maple object pointed to by the integer address addr, disassembles the object into its component parts, and returns the sequence of addresses of the component parts.
The object identifier objectid represents the type of the object, and can be expressed as an integer, or as a symbolic name. The valid object identifier names are:
AND
ASSIGN
BINARY
BREAK
CATENATE
COMPLEX
CONTROL
DCOLON
DEBUG
EQUATION
ERROR
EXPSEQ
FLOAT
FOR
FOREIGN
FUNCTION
GARBAGE
HASH
HASHTAB
HFLOAT
IF
IMPLIES
INEQUAT
INTNEG
INTPOS
LESSEQ
LESSTHAN
LEXICAL
LIST
LOCAL
MEMBER
MODDEF
MODULE
NAME
NEXT
NOT
OR
PARAM
POWER
PROC
PROD
RANGE
RATIONAL
READ
RETURN
RTABLE
SAVE
SDPOLY
SERIES
SET
STATSEQ
STOP
STRING
SUM
TABLE
TABLEREF
TRY
UNEVAL
USE
XOR
ZPPOLY
The kernelopts function with option dagtag can be used to map among these symbolic names and the corresponding integer values.
The functions pointto and addressof are a complementary pair of functions:
The function pointto takes an integer address addr and returns the Maple expression to which it points.
The addressof function takes a Maple expression and returns the integer address that points to it.
An object whose only reference is through an addressof() reference could be collected by garbage collection. To avoid this, either make sure that all the objects for which you compute addressof() are assigned to variables, or delay garbage collection (see gc).
Thread Safety
The assemble, disassemble, pointto and addressof commands are thread-safe as of Maple 15.
For more information on thread safety, see index/threadsafe.
Examples
See Also
dismantle, kernelopts, ProgrammingGuide/Appendix, The Maple debugger
Download Help Document