[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.2 and 1.3

version 1.2, 2000/01/02 07:32:12 version 1.3, 2000/01/03 04:27:52
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/issac2000/openxm-stackmachines.tex,v 1.1 1999/12/23 10:25:09 takayama Exp $  % $OpenXM: OpenXM/doc/issac2000/openxm-stackmachines.tex,v 1.2 2000/01/02 07:32:12 takayama Exp $
   
 \section{OpenXM Stackmachines}   (Tamura)  \section{OpenXM Stackmachines}   (Tamura)
   
 In OpenXM specification, all servers are stackmachines.  In OpenXM specification, all servers are stackmachines.
 These are called OpenXM stachmachines.  These are called OX stachmachines.
 When a server ox\_xyz gets a 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 its own object and push the object
 on the stack.  on the stack.
 The translation scheme together with mathematical operation definitions  The translation scheme together with definitions of
   mathematical operations
 of the system ox\_xyz is called the {\it phrase dictionary} of  of the system ox\_xyz is called the {\it phrase dictionary} of
 ox\_xyz following the idea of OpenMath.  ox\_xyz following the OpenMath specification.
   
 OX command message starts with the int32 tag OX\_COMMAND.  Any OX command message starts with the int32 tag OX\_COMMAND.
 The body is OpenXM stackmachine operation code expressed by int32.  The body is OX stackmachine 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 40  The codes are listed below.
Line 41  The codes are listed below.
 \end{verbatim}  \end{verbatim}
   
 OpenXM does not have a standard for mathematical operation sets  OpenXM does not have a standard for mathematical operation sets
 while it is one of the main future projects of \cite{gap}.  while it is a work in progress in \cite{gap}.
 Each OpenXM server has its own mathematical operation set.  Each OpenXM server has its own mathematical operation set.
   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,
 SM\_executeFunction pops the operator name, the number of arguments  the stackmachine command
 and arguments,  SM\_executeFunction (269) pops the operator name, the number of arguments
 evaluates the operator, and pushes the result on the stack.  and arguments, and
   the OX stackmachine 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.  ox\_asir from asir.
 \begin{verbatim}  \begin{verbatim}
 P = ox_launch();  P = ox_launch();
 ox_push_cmo(P,x^100-1); ox_push_cmo(P,ox_int32(1));  ox_push_cmo(P,x^100-1); ox_push_cmo(P,ox_int32(1));
Line 67  error([8,fctr : invalid argument])
Line 70  error([8,fctr : invalid argument])
 \end{verbatim}  \end{verbatim}
   
 Errors are not sent to the client except a SM\_pop* command is received.  Errors are not sent to the client except a SM\_pop* command is received.
 Open XM stackmachines works in the asynchoronous mode which is similar  OX stackmachines works in the asynchronous mode which is similar
 to X servers.  to X servers.
 For servers of graphic applications, it is an advantageous feature.  For servers for graphic applications, it is an advantageous feature.
 It is also easy to emulate RPC and a web server for MCP \cite{iamc}  It is also easy to emulate RPC and a web server for MCP \cite{iamc}
 on our OpenXM stackmachines.  on our asynchronous OX stackmachines.
   
   
   

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

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