[BACK]Return to openxm-stackmachines.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / issac2000

Diff for /OpenXM/doc/issac2000/openxm-stackmachines.tex between version 1.3 and 1.7

version 1.3, 2000/01/03 04:27:52 version 1.7, 2000/01/14 10:45:10
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/issac2000/openxm-stackmachines.tex,v 1.2 2000/01/02 07:32:12 takayama Exp $  % $OpenXM: OpenXM/doc/issac2000/openxm-stackmachines.tex,v 1.6 2000/01/13 10:54:33 ohara Exp $
   
 \section{OpenXM Stackmachines}   (Tamura)  \section{OpenXM Stack machines}\label{sec:ox-stackmachines} (Tamura)
   
 In OpenXM specification, all servers are stackmachines.  In OpenXM specification, all servers are stack machines.
 These are called OX stachmachines.  These are called OpenXM stack machines.
 When a server ox\_xyz gets an OX data message,  When a server ox\_xyz gets an OX data message,
 it translates the data into its own object and push the object  it translates the data into an object of its local mathematical system
 on the stack.  and push the object on the stack.
 The translation scheme together with definitions of  The translation scheme together with definitions of mathematical operations
 mathematical operations  of the system ox\_xyz is called the {\it PhraseBook} of
 of the system ox\_xyz is called the {\it phrase dictionary} of  
 ox\_xyz following the OpenMath specification.  ox\_xyz following the OpenMath specification.
   
 Any OX command message starts with the int32 tag OX\_COMMAND.  Any OX command message starts with the int32 tag OX\_COMMAND.
 The body is OX stackmachine operation code expressed by int32.  The body is OpenXM stack machine operation code expressed by int32.
 The codes are listed below.  The codes are listed below.
 \begin{verbatim}  \begin{verbatim}
 #define SM_popSerializedLocalObject               258  #define SM_popSerializedLocalObject               258
Line 46  Each OpenXM server has its own mathematical operation 
Line 45  Each OpenXM server has its own mathematical operation 
 Mathematical operations are performed as follows.  Mathematical operations are performed as follows.
 Mathematical operator name, such as fctr (asir factorization command),  Mathematical operator name, such as fctr (asir factorization command),
 is pushed as a string,  is pushed as a string,
 the stackmachine command  the stack machine command
 SM\_executeFunction (269) pops the operator name, the number of arguments  SM\_executeFunction (269) pops the operator name, the number of arguments
 and arguments, and  and arguments, and
 the OX stackmachine evaluates the operator, and pushes the result on the stack.  the OX stack machine evaluates the operator, and pushes the result on the stack.
 For example, the following code factorizes $x^{100}-1$ by calling  For example, the following code factorizes $x^{100}-1$ by calling
 ox\_asir from asir.  ox\_asir from asir.
 \begin{verbatim}  \begin{verbatim}
Line 69  which caused the error, and an error message.
Line 68  which caused the error, and an error message.
 error([8,fctr : invalid argument])  error([8,fctr : invalid argument])
 \end{verbatim}  \end{verbatim}
   
 Errors are not sent to the client except a SM\_pop* command is received.  OpenXM server won't send error messages to the client
   except when it receives a SM\_pop* command.
 OX stackmachines works in the asynchronous mode which is similar  OX stackmachines works in the asynchronous mode which is similar
 to X servers.  to X servers.
 For servers for graphic applications, it is an advantageous feature.  For servers for graphic applications, it is an advantageous feature.

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.7

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>