version 1.2, 1999/10/30 02:24:27 |
version 1.6, 2000/01/13 01:52:19 |
|
|
%% $OpenXM$ |
%% $OpenXM: OpenXM/src/kxx/openxxx.tex,v 1.5 2000/01/02 07:35:15 takayama Exp $ |
|
/*&jp |
%\documentclass{jarticle} |
%\documentclass{jarticle} |
\documentstyle{jarticle} |
\documentstyle{jarticle} |
\title{{\bf Open XM ¤ÎÀ߷פȼÂÁõ} \\ |
\title{{\bf Open XM ¤ÎÀ߷פȼÂÁõ} \\ |
|
|
} , |
} , |
¹â»³¿®µ£\thanks{¿À¸ÍÂç³ØÍý³ØÉô¿ô³Ø¶µ¼¼} |
¹â»³¿®µ£\thanks{¿À¸ÍÂç³ØÍý³ØÉô¿ô³Ø¶µ¼¼} |
} |
} |
\date{ 1999ǯ, 10·î30Æü} |
\date{ 1999ǯ, 12·î31Æü} |
|
*/ |
|
/*&eg |
|
%\documentclass{article} |
|
\documentstyle{article} |
|
\title{{\bf Design and Implementation of OpenXM} \\ |
|
--- Open message eXchange protocol for Mathematics \\ |
|
(English Abstract of Japanese Original Document)} |
|
\author{ Masayuki Noro\thanks{Fujitsu Laboratory |
|
} , |
|
Nobuki Takayama\thanks{Department of Mathematics, Kobe University} |
|
} |
|
\date{ December 31, 1999} |
|
*/ |
|
/*&C |
\begin{document} |
\begin{document} |
\maketitle |
\maketitle |
|
|
\def\noroa#1{ } |
\def\noroa#1{ } |
\def\remove#1{ } |
\def\remove#1{ } |
|
*/ |
|
|
|
/*&jp |
{\tt kxx/openxxx.tex}. {\bf Draft} 1997, 11/20 --- . |
{\tt kxx/openxxx.tex}. {\bf Draft} 1997, 11/20 --- . |
¤³¤Îʸ½ñ¤Ï open XM ¤ÎÀß·×ÍѤΥá¥â¤È¤·¤Æ¤ÎÌòÌܤ⤢¤ë¤Î¤Ç, |
¤³¤Îʸ½ñ¤Ï open XM ¤ÎÀß·×ÍѤΥá¥â¤È¤·¤Æ¤ÎÌòÌܤ⤢¤ë¤Î¤Ç, |
°ìÉô¤Î¥Õ¥¡¥¤¥ë̾¤Ï³«È¯¼Ô¤Î¤ß¤¬»²¾È¤Ç¤¤ë. |
°ìÉô¤Î¥Õ¥¡¥¤¥ë̾¤Ï³«È¯¼Ô¤Î¤ß¤¬»²¾È¤Ç¤¤ë. |
|
*/ |
|
|
\section{¤Ï¤¸¤á¤Ë} |
//&jp \section{¤Ï¤¸¤á¤Ë} |
|
//&eg \section{Introduction} (This part has not been translated) |
|
|
|
/*&jp |
Open XM ¤Ï, ¤ª¤Ê¤¸¥¿¥¤¥×¤Þ¤¿¤Ï°Û¤Ê¤ë¥¿¥¤¥×¤Î¿ô³Ø¥×¥í¥»¥¹´Ö¤Î |
Open XM ¤Ï, ¤ª¤Ê¤¸¥¿¥¤¥×¤Þ¤¿¤Ï°Û¤Ê¤ë¥¿¥¤¥×¤Î¿ô³Ø¥×¥í¥»¥¹´Ö¤Î |
¥á¥Ã¥»¡¼¥¸¤Î¤ä¤ê¤È¤ê¤Îµ¬Ìó¤Ç¤¢¤ë. |
¥á¥Ã¥»¡¼¥¸¤Î¤ä¤ê¤È¤ê¤Îµ¬Ìó¤Ç¤¢¤ë. |
³«È¯¤ÎÆ°µ¡¤Ï, ¼êºî¤ê(¤Þ¤¿¤Ï¸¦µæŪ¤Ê)¿ô³Ø¥½¥Õ¥È¤ÎÁê¸ß¾è¤êÆþ¤ì¤Î¼Â¸½ |
³«È¯¤ÎÆ°µ¡¤Ï, ¼êºî¤ê(¤Þ¤¿¤Ï¸¦µæŪ¤Ê)¿ô³Ø¥½¥Õ¥È¤ÎÁê¸ß¾è¤êÆþ¤ì¤Î¼Â¸½ |
Line 104 SM ÁØ¤Ï (¥¹¥¿¥Ã¥¯¥Þ¥·¥ó)¥µ¡¼¥Ð¤òÀ©¸æ¤¹¤ë¤¿¤á¤ÎÌ¿Îá¤Î |
|
Line 124 SM ÁØ¤Ï (¥¹¥¿¥Ã¥¯¥Þ¥·¥ó)¥µ¡¼¥Ð¤òÀ©¸æ¤¹¤ë¤¿¤á¤ÎÌ¿Îá¤Î |
|
¤¢¤Ä¤Þ¤ê¤Ç¤¢¤ê, ¥µ¡¼¥Ð¤ÏÈóƱ´üŪ¤ËÆ°ºî¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë. |
¤¢¤Ä¤Þ¤ê¤Ç¤¢¤ê, ¥µ¡¼¥Ð¤ÏÈóƱ´üŪ¤ËÆ°ºî¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë. |
½ÀÆðÀ¤¬¹â¤¤¤Î¤Ç, IMC ¤Ê¤É¤Î¥ê¥â¡¼¥È¥×¥í¥·¡¼¥¸¥ã¥³¡¼¥ë·Ï¤Î |
½ÀÆðÀ¤¬¹â¤¤¤Î¤Ç, IMC ¤Ê¤É¤Î¥ê¥â¡¼¥È¥×¥í¥·¡¼¥¸¥ã¥³¡¼¥ë·Ï¤Î |
¥×¥í¥È¥³¥ë¤â¥¨¥ß¥å¥ì¡¼¥È¤Ç¤¤ë. |
¥×¥í¥È¥³¥ë¤â¥¨¥ß¥å¥ì¡¼¥È¤Ç¤¤ë. |
|
*/ |
|
|
|
|
|
|
|
//&jp \section{CMO Basic0 ¤Î object} |
|
//&eg \section{CMO Basic0 object} |
\section{CMO Basic0 ¤Î object} |
/*&jp |
CMO (Common Mathematical Object format) ¥°¥ë¡¼¥× Basic0 ¤Î Object ¤Ï, |
CMO (Common Mathematical Object format) ¥°¥ë¡¼¥× Basic0 ¤Î Object ¤Ï, |
¿¤¯¤Î·×»»µ¡¸À¸ì¤¬É¸½à¤È¤·¤Æ¤â¤Ä |
|
¥í¡¼¥ì¥Ù¥ë¤Î¥Ç¡¼¥¿·¿, {\tt int} , {\tt string} |
¥í¡¼¥ì¥Ù¥ë¤Î¥Ç¡¼¥¿·¿, {\tt int} , {\tt string} |
¤Ê¤É¤Ë ¥¿¥°ÉÕ¤±¤·¤¿ object ¤Ç¤¢¤ë. |
¤Ê¤É¤ËÂбþ¤¹¤ë object ¤Ç¤¢¤ë. |
¤³¤Î CMO ¤Ï¤¹¤Ù¤Æ¤Î open xxx ¤¬¼ÂÁõ¤·¤Æ¤¤¤ë¤È²¾Äꤵ¤ì¤ë. |
¤³¤Î CMO ¤Ï¤¹¤Ù¤Æ¤Î OpenXM ¤¬¼ÂÁõ¤·¤Æ¤¤¤ë¤È²¾Äꤵ¤ì¤ë. |
¤³¤ÎÀá¤Ç¤Ï, ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó¤È¤·¤Æ, ¥°¥ë¡¼¥× Basic0 ¤Ë°¤¹¤ë CMObject |
¤³¤ÎÀá¤Ç¤Ï, ¥¤¥ó¥È¥í¥À¥¯¥·¥ç¥ó¤È¤·¤Æ, ¥°¥ë¡¼¥× Basic0 ¤Ë°¤¹¤ë CMObject |
(Common Mathematical Object) ¤ò·Á¼°Åª¤ÊÊýË¡¤ò¤Ä¤«¤ï¤ºÆ³Æþ¤·¤è¤¦. |
(Common Mathematical Object) ¤ò·Á¼°Åª¤ÊÊýË¡¤ò¤Ä¤«¤ï¤ºÆ³Æþ¤·¤è¤¦. |
|
*/ |
|
/*&eg |
|
Objects in CMO (Common Mathematical Object format) group Basic0 |
|
are primitive data such as {\tt int}, {\tt string}. |
|
All OpenXM compliant systems should implement all data types |
|
in the group Basic0. |
|
In this section, as an introduction, we will introduce |
|
CMObject (Common Mathematical Object) of the group Basic0 without |
|
using the Backus-Nauer form. |
|
*/ |
|
/*&jp |
¤³¤Î¥°¥ë¡¼¥×¤ÎÀµ¼°¤Ê̾Á°¤Ï, |
¤³¤Î¥°¥ë¡¼¥×¤ÎÀµ¼°¤Ê̾Á°¤Ï, |
CMObject/Basic0 ¤Ç¤¢¤ë. |
CMObject/Basic0 ¤Ç¤¢¤ë. |
°Ê²¼, {\tt int32} ¤Ç2¤ÎÊä¿ôɽ¸½¤µ¤ì¤¿ |
°Ê²¼, {\tt int32} ¤Ç2¤ÎÊä¿ôɽ¸½¤µ¤ì¤¿ |
network byte order ¤Î 32 bit integer ¤ò¤¢¤é¤ï¤¹. |
32 bit integer ¤ò¤¢¤é¤ï¤¹ |
|
(¤³¤ì¤Ï¤è¤¯»È¤ï¤ì¤ë·×»»µ¡¤Ç¤Î C ¸À¸ì¤Î int ¤ÎÆâÉôɽ¸½). |
{\tt byte} ¤Ç 8 bit ¥Ç¡¼¥¿¤ò¤¢¤é¤ï¤¹. |
{\tt byte} ¤Ç 8 bit ¥Ç¡¼¥¿¤ò¤¢¤é¤ï¤¹. |
|
*/ |
|
/*&eg |
|
The canonical name of this group is |
|
CMObject/Basic0. |
|
In the sequel, |
|
{\tt int32} means the signed 32 bit integer expressed by two's complement |
|
(internal expressions of {\tt int} of the language C usually use |
|
this expression). |
|
{\tt byte} means 8 bit data. |
|
*/ |
|
|
|
//&C |
|
/*&jp |
|
CMObject ¤Î TCP/IP ÍѤμÂÁõ¤Ç¤Ï, |
CMO ¤Î object ¤Ï \\ |
CMO ¤Î object ¤Ï \\ |
\begin{tabular}{|c|c|} |
\begin{tabular}{|c|c|} |
\hline |
\hline |
Line 131 CMO ¤Î object ¤Ï \\ |
|
Line 177 CMO ¤Î object ¤Ï \\ |
|
¤Ê¤ë·Á¤ò¤·¤Æ¤¤¤ë. |
¤Ê¤ë·Á¤ò¤·¤Æ¤¤¤ë. |
¤³¤³¤Ç, {\tt cmo\_tag} ¤Ï, Àµ¤Î |
¤³¤³¤Ç, {\tt cmo\_tag} ¤Ï, Àµ¤Î |
{\tt int32} ¤Çɽ¸½¤¹¤ë¤â¤Î¤Èµ¬Ì󤹤ë. |
{\tt int32} ¤Çɽ¸½¤¹¤ë¤â¤Î¤Èµ¬Ì󤹤ë. |
|
*/ |
|
/*&eg |
|
In our encoding of the CMO's for TCP/IP, |
|
any CMObject consists of a tag and a body: \\ |
|
\begin{tabular}{|c|c|} |
|
\hline |
|
{\tt cmo\_tag}& {\tt cmo\_body} \\ |
|
\hline |
|
\end{tabular} \\ |
|
{\tt cmo\_tag} should be given by a positive |
|
{\tt int32}. |
|
*/ |
|
|
|
/*&C |
|
|
|
*/ |
|
/*&jp |
{\tt cmo\_tag} ¤Ï object ¤Î¥¿¥¤¥×¤ò¤¢¤é¤ï¤¹¥¿¥°¤Ç¤¢¤ê, |
{\tt cmo\_tag} ¤Ï object ¤Î¥¿¥¤¥×¤ò¤¢¤é¤ï¤¹¥¿¥°¤Ç¤¢¤ê, |
°Ê²¼¤Î¤è¤¦¤Ë·è¤á¤Æ¤¤¤ë. |
°Ê²¼¤Î¤è¤¦¤Ë·è¤á¤Æ¤¤¤ë. |
|
*/ |
|
//&eg The following is a list of tags of CMObject/Basic0. |
|
/*&C |
@../SSkan/plugin/cmotag.h |
@../SSkan/plugin/cmotag.h |
\begin{verbatim} |
\begin{verbatim} |
#define LARGEID 0x7f000000 |
#define LARGEID 0x7f000000 |
Line 145 CMO ¤Î object ¤Ï \\ |
|
Line 210 CMO ¤Î object ¤Ï \\ |
|
#define CMO_MATHCAP 5 |
#define CMO_MATHCAP 5 |
#define CMO_LIST 17 |
#define CMO_LIST 17 |
\end{verbatim} |
\end{verbatim} |
|
*/ |
|
|
|
/*&jp |
°Ê²¼, ³Æ object ¤Î ¥Õ¥©¡¼¥Þ¥Ã¥È¤òÀâÌÀ¤¹¤ë. |
°Ê²¼, ³Æ object ¤Î ¥Õ¥©¡¼¥Þ¥Ã¥È¤òÀâÌÀ¤¹¤ë. |
¥µ¡¼¥Ð¤Ï¤¹¤Ù¤Æ¤Î object ¤Î CMO ·Á¼°¤ò¥µ¥Ý¡¼¥È¤¹¤ëɬÍפϤʤ¤¤¬, |
¥µ¡¼¥Ð, ¥¯¥é¥¤¥¢¥ó¥È¤Ï¤¹¤Ù¤Æ¤Î object ¤Î CMO ·Á¼°¤ò¥µ¥Ý¡¼¥È¤¹¤ëɬÍפϤʤ¤¤¬, |
mathcap (¸å½Ò) Ì䤤¹ç¤ï¤»¤ËÂФ·¤Æ, |
|
¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë CMO ·Á¼°¥Ç¡¼¥¿¤ò¥¯¥é¥¤¥¢¥ó¥È¤ËÃΤ餻¤ëɬÍפ¬ |
|
¤¢¤ë. |
|
{\tt CMO\_ERROR2}, {\tt CMO\_NULL}, |
{\tt CMO\_ERROR2}, {\tt CMO\_NULL}, |
{\tt CMO\_INT32}, {\tt CMO\_STRING}, {\tt CMO\_MATHCAP}, {\tt CMO\_LIST} |
{\tt CMO\_INT32}, {\tt CMO\_STRING}, {\tt CMO\_MATHCAP}, {\tt CMO\_LIST} |
¤ÏºÇ¤â´ðËÜŪ¤Ê¥Ç¡¼¥¿¤Ç¤¢¤ê, |
¤ÏºÇ¤â´ðËÜŪ¤Ê¥Ç¡¼¥¿¤Ç¤¢¤ê, |
¤Þ¤¿Á´¤Æ¤Î¥µ¡¼¥Ð, ¥¯¥é¥¤¥¢¥ó¥È¤¬¼ÂÁõ¤¹¤Ù¤ CMO ¥Ç¡¼¥¿¤Ç¤¢¤ë. |
¤Þ¤¿Á´¤Æ¤Î¥µ¡¼¥Ð, ¥¯¥é¥¤¥¢¥ó¥È¤¬¼ÂÁõ¤¹¤Ù¤ CMO ¥Ç¡¼¥¿¤Ç¤¢¤ë. |
|
*/ |
|
/*&eg |
|
We will explain each object format. |
|
Servers and clients do not need to implement all CMO's. |
|
However, |
|
{\tt CMO\_ERROR2}, {\tt CMO\_NULL}, |
|
{\tt CMO\_INT32}, {\tt CMO\_STRING}, {\tt CMO\_MATHCAP}, {\tt CMO\_LIST} |
|
are primitive data and |
|
all servers and clients have to implement them. |
|
*/ |
|
|
|
/*&C |
|
|
CMObject Error2 ¤Ï \\ |
\medbreak \noindent |
|
*/ |
|
//&jp CMObject Error2 ¤Ï \\ |
|
//&eg CMObject Error2 is of the form \\ |
|
/*&C |
\begin{tabular}{|c|c|} |
\begin{tabular}{|c|c|} |
\hline |
\hline |
{\tt int32 CMO\_ERROR2} & {\it CMObject} ob \\ |
{\tt int32 CMO\_ERROR2} & {\sl CMObject} {\rm ob} \\ |
\hline |
\hline |
\end{tabular} \\ |
\end{tabular} \\ |
|
*/ |
|
/*&jp |
¤Ê¤ë·Á¤Çɽ¸½¤¹¤ë. |
¤Ê¤ë·Á¤Çɽ¸½¤¹¤ë. |
¥¨¥é¡¼¤Î»þ¤ËÅꤲ¤ë object ¤Ç¤¢¤ê, {\it CMObject} ob ¤Î |
¥¨¥é¡¼¤Î»þ¤Ë push ¤¹¤ë object ¤Ç¤¢¤ê, {\it CMObject} ob ¤Î |
Éôʬ¤Ë¾ÜºÙ¤Ê¥¨¥é¡¼¾ðÊ󤬤Ϥ¤¤ë. |
Éôʬ¤Ë¾ÜºÙ¤Ê¥¨¥é¡¼¾ðÊ󤬤Ϥ¤¤ë. |
ob ¤Ï¥ê¥¹¥È¤Ç¤¢¤ê, ºÇ½é¤ÎÀ®Ê¬¤Ï¥¨¥é¡¼¤òµ¯¤³¤·¤¿ OX ¥á¥Ã¥»¡¼¥¸(¸å½Ò) |
ob ¤Ï¥ê¥¹¥È¤Ç¤¢¤ê, TCP/IP ¤Ë¤è¤ë¥¹¥È¥ê¡¼¥à·¿Àܳ¤Î¾ì¹ç, |
|
ºÇ½é¤ÎÀ®Ê¬¤Ï¥¨¥é¡¼¤òµ¯¤³¤·¤¿ OX ¥á¥Ã¥»¡¼¥¸(¸å½Ò) |
¤Î¥·¥ê¥¢¥ëÈÖ¹æ¤Ç¤Ê¤¤¤È¤¤¤±¤Ê¤¤. |
¤Î¥·¥ê¥¢¥ëÈÖ¹æ¤Ç¤Ê¤¤¤È¤¤¤±¤Ê¤¤. |
¥·¥ê¥¢¥ëÈÖ¹æ¤Ï Integer32 ¤Çɽ¸½¤¹¤ë. |
¥·¥ê¥¢¥ëÈÖ¹æ¤Ï Integer32 ¤Çɽ¸½¤¹¤ë. |
|
*/ |
|
/*&eg |
|
It is an object used when a server makes an error. |
|
{\it CMObject} ob carries error informations. |
|
The instance ob is a list and in case of a stream connection like TCP/IP |
|
the first element must be the serial number of the OX message |
|
that caused the error. |
|
The serial number is given by the data type Integer32. |
|
*/ |
|
|
|
/*&C |
|
|
CMObject Null ¤Ï \\ |
\medbreak \noindent |
|
*/ |
|
|
|
//&jp CMObject Null ¤Ï \\ |
|
//&eg CMObject Null has the format \\ |
|
/*&C |
\begin{tabular}{|c|c|} |
\begin{tabular}{|c|c|} |
\hline |
\hline |
{\tt int32 CMO\_NULL} \\ |
{\tt int32 CMO\_NULL} \\ |
\hline |
\hline |
\end{tabular} \\ |
\end{tabular} \\ |
|
*/ |
|
/*&jp |
¤Ê¤ë·Á¤Çɽ¸½¤¹¤ë. |
¤Ê¤ë·Á¤Çɽ¸½¤¹¤ë. |
|
*/ |
|
|
32 bit integer n ¤Ï CMObject ¤È¤·¤Æ¤Ï Integer32 ¤È¸Æ¤Ð¤ì, \\ |
/*&C |
|
|
|
\noindent |
|
*/ |
|
|
|
//&jp 32 bit integer n ¤Ï CMObject ¤È¤·¤Æ¤Ï Integer32 ¤È¸Æ¤Ð¤ì, \\ |
|
//&eg 32 bit integer n is called Integer32 as a CMObject and has the format \\ |
|
/*&C |
\begin{tabular}{|c|c|} |
\begin{tabular}{|c|c|} |
\hline |
\hline |
{\tt int32 CMO\_INT32}& {\tt int32 n} \\ |
{\tt int32 CMO\_INT32}& {\tt int32} {\rm n} \\ |
\hline |
\hline |
\end{tabular} \\ |
\end{tabular} \\ |
¤Ê¤ë·Á¤Çɽ¸½¤¹¤ë. |
*/ |
|
//&jp ¤Ê¤ë·Á¤Çɽ¸½¤¹¤ë. |
|
|
|
/*&C |
|
|
Ťµ n ¤Î ¥Ð¥¤¥ÈÎó data ¤Ï CMObject ¤È¤·¤Æ¤Ï, Datum ·¿¤È¤è¤Ð¤ì \\ |
\medbreak \noindent |
|
*/ |
|
|
|
|
|
//&jp Ťµ n ¤Î ¥Ð¥¤¥ÈÎó data ¤Ï CMObject ¤È¤·¤Æ¤Ï, Datum ·¿¤È¤è¤Ð¤ì \\ |
|
//&eg A byte array of the length n is called Datum as a CMObject and has the format \\ |
|
/*&C |
\begin{tabular}{|c|c|c|c|} |
\begin{tabular}{|c|c|c|c|} |
\hline |
\hline |
{\tt int32 CMO\_DATUM}& {\tt int32 n} & {\tt byte data[0]} & {\tt byte data[1]} \\ |
{\tt int32 CMO\_DATUM}& {\tt int32} {\rm n} & {\tt byte} {\rm data[0]} |
|
& {\tt byte} {\rm data[1]} \\ |
\hline |
\hline |
$\cdots$ & {\tt byte data[n-1]} \\ |
$\cdots$ & {\tt byte} {\rm data[n-1]} \\ |
\cline{1-2} |
\cline{1-2} |
\end{tabular} \\ |
\end{tabular} \\ |
¤Èɽ¸½¤¹¤ë. |
*/ |
data ¤ÎÉôʬ¤ËľÎó²½ (serialized) ¤µ¤ì¤¿ CMO ¤¬Æþ¤ë¤³¤È¤â¤¢¤ê¤¦¤ë. |
//&jp ¤Èɽ¸½¤¹¤ë. |
|
|
Ťµ n ¤Î ʸ»úÎó data ¤Ï, CMObject ¤È¤·¤Æ¤Ï, Cstring ·¿¤È¤è¤Ð¤ì \\ |
/*&C |
|
|
|
\noindent |
|
*/ |
|
|
|
//&jp Ťµ n ¤Î ʸ»úÎó data ¤Ï, CMObject ¤È¤·¤Æ¤Ï, Cstring ·¿¤È¤è¤Ð¤ì \\ |
|
//&eg String of n bytes is called Cstring as CMObject and has the format \\ |
|
/*&C |
\begin{tabular}{|c|c|c|c|} |
\begin{tabular}{|c|c|c|c|} |
\hline |
\hline |
{\tt int32 CMO\_STRING}& {\tt int32 n} & {\tt byte data[0]} & {\tt byte data[1]} \\ |
{\tt int32 CMO\_STRING}& {\tt int32} {\rm n} & {\tt byte} {\rm data[0]} |
|
& {\tt byte} {\rm data[1]} \\ |
\hline |
\hline |
$\cdots$ & {\tt byte data[n-1]} \\ |
$\cdots$ & {\tt byte} {\rm data[n-1]} \\ |
\cline{1-2} |
\cline{1-2} |
\end{tabular} \\ |
\end{tabular} \\ |
|
*/ |
|
/*&jp |
¤Èɽ¸½¤¹¤ë. C ¸À¸ì¤ÇÉáÄÌÍѤ¤¤é¤ì¤ë, ʸ»úÎó¤Î¤ª¤ï¤ê¤Î {\tt 0} ¤Ïʸ»úÎó |
¤Èɽ¸½¤¹¤ë. C ¸À¸ì¤ÇÉáÄÌÍѤ¤¤é¤ì¤ë, ʸ»úÎó¤Î¤ª¤ï¤ê¤Î {\tt 0} ¤Ïʸ»úÎó |
¤Ë´Þ¤á¤Ê¤¤. |
¤Ë´Þ¤á¤Ê¤¤. |
|
*/ |
|
|
\remove{ |
/*&C |
Ťµ n ¤Î 32bit network byte order ¤Î data ¤Î array ¤Ï \\ |
|
\begin{tabular}{|c|c|c|c|c|c|} |
|
\hline |
|
{\tt int32 CMO\_ARRAYOFINT32}& {\tt int32 n} & |
|
{\tt data[0]} & {\tt data[1]}&$\cdots$ |
|
& {\tt data[n-1]} \\ |
|
\cline{1-2} |
|
\end{tabular} \\ |
|
¤Èɽ¸½¤¹¤ë. ³Æ {\tt data[i]} ¤ÎÉôʬ¤Ï 4 byte ¤ÎÂ礤µ¤ò»ý¤Ä. |
|
} |
|
|
|
\noindent |
\noindent |
CMObject Mathcap ¤Ï \\ |
*/ |
|
//&jp CMObject Mathcap ¤Ï \\ |
|
//&eg CMObject Mathcap has the format \\ |
|
/*&C |
\begin{tabular}{|c|c|} |
\begin{tabular}{|c|c|} |
\hline |
\hline |
{\tt int32 CMO\_MATHCAP} & {\it CMObject} ob \\ |
{\tt int32 CMO\_MATHCAP} & {\it CMObject} {\rm ob} \\ |
\hline |
\hline |
\end{tabular} \\ |
\end{tabular} \\ |
|
*/ |
|
/*&jp |
¤Ê¤ë·Á¤Çɽ¸½¤¹¤ë. |
¤Ê¤ë·Á¤Çɽ¸½¤¹¤ë. |
{\tt ob} ¤Ï¥ê¥¹¥È¤Ç¤¢¤ê¾¯¤Ê¤¯¤È¤â2¤Ä¤ÎÍ×ÁǤò¤â¤Ä. |
{\tt ob} ¤Ï¥ê¥¹¥È¤Ç¤¢¤ê¾¯¤Ê¤¯¤È¤â3¤Ä¤ÎÍ×ÁǤò¤â¤Ä. |
0 ÈÖÌܤÎÍ×ÁǤÏ, Integer32 ¤Çɽ¤·¤¿ Version number ¤È, |
0 ÈÖÌܤÎÍ×ÁǤÏ, Integer32 ¤Çɽ¤·¤¿ OpenXM protocol version number ¤È, |
Cstring ¤Çɽ¤·¤¿¥·¥¹¥Æ¥à̾, Version number, CPUtype, ¤½¤Î¾¤Î¾ðÊó |
Cstring ¤Çɽ¤·¤¿¥·¥¹¥Æ¥à̾, Server version, CPU type, ¤½¤Î¾¤Î¾ðÊó |
¤Î¥ê¥¹¥È¤Ç¤¢¤ë. |
¤Î¥ê¥¹¥È¤Ç¤¢¤ë. |
1 ÈÖÌܤÎÍ×ÁǤÏ, ¥·¥¹¥Æ¥à xxx ¤¬°·¤¦¤³¤È¤Î²Äǽ¤Ê |
1 ÈÖÌܤÎÍ×ÁǤÏ, ¥·¥¹¥Æ¥à xxx ¤¬°·¤¦¤³¤È¤Î²Äǽ¤Ê |
CMO ¥¿¥°¤ò, Integer32 ¤Çɽ¸½¤·¤¿¤â¤Î¤ò½¸¤á¤¿¥ê¥¹¥È¤Ç¤¢¤ë. |
SM ¥¿¥°¤ò, Integer32 ¤Çɽ¸½¤·¤¿¤â¤Î¤ò½¸¤á¤¿¥ê¥¹¥È¤Ç¤¢¤ë. |
|
3 ÈÖÌܤÎÍ×ÁǤÏ, ¥·¥¹¥Æ¥à xxx ¤¬¤¢¤Ä¤«¤¦¤³¤È¤Î²Äǽ¤Ê |
|
¥Ç¡¼¥¿·Á¼°¤ò¤¢¤Ä¤á¤¿¥ê¥¹¥È¤Ç¤¢¤ë. |
|
¾ÜºÙ¤Ï mathcap ¤ÎÀá¤ÇÀâÌÀ¤¹¤ë. |
|
*/ |
|
/*&eg |
|
ob is a list of which length is more than or equal to three. |
|
The first element is a list of |
|
OpenXM protocol version number in Integer32, |
|
the server name in Cstring, |
|
the server version and CPU type in Cstring, |
|
and extra informations. |
|
The second element is a list of SM tags in Integer 32. |
|
The third element is a list of data type tags which the server or the client |
|
can understand. |
|
The details will be explained in the section on mathcap. |
|
*/ |
|
|
\noindent |
/*&C |
Ťµ $m$ ¤Î¥ê¥¹¥È¤Ï \\ |
|
|
\medbreak \noindent |
|
*/ |
|
//&jp Ťµ m ¤Î¥ê¥¹¥È¤Ï \\ |
|
//&eg A list of the length m has the form \\ |
|
/*&C |
\begin{tabular}{|c|c|c|c|c|} |
\begin{tabular}{|c|c|c|c|c|} |
\hline |
\hline |
{\tt int32 CMO\_LIST}& {\tt int32 $m$} & {\tt CMObject}\, ob[0] & $\cdots$ & |
{\tt int32 CMO\_LIST}& {\tt int32} {\rm m} & {\tt CMObject}\, ob[0] & $\cdots$ & |
{\tt CMObject}\, ob[$m-1$] \\ |
{\tt CMObject}\, ob[$m-1$] \\ |
\hline |
\hline |
\end{tabular}\\ |
\end{tabular}\\ |
¤Çɽ¸½¤¹¤ë. |
*/ |
|
//&jp ¤Çɽ¸½¤¹¤ë. |
|
|
|
|
\section{ CMO ¤Îɽ¸½ÊýË¡ } |
//&jp \section{ CMO ¤Î·Á¼°ÅªÉ½¸½ÊýË¡ } |
|
//&eg \section{ A formal expression of CMO } |
|
|
|
/*&jp |
Á°¤ÎÀá¤Ç CMO ¤Îɽ¸½ÊýË¡¤ò·Á¼°Åª¤ËÄêµÁ¤»¤º, |
Á°¤ÎÀá¤Ç CMO ¤Îɽ¸½ÊýË¡¤ò·Á¼°Åª¤ËÄêµÁ¤»¤º, |
CMO ¤ÎBasic0 ¤Îɽ¸½Ë¡¤òÀâÌÀ¤·¤¿¤¬, |
CMO ¤ÎBasic0 ¤Îɽ¸½Ë¡¤òÀâÌÀ¤·¤¿¤¬, |
¤³¤³¤Ç¤Ï, CMO ¤Î Lisp É÷ɽ¸½ (Lisp-like expression) |
¤³¤³¤Ç¤Ï, CMO ¤Î Lisp É÷ɽ¸½ (Lisp-like expression) |
¤Ç¤¢¤ë |
¤Ç¤¢¤ë |
CMOexpression |
CMOexpression |
¤ª¤è¤Ó CMO ¤Îɸ½à encoding Ë¡¤òÀâÌÀ¤¹¤ë. |
¤ª¤è¤ÓÁ°Àá¤ÇÀâÌÀ¤·¤¿ CMO ¤Îɸ½à encoding Ë¡¤ò¤â¤¦°ìÅÙÀâÌÀ¤¹¤ë. |
(¥¿¥°¤Î¾ÊάµË¡¤¬¤Û¤·¤¤.) |
% (¥¿¥°¤Î¾ÊάµË¡¤¬¤Û¤·¤¤.) |
Á°¤ÎÀá¤Ç¤Ï¤³¤Î ɸ½à encoding Ë¡¤òÍѤ¤¤Æ CMO ¤Îɽ¸½ÊýË¡¤òÀâÌÀ¤·¤¿. |
*/ |
|
/*&eg |
|
In the previous setion, we have explained the format of CMO's in the |
|
Basic0 group. |
|
In this section, we will introduce CMOexpression which is like the |
|
bracket expression of Lisp. |
|
We again explain a standard encoding method of CMO, |
|
which we have already explained in the previous section. |
|
*/ |
|
|
|
/*&jp |
|
|
¤Þ¤º, CMOexpression ¤ò·Á¼°Åª¤Ë ³ÈÄ¥ BNF µË¡¤òÍѤ¤¤ÆÄêµÁ¤·¤è¤¦. |
¤Þ¤º, CMOexpression ¤ò·Á¼°Åª¤Ë ³ÈÄ¥ BNF µË¡¤òÍѤ¤¤ÆÄêµÁ¤·¤è¤¦. |
¥¿¥¤¥×¥é¥¤¥¿¥Õ¥©¥ó¥È¤Ç¤«¤«¤ì¤¿µ¹æ¤Ï½ªÃ¼µ¹æ¤ò°ÕÌ£¤¹¤ë. |
¥¿¥¤¥×¥é¥¤¥¿¥Õ¥©¥ó¥È¤Ç¤«¤«¤ì¤¿µ¹æ¤Ï½ªÃ¼µ¹æ¤ò°ÕÌ£¤¹¤ë. |
``:'' ¤ÏÄêµÁ¤ò°ÕÌ£¤¹¤ë. ``$|$'' ¤Ï''¤Þ¤¿¤Ï''¤ò°ÕÌ£¤¹¤ë. |
``:'' ¤ÏÄêµÁ¤ò°ÕÌ£¤¹¤ë. ``$|$'' ¤Ï''¤Þ¤¿¤Ï''¤ò°ÕÌ£¤¹¤ë. |
\{ X \} ¤Ï X ¤Î 0 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤òɽ¤¹. |
\{ X \} ¤Ï X ¤Î 0 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤òɽ¤¹. |
[ x ] ¤Ï X ¤¬ 0 ²ó¤Þ¤¿¤Ï 1 ²ó½Ð¸½¤¹¤ë¤³¤È¤òɽ¤¹. |
[ x ] ¤Ï X ¤¬ 0 ²ó¤Þ¤¿¤Ï 1 ²ó½Ð¸½¤¹¤ë¤³¤È¤òɽ¤¹. |
|
¤³¤ÎµË¡¤òÍѤ¤¤ë¤È CMOexpression ¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤Ç¤¤ë. |
|
|
|
*/ |
|
/*&eg |
|
|
|
Let us define CMOexpression by the extended BNF expression. |
|
Symbols in the type writer fonts mean terminals. |
|
``:'' means a definition. |
|
``$|$'' means ''or''. |
|
\{ X \} is a repetition of X of more than or equal to 0 times. |
|
[ x ] stands for X or nothing. |
|
By using this notation, CMOexpression is defined as follows. |
|
|
|
*/ |
|
|
|
/*&C |
\begin{eqnarray*} |
\begin{eqnarray*} |
\mbox{CMOexpression} |
\mbox{CMOexpression} |
&:& \quad |
&:& \quad |
|
|
& &|\ \mbox{\tt string} \\ |
& &|\ \mbox{\tt string} \\ |
& &|\ \mbox{\tt byte} \\ |
& &|\ \mbox{\tt byte} \\ |
\end{eqnarray*} |
\end{eqnarray*} |
|
*/ |
|
/*&jp |
½ªÃ¼µ¹æ {\tt int32} ¤Ï, 32 bit integer ¤òɽ¤¹, 10 ¿Ê¤Þ¤¿¤Ï 16 ¿Ê¤Î¿ô»ú¤Î |
½ªÃ¼µ¹æ {\tt int32} ¤Ï, 32 bit integer ¤òɽ¤¹, 10 ¿Ê¤Þ¤¿¤Ï 16 ¿Ê¤Î¿ô»ú¤Î |
Îó¤Ç¤¢¤ë. |
Îó¤Ç¤¢¤ë. |
½ªÃ¼µ¹æ {\tt string} ¤Ï''ʸ»ú''¤ÎÎó¤Ç¤¢¤ë. |
½ªÃ¼µ¹æ {\tt string} ¤Ï''ʸ»ú''¤ÎÎó¤Ç¤¢¤ë. |
½ªÃ¼µ¹æ {\tt byte} ¤Ï 8 bit ¥Ç¡¼¥¿¤òɽ¤¹, 10 ¿Ê¤Þ¤¿¤Ï 16 ¿Ê¤Î¿ô»ú¤ÎÎó¤Ç¤¢¤ë. |
½ªÃ¼µ¹æ {\tt byte} ¤Ï 8 bit ¥Ç¡¼¥¿¤òɽ¤¹, 10 ¿Ê¤Þ¤¿¤Ï 16 ¿Ê¤Î¿ô»ú¤ÎÎó¤Ç¤¢¤ë. |
|
|
|
*/ |
|
/*&jp |
|
Terminal {\tt int32} is signed 32 bit integer. |
|
Terminal {\tt string} is a byte array which usually expresses a string. |
|
Terminal {\tt byte} is 8 bit data. |
|
|
|
*/ |
|
|
|
/*&jp |
CMOexpression ¤Ë¤¢¤é¤ï¤ì¤ë³ÆÍ×ÁǤò¶èÀڤ뤿¤á¤Ë {\tt ,} (¥³¥ó¥Þ) ¤òÍѤ¤¤Æ¤â¤è¤¤. |
CMOexpression ¤Ë¤¢¤é¤ï¤ì¤ë³ÆÍ×ÁǤò¶èÀڤ뤿¤á¤Ë {\tt ,} (¥³¥ó¥Þ) ¤òÍѤ¤¤Æ¤â¤è¤¤. |
{\tt cmo\_tag} ¤Ï {\tt CMO\_} ¤Ç»Ï¤Þ¤ëÄê¿ô¤Ç¤¢¤ë. |
{\tt cmo\_tag} ¤Ï {\tt CMO\_} ¤Ç»Ï¤Þ¤ëÄê¿ô¤Ç¤¢¤ë. |
CMOexpression ¤Çɽ¸½¤µ¤ì¤ë object ¤ò CMObject ¤È¸Æ¤Ö. |
CMOexpression ¤Çɽ¸½¤µ¤ì¤ë object ¤ò CMObject ¤È¸Æ¤Ö. |
|
|
|
*/ |
|
/*&eg |
|
The comma ({\tt ,}) may be used to separate each element in CMOexpressions. |
|
{\tt cmo\_tag} is a constant that starts with {\tt CMO\_}. |
|
|
|
*/ |
|
|
|
/*&jp |
¤³¤ÎɽµË¡ CMOexpression ¤òÍøÍѤ·¤Æ, CMO Basic0 ¤Î object ¤òµ½Ò |
¤³¤ÎɽµË¡ CMOexpression ¤òÍøÍѤ·¤Æ, CMO Basic0 ¤Î object ¤òµ½Ò |
¤·¤Æ¤ß¤è¤¦. |
¤·¤Æ¤ß¤è¤¦. |
Object ¼«ÂΤι½Â¤¤òÀâÌÀ¤¹¤ë¤¿¤á, |
Object ¼«ÂΤι½Â¤¤òÀâÌÀ¤¹¤ë¤¿¤á, |
BNF ¤ò¤â¤¦¤¹¤³¤·³ÈÄ¥¤·¤Æ, Èó½ªÃ¼µ¹æ, ½ªÃ¼µ¹æ̾¤Î¤ß¤Ê¤é¤º, ÊÑ¿ô¤Î |
BNF ¤ò¤â¤¦¤¹¤³¤·³ÈÄ¥¤·¤Æ, Èó½ªÃ¼µ¹æ, ½ªÃ¼µ¹æ̾¤Î¤ß¤Ê¤é¤º, ÊÑ¿ô¤Î |
̾Á°¤â½ñ¤¯¤³¤È¤Ë¤¹¤ë. ¤³¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê, object ¤Î°ÕÌ£¤ÎÀâÌÀ¤âÍưפˤʤë |
̾Á°¤â½ñ¤¯¤³¤È¤Ë¤¹¤ë. ¤³¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê, object ¤Î°ÕÌ£¤ÎÀâÌÀ¤âÍưפˤʤë |
¤«¤é¤Ç¤¢¤ë. ¤Þ¤¿ ``---'' ¤Ç¥³¥á¥ó¥È¤Î¤Ï¤¸¤Þ¤ê¤òɽ¤¹¤â¤Î¤È¤¹¤ë. |
¤«¤é¤Ç¤¢¤ë. ¤Þ¤¿ ``---'' ¤Ç¥³¥á¥ó¥È¤Î¤Ï¤¸¤Þ¤ê¤òɽ¤¹¤â¤Î¤È¤¹¤ë. |
|
*/ |
|
/*&eg |
|
Let us describe CMO's in the Basic0 group. |
|
In order to explain the meaning of objects, |
|
we may also put variable names to CMOexpressions. |
|
The start of comments are denoted by ``---''. |
|
*/ |
|
/*&jp |
¤¿¤È¤¨¤Ð, (CMObject ¤Î) 32 bit integer ¤Ç¤¢¤ë integer32 ¤ò |
¤¿¤È¤¨¤Ð, (CMObject ¤Î) 32 bit integer ¤Ç¤¢¤ë integer32 ¤ò |
BNF¤ÇÄêµÁ¤¹¤ì¤Ð, |
BNF¤ÇÄêµÁ¤¹¤ì¤Ð, |
\begin{center} |
\begin{center} |
|
|
({\tt CMO\_INT32}, {\sl int32}\ n) |
({\tt CMO\_INT32}, {\sl int32}\ n) |
¤Ï, |
¤Ï, |
32 bit integer $n$ ¤òɽ¸½¤·¤Æ¤¤¤ë¤ó¤À¤È¤¤¤¦¤³¤È¤¬, 1 ¹Ô¤Ç¤ï¤«¤ë. |
32 bit integer $n$ ¤òɽ¸½¤·¤Æ¤¤¤ë¤ó¤À¤È¤¤¤¦¤³¤È¤¬, 1 ¹Ô¤Ç¤ï¤«¤ë. |
|
*/ |
|
/*&eg |
|
(This part has not yet been translated.) |
|
*/ |
|
/*&jp |
¤³¤ÎµË¡¤òÍѤ¤¤Æ, Á°Àá¤ÇƳÆþ¤·¤¿, Basic0 ¤Î CMObject ¤ò |
¤³¤ÎµË¡¤òÍѤ¤¤Æ, Á°Àá¤ÇƳÆþ¤·¤¿, Basic0 ¤Î CMObject ¤ò |
·Á¼°Åª¤ËÄêµÁ¤·¤è¤¦. |
·Á¼°Åª¤ËÄêµÁ¤·¤è¤¦. |
|
*/ |
|
/*&eg |
|
By using this notation, let us define formally CMObjects in the group |
|
Basic0. |
|
*/ |
|
|
|
/*&C |
|
|
\bigbreak |
\bigbreak |
\noindent |
\noindent |
Group CMObject/Basic0 requires nothing. \\ |
Group CMObject/Basic0 requires nothing. \\ |
Error2, Null, Integer32, Datum, Cstring, Mathcap, List $\in$ CMObject/Basic0. \\ |
Error2, Null, Integer32, Datum, Cstring, Mathcap, List $\in$ CMObject/Basic0. \\ |
Document of CMObject/Basic0 is at {\tt http://www.math.kobe-u.ac.jp/openxxx} |
Document of CMObject/Basic0 is at {\tt http://www.math.kobe-u.ac.jp/OpenXM} |
(in Japanese) \\ |
(in English and Japanese) \\ |
\begin{eqnarray*} |
\begin{eqnarray*} |
\mbox{Error2}&:& ({\tt CMO\_ERROR2}, {\sl CMObject}\, \mbox{ob}) \\ |
\mbox{Error2}&:& ({\tt CMO\_ERROR2}, {\sl CMObject}\, \mbox{ob}) \\ |
\mbox{Null} &:& ({\tt CMO\_NULL}) \\ |
\mbox{Null} &:& ({\tt CMO\_NULL}) \\ |
Line 328 Document of CMObject/Basic0 is at {\tt http://www.math |
|
Line 538 Document of CMObject/Basic0 is at {\tt http://www.math |
|
\mbox{Datum} &:& ({\tt CMO\_DATUM}, {\sl int32}\, \mbox{n}, {\sl byte}\, |
\mbox{Datum} &:& ({\tt CMO\_DATUM}, {\sl int32}\, \mbox{n}, {\sl byte}\, |
\mbox{data[0]}, |
\mbox{data[0]}, |
\ldots , {\sl byte}\, \mbox{data[n-1]}) \\ |
\ldots , {\sl byte}\, \mbox{data[n-1]}) \\ |
\mbox{Cstring}&:& ({\tt CMO\_STRING},{\sl int32}\, \mbox{n}, |
\mbox{Cstring}&:& ({\tt CMO\_STRING},{\sl int32}\, \mbox{ n}, |
{\sl string}\, \mbox{s}) \\ |
{\sl string}\, \mbox{s}) \\ |
\mbox{Mathcap}&:& ({\tt CMO\_MATHCAP},{\sl CMObject}\, \mbox{ob} ) \\ |
\mbox{Mathcap}&:& ({\tt CMO\_MATHCAP},{\sl CMObject}\, \mbox{ob} ) \\ |
\mbox{List} &:& |
\mbox{List} &:& |
Line 337 Document of CMObject/Basic0 is at {\tt http://www.math |
|
Line 547 Document of CMObject/Basic0 is at {\tt http://www.math |
|
& & \mbox{--- m is the length of the list.} |
& & \mbox{--- m is the length of the list.} |
\end{eqnarray*} |
\end{eqnarray*} |
|
|
Cstring ¤Ç, {\sl string} s ¤ÎÉôʬ¤ò {\tt byte} ¤Ëʬ²ò¤¹¤ì¤Ð, |
*/ |
|
|
|
|
|
//&jp Cstring ¤Ç, {\sl string} s ¤ÎÉôʬ¤ò {\tt byte} ¤Ëʬ²ò¤¹¤ì¤Ð, |
|
//&eg In the definition of ``Cstring'', if we decompose ``{\sl string} s'' into bytes, then ``Cstring'' should be defined as |
|
/*&C |
\begin{eqnarray*} |
\begin{eqnarray*} |
\mbox{Cstring}&:& ({\tt CMO\_STRING},{\sl int32}\, n, |
\mbox{Cstring}&:& ({\tt CMO\_STRING},{\sl int32}\, \mbox{ n}, |
{\sl byte}\, \mbox{s[0]}, |
{\sl byte}\, \mbox{s[0]}, |
\ldots, {\sl byte}\ \mbox{s[n-1]}) |
\ldots, {\sl byte}\ \mbox{s[n-1]}) |
\end{eqnarray*} |
\end{eqnarray*} |
¤È¤Ê¤ë. |
*/ |
|
//&jp ¤È¤Ê¤ë. |
|
/*&jp |
¤Þ¤¿, |
¤Þ¤¿, |
``Group CMObject/Basic0 requires nothing'' |
``Group CMObject/Basic0 requires nothing'' |
¤Ï, °Ê²¼¤Ï, ¥°¥ë¡¼¥× CMObject/Basic0 ¤ÎÄêµÁ¤Ç¤¢¤ê, |
¤Ï, °Ê²¼¤Ï, ¥°¥ë¡¼¥× CMObject/Basic0 ¤ÎÄêµÁ¤Ç¤¢¤ê, |
Line 353 Cstring ¤Ç, {\sl string} s ¤ÎÉôʬ¤ò {\tt byte} ¤Ëʬ²ò¤ |
|
Line 570 Cstring ¤Ç, {\sl string} s ¤ÎÉôʬ¤ò {\tt byte} ¤Ëʬ²ò¤ |
|
$\in$ CMObject/Basic0'' |
$\in$ CMObject/Basic0'' |
¤Ï, ¥°¥ë¡¼¥× CMObject/Basic0 ¤Ë¤Ï, Error2, Null, Integer32, |
¤Ï, ¥°¥ë¡¼¥× CMObject/Basic0 ¤Ë¤Ï, Error2, Null, Integer32, |
Datum, Cstring ¤Ê¤ë¥¯¥é¥¹¤Î object ¤¬Â°¤¹¤ë¤³¤È¤ò¼¨¤¹. |
Datum, Cstring ¤Ê¤ë¥¯¥é¥¹¤Î object ¤¬Â°¤¹¤ë¤³¤È¤ò¼¨¤¹. |
|
*/ |
|
/*&eg |
|
¤Þ¤¿, |
|
``Group CMObject/Basic0 requires nothing'' |
|
means that there is no super group to define CMO's in the group Basic0. |
|
``Error2, Null, Integer32, Datum, Cstring, Mathcap, List |
|
$\in$ CMObject/Basic0'' |
|
means that |
|
Error2, Null, Integer32, Datum, Cstring |
|
are members of the group CMObject/Basic0. |
|
*/ |
|
|
|
/*&C |
|
|
|
*/ |
|
|
|
/*&jp |
¤Ç¤Ï, ¼ÂºÝ¤Î¥Ç¡¼¥¿¤Îɽ¸½¤ÎÎã¤ò¤ß¤Æ¤ß¤è¤¦. |
¤Ç¤Ï, ¼ÂºÝ¤Î¥Ç¡¼¥¿¤Îɽ¸½¤ÎÎã¤ò¤ß¤Æ¤ß¤è¤¦. |
¤¿¤È¤¨¤Ð, 32 bit integer ¤Î 1234 ¤Ï, |
¤¿¤È¤¨¤Ð, 32 bit integer ¤Î 1234 ¤Ï, |
|
*/ |
|
/*&eg |
|
Let us see examples. |
|
32 bit integer 1234 is expressed as |
|
*/ |
|
/*&C |
\begin{center} |
\begin{center} |
({\tt CMO\_INT32}, 1234) |
({\tt CMO\_INT32}, 1234) |
\end{center} |
\end{center} |
|
*/ |
|
/*&jp |
¤È¤«¤¯. |
¤È¤«¤¯. |
ʸ»úÎó ``Hello'' ¤Ï |
ʸ»úÎó ``Hello'' ¤Ï |
|
*/ |
|
/*&eg |
|
The string ``Hello'' is expressed as |
|
*/ |
|
/*&C |
\begin{center} |
\begin{center} |
({\tt CMO\_STRING}, 5, "Hello") |
({\tt CMO\_STRING}, 5, "Hello") |
\end{center} |
\end{center} |
¤È½ñ¤¯. |
*/ |
|
//&jp ¤È½ñ¤¯. |
|
|
|
/*&C |
|
|
|
*/ |
|
/*&jp |
CMOexpression ¤È, CMObject ¤Î¶èÊ̤òÍý²ò¤·¤Æ¤ª¤¯¤Î¤Ï½ÅÍפǤ¢¤ë. |
CMOexpression ¤È, CMObject ¤Î¶èÊ̤òÍý²ò¤·¤Æ¤ª¤¯¤Î¤Ï½ÅÍפǤ¢¤ë. |
¤¿¤È¤¨¤Ð |
¤¿¤È¤¨¤Ð |
\begin{center} |
\begin{center} |
Line 389 CMOexpression ¤È, CMObject ¤Î¶èÊ̤òÍý²ò¤·¤Æ¤ª¤¯¤Î¤Ï½ÅÍ |
|
Line 639 CMOexpression ¤È, CMObject ¤Î¶èÊ̤òÍý²ò¤·¤Æ¤ª¤¯¤Î¤Ï½ÅÍ |
|
"Hello" |
"Hello" |
</CMO_STRING> |
</CMO_STRING> |
\end{verbatim} |
\end{verbatim} |
|
*/ |
|
|
|
/*&C |
|
|
|
*/ |
|
|
|
/*&jp |
¼¡¤Ë, ɸ½à encoding Ë¡¤òÀâÌÀ¤·¤è¤¦. |
¼¡¤Ë, ɸ½à encoding Ë¡¤òÀâÌÀ¤·¤è¤¦. |
ɸ½à encoding Ë¡¤Ç¤Ï, cmo\_tag ¤ò ¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î |
ɸ½à encoding Ë¡¤Ç¤Ï, cmo\_tag ¤ò ¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î |
32 bit integer {\tt int32} ¤Ë, |
32 bit integer {\tt int32} ¤Ë, |
¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï, ÄêµÁ¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿·¿¤Ë½¾¤¤, |
¤½¤Î¾¤Î¥Õ¥£¡¼¥ë¥É¤Ï, ÄêµÁ¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿·¿¤Ë½¾¤¤, |
byte ¥Ç¡¼¥¿ {\tt byte} ¤«¤Þ¤¿¤Ï |
byte ¥Ç¡¼¥¿ {\tt byte} ¤«¤Þ¤¿¤Ï |
¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î 32 bit integer {\tt int32} ¤Ë, ÊÑ´¹¤¹¤ë. |
¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À¡¼¤Î 32 bit integer {\tt int32} ¤Ë, ÊÑ´¹¤¹¤ë. |
|
*/ |
|
/*&eg |
|
Let us explain the standard encoding method. |
|
All {\tt int32} data are encoded into network byte order 32 bit integers |
|
and byte data are encoded as it is. |
|
*/ |
|
|
|
/*&C |
|
|
|
*/ |
|
|
|
/*&jp |
¹â®¤ÎÄÌ¿®ÊýË¡¤òÍѤ¤¤Æ |
¹â®¤ÎÄÌ¿®ÊýË¡¤òÍѤ¤¤Æ |
¸úΨ¤ò½Å»ë¤¹¤ëÀܳ¤Î¾ì¹ç¤Ë¤Ï, {\tt int32} ¤ò network byte order |
¸úΨ¤ò½Å»ë¤¹¤ëÀܳ¤Î¾ì¹ç¤Ë¤Ï, {\tt int32} ¤ò network byte order |
¤ËÊÑ´¹¤¹¤ëÁàºî¤¬¤ª¤ª¤¤Ê¥ª¡¼¥Ð¥Ø¥Ã¥É¤È¤Ê¤ë¤³¤È¤¬ |
¤ËÊÑ´¹¤¹¤ëÁàºî¤¬¤ª¤ª¤¤Ê¥ª¡¼¥Ð¥Ø¥Ã¥É¤È¤Ê¤ë¤³¤È¤¬ |
Line 405 byte ¥Ç¡¼¥¿ {\tt byte} ¤«¤Þ¤¿¤Ï |
|
Line 672 byte ¥Ç¡¼¥¿ {\tt byte} ¤«¤Þ¤¿¤Ï |
|
Ìó 90\% ¤Î»þ´Ö¤¬ network byte order ¤Ø¤ÎÊÑ´¹¤Ë¤Ä¤¤¤ä¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦ |
Ìó 90\% ¤Î»þ´Ö¤¬ network byte order ¤Ø¤ÎÊÑ´¹¤Ë¤Ä¤¤¤ä¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦ |
¼Â¸³¥Ç¡¼¥¿¤â¤¢¤ë. |
¼Â¸³¥Ç¡¼¥¿¤â¤¢¤ë. |
¸úΨ¤ò½Å»ë¤·¤¿ encoding Ë¡¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë. |
¸úΨ¤ò½Å»ë¤·¤¿ encoding Ë¡¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë. |
|
*/ |
|
/*&eg |
|
When we are using a high speed network, |
|
the translation from the internal expression of 32 bit integers to |
|
network byte order may become a bottle neck. |
|
There are experimental data which presents that 90 percents of the transmission |
|
time are |
|
for the translation to the network byte order to send {\tt CMO\_ZZ} of size |
|
12M bytes on a 100Mbps network. |
|
In a later section, we will discuss a protocol to avoid the translation. |
|
*/ |
|
|
|
/*&C |
|
|
ɸ½à encoding Ë¡¤ÏÁ´¤Æ¤Î¥·¥¹¥Æ¥à¤¬´ðÁäȤ·¤ÆÈ÷¤¨¤ë¤Ù¤ÊÑ´¹Ë¡¤Ç¤¢¤ë. |
*/ |
|
|
|
/*&jp |
ɸ½à encoding ¤È CMOexpression ¤Î´Ö¤ÎÊÑ´¹¤ÏÍưפǤ¢¤ë. |
ɸ½à encoding ¤È CMOexpression ¤Î´Ö¤ÎÊÑ´¹¤ÏÍưפǤ¢¤ë. |
Á°Àá¤ÇÍѤ¤¤¿¥Ç¡¼¥¿¤ÎɽµË¡, |
Á°Àá¤ÇÍѤ¤¤¿¥Ç¡¼¥¿¤ÎɽµË¡, |
¤¿¤È¤¨¤Ð, |
¤¿¤È¤¨¤Ð, |
|
*/ |
|
/*&eg |
|
The translation between the standard encoding and CMOexpression |
|
is easy. |
|
For example, |
|
*/ |
|
/*&C |
\begin{center} |
\begin{center} |
\begin{tabular}{|c|c|} |
\begin{tabular}{|c|c|} |
\hline |
\hline |
Line 418 byte ¥Ç¡¼¥¿ {\tt byte} ¤«¤Þ¤¿¤Ï |
|
Line 706 byte ¥Ç¡¼¥¿ {\tt byte} ¤«¤Þ¤¿¤Ï |
|
\hline |
\hline |
\end{tabular} |
\end{tabular} |
\end{center} |
\end{center} |
|
*/ |
|
/*&jp |
¤Ï, CMOexpression |
¤Ï, CMOexpression |
|
*/ |
|
/*&eg |
|
is the encoding of the CMOexpression |
|
*/ |
|
/*&C |
\begin{center} |
\begin{center} |
({\tt CMO\_INT32}, 1234) |
({\tt CMO\_INT32}, 1234) |
\end{center} |
\end{center} |
|
*/ |
|
/*&jp |
¤Î ɸ½à encoding Ë¡¤Ë¤è¤ëɽ¸½¤Ç¤¢¤ë. |
¤Î ɸ½à encoding Ë¡¤Ë¤è¤ëɽ¸½¤Ç¤¢¤ë. |
|
*/ |
|
|
|
|
|
//&jp \section{ Open XM ¤ÎÄÌ¿®¥â¥Ç¥ë} |
|
//&eg \section{ Communication model of Open XM} (This part has not yet been translated) |
|
|
\section{ Open XM ¤ÎÄÌ¿®¥â¥Ç¥ë} |
/*&jp |
|
|
¤ï¤ì¤ï¤ì¤Ï, ¿ô³Ø¥×¥í¥»¥¹¤¬¥á¥Ã¥»¡¼¥¸¤ò |
¤ï¤ì¤ï¤ì¤Ï, ¿ô³Ø¥×¥í¥»¥¹¤¬¥á¥Ã¥»¡¼¥¸¤ò |
¸ò´¹¤·¤Ê¤¬¤é·×»»¤¬¿Ê¹Ô¤·¤Æ¤¤¤¯¤È¤¤¤¦¥â¥Ç¥ë¤òÁÛÄꤷ¤ÆÀ߷פò¤¹¤¹¤á¤Æ¤¤¤ë. |
¸ò´¹¤·¤Ê¤¬¤é·×»»¤¬¿Ê¹Ô¤·¤Æ¤¤¤¯¤È¤¤¤¦¥â¥Ç¥ë¤òÁÛÄꤷ¤ÆÀ߷פò¤¹¤¹¤á¤Æ¤¤¤ë. |
³Æ¥×¥í¥»¥¹¤Ï¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤Ç¤¢¤ê, ¤³¤ì¤ò OX ¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤È¤è¤Ö. |
³Æ¥×¥í¥»¥¹¤Ï¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤Ç¤¢¤ê, ¤³¤ì¤ò OX ¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤È¤è¤Ö. |
Line 689 debug ¥â¡¼¥É¤òÈ´¤±¤¿¤¤, ¤Ê¤É¤ÎÍÑÅÓ¤ËÍøÍѤ¹¤ë. |
|
Line 988 debug ¥â¡¼¥É¤òÈ´¤±¤¿¤¤, ¤Ê¤É¤ÎÍÑÅÓ¤ËÍøÍѤ¹¤ë. |
|
operator ¤Î¾ÜºÙ¤Ï¼¡¤ÎÀá¤ÇÀâÌÀ¤¹¤ë. |
operator ¤Î¾ÜºÙ¤Ï¼¡¤ÎÀá¤ÇÀâÌÀ¤¹¤ë. |
¤³¤ì¤é¤ÎÄê¿ô¤Î̾Á°¤Ï¥¤¥ó¥×¥ê¥á¥ó¥È¤Î¤È¤Ã»½Ì·Á¤Çɽ¸½¤·¤Æ¤â¤è¤¤. |
¤³¤ì¤é¤ÎÄê¿ô¤Î̾Á°¤Ï¥¤¥ó¥×¥ê¥á¥ó¥È¤Î¤È¤Ã»½Ì·Á¤Çɽ¸½¤·¤Æ¤â¤è¤¤. |
|
|
|
*/ |
|
|
|
//&jp \section{ OX ¥¹¥¿¥Ã¥¯¥Þ¥·¥ó } |
|
//&eg \section{ OX stackmachine } (This section has not yet been translated.) |
|
|
\section{ OX ¥µ¡¼¥Ð¥¹¥¿¥Ã¥¯¥Þ¥·¥ó } |
/*&jp |
|
|
¤³¤ÎÀá¤Ç¤Ï, OX ¥¹¥¿¥Ã¥¯¥Þ¥·¥ó operator ¤ÎÀâÌÀ |
¤³¤ÎÀá¤Ç¤Ï, OX ¥¹¥¿¥Ã¥¯¥Þ¥·¥ó operator ¤ÎÀâÌÀ |
(TCP/IP ¥½¥±¥Ã¥È¾å¤Ç¤Îɸ½à encoding Ë¡ ¤òÍѤ¤¤ë), |
(TCP/IP ¥½¥±¥Ã¥È¾å¤Ç¤Îɸ½à encoding Ë¡ ¤òÍѤ¤¤ë), |
¤ª¤è¤Ó, ¥µ¥ó¥×¥ë¥µ¡¼¥Ð¤È¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Þ¤¿¤Ï |
¤ª¤è¤Ó, ¥µ¥ó¥×¥ë¥µ¡¼¥Ð¤È¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Þ¤¿¤Ï |
Line 755 content dictionary (CD) ¤Î·Á¤ÇÄêµÁ¤·¤¿¤¤. |
|
Line 1056 content dictionary (CD) ¤Î·Á¤ÇÄêµÁ¤·¤¿¤¤. |
|
{\tt int32 OX\_DATA} |
{\tt int32 OX\_DATA} |
¤Ï 32 bit network byte order ¤Î¿ô»ú {\tt OX\_DATA} |
¤Ï 32 bit network byte order ¤Î¿ô»ú {\tt OX\_DATA} |
¤È¤¤¤¦°ÕÌ£¤Ç¤¢¤ë. |
¤È¤¤¤¦°ÕÌ£¤Ç¤¢¤ë. |
¥¤¥¿¥ê¥Ã¥¯¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¥Õ¥£¡¼¥ë¥É¤Ï, |
``¥¤¥¿¥ê¥Ã¥¯¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¥Õ¥£¡¼¥ë¥É¤Ï, |
ÄêµÁ¤¬Ê̤ΤȤ³¤í¤Ç¤Ê¤µ¤ì¤Æ¤¤¤ë¤«²ò¼á¤Ë¸í²ò¤Î¤Ê¤¤¤è¤¦¤Ê¼«Á³¸À¸ì |
ÄêµÁ¤¬Ê̤ΤȤ³¤í¤Ç¤Ê¤µ¤ì¤Æ¤¤¤ë¤«²ò¼á¤Ë¸í²ò¤Î¤Ê¤¤¤è¤¦¤Ê¼«Á³¸À¸ì |
¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë object ¤òɽ¤¹. |
¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë object ¤òɽ¤¹.'' |
¤¿¤È¤¨¤Ð, |
¤¿¤È¤¨¤Ð, |
{\it String commandName} |
{\it String commandName} |
¤Ï, String ¥Ç¡¼¥¿·¿¤Î local object {\it commandName} |
¤Ï, String ¥Ç¡¼¥¿·¿¤Î local object {\it commandName} |
¤ò°ÕÌ£¤¹¤ë. |
¤ò°ÕÌ£¤¹¤ë. |
|
(¥µ¡¼¥Ð¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¾å¤Î object ¤Ï, CMO ·Á¼°¤Î object |
|
¤È¤Ï¸Â¤é¤Ê¤¤¤³¤È¤ËÃí°Õ. |
|
CMO ·Á¼°¤Ç½ñ¤¤¤Æ¤¢¤Ã¤Æ¤â, ¤½¤ì¤Ï¥µ¡¼¥Ð¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤Î |
|
local ·Á¼°¤Ç¥¹¥¿¥Ã¥¯¾å¤Ë¤¢¤ë¤È²ò¼á¤·¤Æ²¼¤µ¤¤.) |
|
|
|
|
¤¹¤Ù¤Æ¤Î¥µ¡¼¥Ð¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤Ï |
¤¹¤Ù¤Æ¤Î¥µ¡¼¥Ð¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤Ï |
°Ê²¼¤Î´Ø¿ô¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¤È¤¤¤±¤Ê¤¤. |
°Ê²¼¤Î´Ø¿ô¤ò¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¤È¤¤¤±¤Ê¤¤. |
\begin{enumerate} |
\begin{enumerate} |
Line 790 CMObject/Basic0 ¤Î CMO ¥Ç¡¼¥¿¤Î¤¦¤Áɬ¿Ü¤Î¤â¤Î, |
|
Line 1094 CMObject/Basic0 ¤Î CMO ¥Ç¡¼¥¿¤Î¤¦¤Áɬ¿Ü¤Î¤â¤Î, |
|
¤¿¤È¤¨¤Ð, {\tt CMO\_String} ¤Î¾ì¹ç¼¡¤Î¤è¤¦¤Ë¤Ê¤ë. |
¤¿¤È¤¨¤Ð, {\tt CMO\_String} ¤Î¾ì¹ç¼¡¤Î¤è¤¦¤Ë¤Ê¤ë. |
\\ Request: |
\\ Request: |
\begin{tabular}{|c|c|c|c|c|c|} \hline |
\begin{tabular}{|c|c|c|c|c|c|} \hline |
{\tt int32 OX\_DATA} & {\tt int32 CMO\_String} &{\tt int32 size} &{\tt byte s1} & $\cdots$ &{\tt byte ssize}\\ |
{\tt int32 OX\_DATA} & {\tt int32 CMO\_String} &{\tt int32} {\rm size} |
|
&{\tt byte} {\rm s1} & $\cdots$ &{\tt byte} {\rm ssize}\\ |
\hline |
\hline |
\end{tabular} |
\end{tabular} |
\\ Stack after the request: |
\\ Stack after the request: |
Line 809 CMO ¥Ç¡¼¥¿¤Î¼õ¤±¼è¤ê¤Ë¼ºÇÔ¤·¤¿»þ¤Î¤ß \\ |
|
Line 1114 CMO ¥Ç¡¼¥¿¤Î¼õ¤±¼è¤ê¤Ë¼ºÇÔ¤·¤¿»þ¤Î¤ß \\ |
|
¤ò¥¹¥¿¥Ã¥¯¤Ø push ¤¹¤ë. |
¤ò¥¹¥¿¥Ã¥¯¤Ø push ¤¹¤ë. |
¸½ºß¤Î¤È¤³¤í, ob ¤Ë¤Ï, \\ |
¸½ºß¤Î¤È¤³¤í, ob ¤Ë¤Ï, \\ |
\centerline{ |
\centerline{ |
{\it List} [{\it Integer32} OX ¥Ñ¥±¥Ã¥ÈÈÖ¹æ, {\it Integer32} ¥¨¥é¡¼ÈÖ¹æ, |
[{\sl Integer32} OX ¥Ñ¥±¥Ã¥ÈÈÖ¹æ, {\sl Integer32} ¥¨¥é¡¼ÈÖ¹æ, |
{\it CMObject} optional ¾ðÊó] |
{\sl CMObject} optional ¾ðÊó] |
} |
} |
¤òÆþ¤ì¤ë¤¬, ¤³¤Î»ÅÍÍ¤Ï Common Error Object format ¤ÎÄêµÁ¤Ë¤è¤ê |
¤Ê¤ë¥ê¥¹¥È¤òÆþ¤ì¤ë (CMO ·Á¼°¤Ç¤«¤¤¤Æ¤¢¤ë¤¬, ¤³¤ì¤Ï¥µ¡¼¥ÐÆȼ«¤Î·Á¼°¤Ç¤è¤¤. |
Êѹ¹¤Î²ÄǽÀ¤¬¤¢¤ë. |
CMO ¤È¤·¤ÆÁ÷½Ð¤µ¤ì¤ë¤È¤¤³¤Î¤è¤¦¤Ê·Á¼°¤Ç¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤È¤¤¤¦°ÕÌ£¤Ç¤¢¤ë.) |
|
|
|
|
|
|
\item |
\item |
\begin{verbatim} |
\begin{verbatim} |
void *xxx_mathCap() |
void *xxx_mathCap() |
Line 1000 object xxx_dupErrors(void) |
|
Line 1306 object xxx_dupErrors(void) |
|
\end{tabular} |
\end{tabular} |
\\ Result: |
\\ Result: |
\begin{tabular}{|c|c|c|} \hline |
\begin{tabular}{|c|c|c|} \hline |
{\tt int32 OX\_DATA} & {\it CMObject} \ a list of errors\\ |
{\tt int32 OX\_DATA} & {\sl CMObject} \ a list of errors\\ |
\hline |
\hline |
\end{tabular} |
\end{tabular} |
|
|
Line 1020 xxx ¤Î½é´ü²½¤ò¤ª¤³¤Ê¤¦. |
|
Line 1326 xxx ¤Î½é´ü²½¤ò¤ª¤³¤Ê¤¦. |
|
#include <stdio.h> |
#include <stdio.h> |
|
|
main() { |
main() { |
char tmp[1024]; |
char tmp[1024]; |
Asir_start(); |
Asir_start(); |
while (gets(tmp) != NULL) { |
while (gets(tmp) != NULL) { |
if (Asir_executeStringByLocalParser(tmp) != 0) { |
if (Asir_executeStringByLocalParser(tmp) != 0) { |
printf("%s\n",Asir_popString()); |
printf("%s\n",Asir_popString()); |
|
} |
|
} |
} |
} |
} |
|
} |
|
|
|
\end{verbatim} |
\end{verbatim} |
|
|
Line 1283 typedef FILE2 * ox_stream; |
|
Line 1589 typedef FILE2 * ox_stream; |
|
|
|
\end{enumerate} |
\end{enumerate} |
|
|
\section{¸½ºß¸¡Æ¤Ãæ¤Îµ¡Ç½} |
*/ |
|
|
|
//&jp \section{¸½ºß¸¡Æ¤Ãæ¤Îµ¡Ç½} |
|
//&eg \section{Projects in work in progress} (This part has not been translated.) |
|
|
|
/*&jp |
\subsection{ OX DATA with Length ¤Î¹½Â¤ } |
\subsection{ OX DATA with Length ¤Î¹½Â¤ } |
|
|
Digital signature ÉդΠ{\tt OX\_DATA} ¤Ï |
Digital signature ÉդΠ{\tt OX\_DATA} ¤Ï |
Line 1297 Digital signature ÉդΠ{\tt OX\_DATA} ¤Ï |
|
Line 1607 Digital signature ÉդΠ{\tt OX\_DATA} ¤Ï |
|
|
|
\noindent |
\noindent |
\begin{tabular}{|c|c|c|c|c|} \hline |
\begin{tabular}{|c|c|c|c|c|} \hline |
{\tt int32 OX\_DATA\_WITH\_LENGTH} & {\tt int32} {\sl serial} & {\tt int32 size} |
{\tt int32 OX\_DATA\_WITH\_LENGTH} & {\tt int32} {\rm serial} |
& {\it CMObject} & {\it tail} \\ |
& {\tt int32} {\rm size} |
|
& {\sl CMObject} {\rm o} & {\it tail} \\ |
\hline |
\hline |
\end{tabular} |
\end{tabular} |
|
|
Line 1307 Digital signature ÉդΠ{\tt OX\_DATA} ¤Ï |
|
Line 1618 Digital signature ÉդΠ{\tt OX\_DATA} ¤Ï |
|
{\it tail } ¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë. |
{\it tail } ¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë. |
\\ \noindent |
\\ \noindent |
\begin{tabular}{|c|c|c|} \hline |
\begin{tabular}{|c|c|c|} \hline |
{\tt int32 CMO\_START\_SIGNATURE} & {\tt int32 size} |
{\tt int32 CMO\_START\_SIGNATURE} & {\tt int32} {\rm size} |
& {\it signature} \\ |
& {\it signature} \\ |
\hline |
\hline |
\end{tabular} |
\end{tabular} |
|
|
¤³¤³¤Ç, {\tt size} ¤Ï {\it signature} Éô¤ÎŤµ. |
¤³¤³¤Ç, {\tt size} ¤Ï¥Ð¥¤¥ÈÎó {\it signature} Éô¤ÎŤµ. |
{\it signature} ¤Ï, Hash ´Ø¿ô¤òÍѤ¤¤¿, {\it CMO data} |
{\it signature} ¤Ï, Hash ´Ø¿ô¤òÍѤ¤¤¿, {\it CMO data} |
¤Ë¤¿¤¤¤¹¤ë, ¥Ç¥¸¥¿¥ë½ð̾¤ò¤¤¤ì, ÉÔÀµ¤Ê serialized object |
¤Ë¤¿¤¤¤¹¤ë, ¥Ç¥¸¥¿¥ë½ð̾¤ò¤¤¤ì, ÉÔÀµ¤Ê serialized object |
¤ò¸¡½Ð¤¹¤ë. |
¤ò¸¡½Ð¤¹¤ë. |
Line 1320 Tail ¤Î {\tt size} ¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Î¾ì¹ç, ¥Ç¥¸¥¿¥ë½ð̾ |
|
Line 1631 Tail ¤Î {\tt size} ¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Î¾ì¹ç, ¥Ç¥¸¥¿¥ë½ð̾ |
|
|
|
¥¯¥é¥¤¥¢¥ó¥È, ¥µ¡¼¥Ð¤Î¼ÂÁõ¤Ë¤Ï¼¡¤Î3¤Ä¤ÎÁªÂò¤¬¤¢¤ë. |
¥¯¥é¥¤¥¢¥ó¥È, ¥µ¡¼¥Ð¤Î¼ÂÁõ¤Ë¤Ï¼¡¤Î3¤Ä¤ÎÁªÂò¤¬¤¢¤ë. |
\begin{enumerate} |
\begin{enumerate} |
\item {\tt OX\_DATA} ¤Î¤ß¤òÍѤ¤¤Æ CMObject ¤òÁ÷¤ë. |
\item {\tt OX\_DATA} ¤Î¤ß¤òÍѤ¤¤Æ CMObject ¤òÁ÷¤ë (mathcap ÉÕ). |
\item {\tt OX\_SECURED\_DATA} ¤Î¤ß¤òÍѤ¤¤Æ CMObject ¤òÁ÷¤ë. |
\item {\tt OX\_SECURED\_DATA} ¤Î¤ß¤òÍѤ¤¤Æ CMObject ¤òÁ÷¤ë. |
\item {\tt OX\_DATA} ¤ª¤è¤Ó |
\item {\tt OX\_DATA} ¤ª¤è¤Ó |
{\tt OX\_SECURED\_DATA} ¤òº®ºß¤·¤Æ |
{\tt OX\_SECURED\_DATA} ¤òº®ºß¤·¤Æ |
Line 1341 Tail ¤Î {\tt size} ¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Î¾ì¹ç, ¥Ç¥¸¥¿¥ë½ð̾ |
|
Line 1652 Tail ¤Î {\tt size} ¥Õ¥£¡¼¥ë¥É¤¬ 0 ¤Î¾ì¹ç, ¥Ç¥¸¥¿¥ë½ð̾ |
|
|
|
¸½ºß¤Î¤¹¤Ù¤Æ¤Î¥µ¥ó¥×¥ë¥µ¡¼¥Ð¤Ï, 1, 4 ¤Î¤ß¤ò¼ÂÁõ¤·¤Æ¤¤¤ë. |
¸½ºß¤Î¤¹¤Ù¤Æ¤Î¥µ¥ó¥×¥ë¥µ¡¼¥Ð¤Ï, 1, 4 ¤Î¤ß¤ò¼ÂÁõ¤·¤Æ¤¤¤ë. |
|
|
|
mathcap ¤Î¸ò´¹¤Ï¥»¥Ã¥·¥ç¥ó¤Î³«»Ï»þÅÀ¤Çɬ¿Ü¤È¤¤¤¦Ìõ¤Ç¤Ï¤Ê¤¤ |
|
¤³¤È¤ËÃí°Õ¤µ¤ì¤¿¤¤. |
|
¤¿¤È¤¨¤Ð, |
|
¥â¡¼¥É 4 ¤ÇÄÌ¿®¤·¤Æ, |
|
¤½¤ì¤«¤é, |
|
mathcap ¤ò¸ò´¹¤·¤Æ, |
|
¥â¡¼¥É 1 ¤Ø°Ü¹Ô¤¹¤ë¤³¤È¤â²Äǽ¤Ê¤è¤¦¤Ë¼ÂÁõ¤¹¤Ù¤¤Ç¤¢¤ë. |
|
|
|
|
\subsection{¥µ¡¼¥Ð¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤Ï¥í¡¼¥«¥ë¤Ê³ÈÄ¥µ¡Ç½¤ò¤â¤Ã¤Æ¤è¤¤} |
\subsection{¥µ¡¼¥Ð¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤Ï¥í¡¼¥«¥ë¤Ê³ÈÄ¥µ¡Ç½¤ò¤â¤Ã¤Æ¤è¤¤} |
|
|
\begin{verbatim} |
\begin{verbatim} |
Line 1369 add, sub, mul, ¤Ê¤É¤Î´ðËÜŪ¤Ê·×»»¤Ï {\tt SM\_executeFu |
|
Line 1688 add, sub, mul, ¤Ê¤É¤Î´ðËÜŪ¤Ê·×»»¤Ï {\tt SM\_executeFu |
|
¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤ÎÀ©¸æ¹½Â¤¤Ë¤Ä¤¤¤Æ¤â¸¡Æ¤¤·¤Æ¤¤¤ë. |
¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤ÎÀ©¸æ¹½Â¤¤Ë¤Ä¤¤¤Æ¤â¸¡Æ¤¤·¤Æ¤¤¤ë. |
|
|
|
|
|
*/ |
|
|
\section{¥³¥ó¥È¥í¡¼¥ë¥á¥Ã¥»¡¼¥¸ (SMObject/TCPIP/Control)} |
//&jp \section{¥³¥ó¥È¥í¡¼¥ë¥á¥Ã¥»¡¼¥¸ (SMObject/TCPIP/Control)} |
|
//&eg \section{Control message (SMObject/TCPIP/Control)} (This section has not been translated.) |
|
|
|
/*&jp |
\begin{enumerate} |
\begin{enumerate} |
\item |
\item |
¥µ¡¼¥Ð¤Ï {\tt SM\_control\_reset\_connection} |
¥µ¡¼¥Ð¤Ï {\tt SM\_control\_reset\_connection} |
Line 1411 add, sub, mul, ¤Ê¤É¤Î´ðËÜŪ¤Ê·×»»¤Ï {\tt SM\_executeFu |
|
Line 1733 add, sub, mul, ¤Ê¤É¤Î´ðËÜŪ¤Ê·×»»¤Ï {\tt SM\_executeFu |
|
\end{tabular} |
\end{tabular} |
\\ Result: |
\\ Result: |
\begin{tabular}{|c|c|} \hline |
\begin{tabular}{|c|c|} \hline |
{\tt int32 OX\_DATA} & {\it CMO\_INT32 result} \\ |
{\tt int32 OX\_DATA} & {\tt CMO\_INT32} {\rm result} \\ |
\hline |
\hline |
\end{tabular} |
\end{tabular} |
|
|
|
@@@ |
|
|
|
|
\item |
\item |
¥µ¡¼¥Ð¤Ï¤³¤Î¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤·¤¿¤é¤¿¤À¤Á¤Ë¥³¥ó¥È¥í¡¼¥ë¥á¥Ã¥»¡¼¥¸¤Ø¤Î |
¥µ¡¼¥Ð¤Ï¤³¤Î¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤·¤¿¤é¤¿¤À¤Á¤Ë¥³¥ó¥È¥í¡¼¥ë¥á¥Ã¥»¡¼¥¸¤Ø¤Î |
ÊÖÅú¤ò¤ª¤¯¤ê, ¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò¥¯¥í¡¼¥º¤·¤Æ½ªÎ»¤¹¤ë. |
ÊÖÅú¤ò¤ª¤¯¤ê, ¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò¥¯¥í¡¼¥º¤·¤Æ½ªÎ»¤¹¤ë. |
Line 1453 Reset ¤ËÂФ¹¤ëÊÖ»ö. |
|
Line 1775 Reset ¤ËÂФ¹¤ëÊÖ»ö. |
|
0 0 2 03 (OX_SYNC_BALL) |
0 0 2 03 (OX_SYNC_BALL) |
\end{verbatim} |
\end{verbatim} |
|
|
\section{TCP/IP ¤Ç¤Î¥»¥Ã¥·¥ç¥ó¤Î¥¹¥¿¡¼¥È} |
*/ |
|
|
|
|
|
//&jp \section{TCP/IP ¤Ç¤Î¥»¥Ã¥·¥ç¥ó¤Î¥¹¥¿¡¼¥È} |
|
//&eg \section{How to start a session on TCP/IP} (This section has not yet been translated.) |
|
|
|
/*&jp |
¥³¥ó¥È¥í¡¼¥ë¥×¥í¥»¥¹, ·×»»¥×¥í¥»¥¹ |
¥³¥ó¥È¥í¡¼¥ë¥×¥í¥»¥¹, ·×»»¥×¥í¥»¥¹ |
¤È¤â¤Ë, µ¯Æ°Ä¾¸å¤Ë |
¤È¤â¤Ë, µ¯Æ°Ä¾¸å¤Ë |
1 byte ¤Î¥Ç¡¼¥¿¤ò½ñ¤½Ð¤· flush ¤¹¤ë. |
1 byte ¤Î¥Ç¡¼¥¿¤ò½ñ¤½Ð¤· flush ¤¹¤ë. |
Line 1468 Reset ¤ËÂФ¹¤ëÊÖ»ö. |
|
Line 1796 Reset ¤ËÂФ¹¤ëÊÖ»ö. |
|
{\tt 0} ¤Ï°Ê²¼¤ÎÄÌ¿®¤Ë¤ª¤¤¤Æ {\tt int32} ¤ò¤ª¤¯¤ë¤Î¤Ë, |
{\tt 0} ¤Ï°Ê²¼¤ÎÄÌ¿®¤Ë¤ª¤¤¤Æ {\tt int32} ¤ò¤ª¤¯¤ë¤Î¤Ë, |
network byte order ¤ò»ÈÍѤ·¤¿¤¤, |
network byte order ¤ò»ÈÍѤ·¤¿¤¤, |
{\tt 1} ¤Ï°Ê²¼¤ÎÄÌ¿®¤Ë¤ª¤¤¤Æ {\tt int32} ¤ò¤ª¤¯¤ë¤Î¤Ë, |
{\tt 1} ¤Ï°Ê²¼¤ÎÄÌ¿®¤Ë¤ª¤¤¤Æ {\tt int32} ¤ò¤ª¤¯¤ë¤Î¤Ë, |
little indian ¤ò»ÈÍѤ·¤¿¤¤, |
little endian ¤ò»ÈÍѤ·¤¿¤¤, |
{\tt FF} ¤Ï°Ê²¼¤ÎÄÌ¿®¤Ë¤ª¤¤¤Æ {\tt int32} ¤ò¤ª¤¯¤ë¤Î¤Ë, |
{\tt FF} ¤Ï°Ê²¼¤ÎÄÌ¿®¤Ë¤ª¤¤¤Æ {\tt int32} ¤ò¤ª¤¯¤ë¤Î¤Ë, |
big indian ¤ò»ÈÍѤ·¤¿¤¤, |
big endian ¤ò»ÈÍѤ·¤¿¤¤, |
¤È¤¤¤¦°ÕÌ£¤Ç¤¢¤ë. |
¤È¤¤¤¦°ÕÌ£¤Ç¤¢¤ë. |
ξ¼Ô¤Î´õ˾¤¬°ìÃפ·¤Ê¤¤¾ì¹ç¤Ï¤Ä¤Í¤Ë {\tt 0} (network byte order) |
ξ¼Ô¤Î´õ˾¤¬°ìÃפ·¤Ê¤¤¾ì¹ç¤Ï¤Ä¤Í¤Ë {\tt 0} (network byte order) |
¤ò»ÈÍѤ¹¤ë. |
¤ò»ÈÍѤ¹¤ë. |
Line 1481 Network byte order ¤·¤«¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï, |
|
Line 1809 Network byte order ¤·¤«¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï, |
|
|
|
\begin{verbatim} |
\begin{verbatim} |
#define OX_BYTE_NETWORK_BYTE_ORDER 0 |
#define OX_BYTE_NETWORK_BYTE_ORDER 0 |
#define OX_BYTE_LITTLE_INDIAN 1 |
#define OX_BYTE_LITTLE_ENDIAN 1 |
#define OX_BYTE_BIG_INDIAN 0xff |
#define OX_BYTE_BIG_ENDIAN 0xff |
\end{verbatim} |
\end{verbatim} |
|
|
|
|
Line 1491 Network byte order ¤·¤«¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï, |
|
Line 1819 Network byte order ¤·¤«¼ÂÁõ¤·¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¤Ï, |
|
¤Îµ¡Ç½¤ò¤â¤Ã¤Æ¤¤¤Þ¤¹. |
¤Îµ¡Ç½¤ò¤â¤Ã¤Æ¤¤¤Þ¤¹. |
¤³¤Îµ¡Ç½¤ò OFF ¤Ë¤¹¤ë¤Ë¤Ï {\tt -insecure} option ¤ò»ÈÍѤ·¤Æ²¼¤µ¤¤. |
¤³¤Îµ¡Ç½¤ò OFF ¤Ë¤¹¤ë¤Ë¤Ï {\tt -insecure} option ¤ò»ÈÍѤ·¤Æ²¼¤µ¤¤. |
One Time Password ¤Ï 0 ¤Ç½ªÎ»¤¹¤ë¥Ð¥¤¥ÈÎó¤Ç¤¢¤ê, |
One Time Password ¤Ï 0 ¤Ç½ªÎ»¤¹¤ë¥Ð¥¤¥ÈÎó¤Ç¤¢¤ê, |
¥³¥ó¥È¥í¡¼¥ë, ·×»»ÁÐÊý¤Î¥×¥í¥»¥¹¤Ï, |
¥³¥ó¥È¥í¡¼¥ë, ·×»»ÁÐÊý¤Î¥×¥í¥»¥¹¤ò¤¿¤Á¤¢¤²¤ë¤Þ¤¨¤Ë, |
¾åµ¤Î byte order ¤Î·èÄêÍѤΠ1 byte ¤ò½ñ¤½Ð¤¹Á°¤Ë |
{\tt ox} ¤Ï¥³¥ó¥È¥í¡¼¥ë, ·×»»ÁÐÊý¤Î¥×¥í¥»¥¹¤ËÂбþ¤¹¤ë, |
One Time Password ¥Ð¥¤¥ÈÎó¤òÁ÷½Ð¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó. |
¤Õ¤¿¤Ä¤Î¥Ý¡¼¥È¤Ë |
|
One Time Password ¥Ð¥¤¥ÈÎó¤òÁ÷½Ð¤·¤Æ¤¤¤Þ¤¹. |
|
|
{\tt ox} (¥½¡¼¥¹¤Ï {\tt oxmain.c}, {\tt kan96xx/plugin/oxmisc.c})¤Ë¤ª¤¤¤Æ¤Ï |
{\tt ox} (¥½¡¼¥¹¤Ï {\tt oxmain.c}, {\tt kan96xx/plugin/oxmisc.c})¤Ë¤ª¤¤¤Æ¤Ï |
{\tt oxTellMyByteOrder()} ¤¬, ¥µ¡¼¥Ð¤Ë¤Ä¤¤¤Æ¤Î byte order ¾ðÊó¤Î |
{\tt oxTellMyByteOrder()} ¤¬, ¥µ¡¼¥Ð¤Ë¤Ä¤¤¤Æ¤Î byte order ¾ðÊó¤Î |
Line 1501 One Time Password ¥Ð¥¤¥ÈÎó¤òÁ÷½Ð¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó. |
|
Line 1830 One Time Password ¥Ð¥¤¥ÈÎó¤òÁ÷½Ð¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó. |
|
¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï, |
¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï, |
{\tt oxSetByteOrder()} ¤¬, byte order ¾ðÊó¤ÎÆɤ߹þ¤ß, Á÷½Ð¤ò¤ª¤³¤Ê¤Ã¤Æ¤¤¤ë. |
{\tt oxSetByteOrder()} ¤¬, byte order ¾ðÊó¤ÎÆɤ߹þ¤ß, Á÷½Ð¤ò¤ª¤³¤Ê¤Ã¤Æ¤¤¤ë. |
|
|
\section{ ¥ª¥Ö¥¸¥§¥¯¥È¤Îʸ»úÎóɽ¸½ } |
One time ¥Ñ¥¹¥ï¡¼¥É¤Ï°ÂÁ´¤ÊÄÌ¿®Ï©¤ÇÇÛÁ÷¤µ¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤¹. |
|
¤Þ¤¿, ¸½ºß¤Î {\rm ox} ¤Î¼ÂÁõ¤Ç¤Ï, One time ¥Ñ¥¹¥ï¡¼¥É¤ò |
|
¥µ¡¼¥Ð, ¥¯¥é¥¤¥¢¥ó¥È¤Ë login ¤·¤Æ¤¤¤ë¿Í¤Ï¤¹¤Ù¤Æ¸«¤ë¤³¤È¤¬ |
|
¤Ç¤¤Þ¤¹¤Î¤Ç, ¥µ¡¼¥Ð, ¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ï°°Õ¤Î¤¢¤ë¿Í¤Ï¤¤¤Ê¤¤¤È |
|
²¾Äꤷ¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó. |
|
One time ¥Ñ¥¹¥ï¡¼¥É¤ò°ÂÁ´¤ËÇÛÁ÷¤·, ¥ê¥â¡¼¥È¥Þ¥·¥ó¤Î {\rm ox} |
|
¤òΩ¤Á¾å¤²¤ë¤Ë¤Ï |
|
¤¿¤È¤¨¤Ð |
|
{\tt ssh} ¤ò {\tt -f } ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ»ÈÍѤ·¤Þ¤¹. |
|
|
|
°Ê²¼¤Ï {\rm sm1} ¤Ç¤Î¼ÂÁõ, Æ°ºîÎã¤Ç¤¹. |
|
¤³¤³¤Ç¤Ï, {\tt yama} ¤Î {\tt sm1} ¤è¤ê {\tt dc1} ¤Î {\tt ox} |
|
¤òΩ¤Á¾å¤²¤Æ¤¤¤Þ¤¹. |
|
{\footnotesize |
|
\begin{verbatim} |
|
yama% sm1 |
|
sm1>(ox.sm1) run ; |
|
ox.sm1, --- open sm1 protocol module 10/1,1999 (C) N.Takayama. oxhelp for help |
|
sm1>[(dc1.math.kobe-u.ac.jp) (taka)] sm1connectr-ssh /ox.ccc set ; |
|
Hello from open. serverName is yama.math.kobe-u.ac.jp and portnumber is 0 |
|
Done the initialization. port =1024 |
|
Hello from open. serverName is yama.math.kobe-u.ac.jp and portnumber is 0 |
|
Done the initialization. port =1025 |
|
[ 4 , 1025 , 3 , 1024 ] |
|
Executing the command : ssh -f dc1.math.kobe-u.ac.jp -l taka |
|
"/home/taka/OpenXM/bin/oxlog /usr/X11R6/bin/xterm -icon |
|
-e /home/taka/OpenXM/bin/ox -reverse -ox /home/taka/OpenXM/bin/ox_sm1 |
|
-host yama.math.kobe-u.ac.jp -data 1025 -control 1024 -pass 518158401 " |
|
[ |
|
taka@dc1.math.kobe-u.ac.jp's password: |
|
Trying to accept... Accepted. |
|
Trying to accept... Accepted. |
|
|
|
Control port 1024 : Connected. |
|
|
|
Stream port 1025 : Connected. |
|
Byte order for control process is network byte order. |
|
Byte order for engine process is network byte order. |
|
\end{verbatim} |
|
} |
|
|
|
*/ |
|
|
|
//&jp \section{ ¥ª¥Ö¥¸¥§¥¯¥È¤Îʸ»úÎóɽ¸½ } |
|
//&eg \section{ String expression of objects} |
|
|
|
/*&jp |
ʸ»úÎóɽ¸½¤Ï, ¥·¥¹¥Æ¥à xxx ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë°ì¼¡¸µÅªÆþ½ÐÎÏ·Á¼°¤Ë |
ʸ»úÎóɽ¸½¤Ï, ¥·¥¹¥Æ¥à xxx ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë°ì¼¡¸µÅªÆþ½ÐÎÏ·Á¼°¤Ë |
¤·¤¿¤¬¤¦. |
¤·¤¿¤¬¤¦. |
|
|
|
*/ |
|
/*&eg |
|
The string expression of objects of the system xxx is also used |
|
for a string expression for the OX xxx server. |
|
|
\section{ ¿ô, ¿¹à¼° ¤Î CMO ɽ¸½ } |
*/ |
|
|
|
|
¥¿¥°¤Î¼ïÎà. |
//&jp \section{ ¿ô, ¿¹à¼° ¤Î CMO ɽ¸½ } |
|
//&eg \section{ CMOexpressions for numbers and polynomials } |
|
|
|
/*&C |
@../SSkan/plugin/cmotag.h |
@../SSkan/plugin/cmotag.h |
\begin{verbatim} |
\begin{verbatim} |
#define CMO_MONOMIAL32 19 |
#define CMO_MONOMIAL32 19 |
#define CMO_ZZ 20 |
#define CMO_ZZ 20 |
/* #define CMO_ZZ 32 */ |
|
#define CMO_QQ 21 |
#define CMO_QQ 21 |
#define CMO_ZERO 22 |
#define CMO_ZERO 22 |
/* #define CMO_DMS 23 Distributed monomial system */ |
|
#define CMO_DMS_GENERIC 24 |
#define CMO_DMS_GENERIC 24 |
#define CMO_DMS_OF_N_VARIABLES 25 |
#define CMO_DMS_OF_N_VARIABLES 25 |
#define CMO_RING_BY_NAME 26 |
#define CMO_RING_BY_NAME 26 |
Line 1531 One Time Password ¥Ð¥¤¥ÈÎó¤òÁ÷½Ð¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó. |
|
Line 1910 One Time Password ¥Ð¥¤¥ÈÎó¤òÁ÷½Ð¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó. |
|
#define CMO_LAMBDA 62 /* for function definition */ |
#define CMO_LAMBDA 62 /* for function definition */ |
\end{verbatim} |
\end{verbatim} |
|
|
|
*/ |
|
|
|
/*&jp |
°Ê²¼, ¥°¥ë¡¼¥× CMObject/Basic1, CMObject/Tree |
°Ê²¼, ¥°¥ë¡¼¥× CMObject/Basic1, CMObject/Tree |
¤ª¤è¤Ó CMObject/DistributedPolynomial |
¤ª¤è¤Ó CMObject/DistributedPolynomial |
¤Ë°¤¹¤ë CMObject ¤Î·Á¼°¤òÀâÌÀ¤¹¤ë. |
¤Ë°¤¹¤ë CMObject ¤Î·Á¼°¤òÀâÌÀ¤¹¤ë. |
\noroa{ tagged list ¤òƳÆþ¤¹¤Ù¤¤«? cf. SSkan/plugin/cmo.txt } |
\noroa{ tagged list ¤òƳÆþ¤¹¤Ù¤¤«? cf. SSkan/plugin/cmo.txt } |
|
|
³ÈÄ¥ BNF µË¡¤È CMOexpression ¤ò¤Þ¤¼¤¿µË¡¤ÇÄêµÁ¤¹¤ë. |
*/ |
--- ¤Ç¤Ï¤¸¤Þ¤ëʸ¤Ï¥³¥á¥ó¥È¤Ç¤¢¤ë. |
/*&eg |
|
In the sequel, we will explain on the groups |
|
CMObject/Basic1, CMObject/Tree |
|
and CMObject/DistributedPolynomial. |
|
*/ |
|
|
|
/*&jp |
|
|
\bigbreak |
\bigbreak |
\noindent |
\noindent |
Group CMObject/Basic1 requires CMObject/Basic0. \\ |
Group CMObject/Basic1 requires CMObject/Basic0. \\ |
Line 1546 ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B |
|
Line 1934 ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/B |
|
\begin{eqnarray*} |
\begin{eqnarray*} |
\mbox{Zero} &:& ({\tt CMO\_ZERO}) \\ |
\mbox{Zero} &:& ({\tt CMO\_ZERO}) \\ |
& & \mbox{ --- ¥æ¥Ë¥Ð¡¼¥µ¥ë¤Ê ¥¼¥í¤òɽ¤¹. } \\ |
& & \mbox{ --- ¥æ¥Ë¥Ð¡¼¥µ¥ë¤Ê ¥¼¥í¤òɽ¤¹. } \\ |
\mbox{ZZ} &:& ({\tt CMO\_ZZ},{\sl int32}\, f, {\sl byte}\, \mbox{a[1]}, \ldots |
\mbox{ZZ} &:& ({\tt CMO\_ZZ},{\sl int32}\, {\rm f}, {\sl byte}\, \mbox{a[1]}, \ldots |
{\sl byte}\, \mbox{a[m]} ) \\ |
{\sl byte}\, \mbox{a[m]} ) \\ |
&:& \mbox{ --- bignum ¤ò¤¢¤é¤ï¤¹. a[i] ¤Ë¤Ä¤¤¤Æ¤Ï¤¢¤È¤ÇÀâÌÀ}\\ |
&:& \mbox{ --- bignum ¤ò¤¢¤é¤ï¤¹. a[i] ¤Ë¤Ä¤¤¤Æ¤Ï¤¢¤È¤ÇÀâÌÀ}\\ |
\mbox{QQ} &:& ({\tt CMO\_QQ}, {\sl ZZ}\, a, {\sl ZZ}\, b) \\ |
\mbox{QQ} &:& ({\tt CMO\_QQ}, {\sl ZZ}\, {\rm a}, {\sl ZZ}\, {\rm b}) \\ |
& & \mbox{ --- ÍÍý¿ô $a/b$ ¤òɽ¤¹. } \\ |
& & \mbox{ --- ÍÍý¿ô $a/b$ ¤òɽ¤¹. } \\ |
\mbox{Rational} &:& ({\tt CMO\_RATIONAL}, {\sl object}\, a, {\sl object}\, b) \\ |
\mbox{Rational} &:& ({\tt CMO\_RATIONAL}, {\sl CMObject}\, {\rm a}, {\sl CMObject}\, {\rm b}) \\ |
& & \mbox{ --- $a/b$ ¤òɽ¤¹. } \\ |
& & \mbox{ --- $a/b$ ¤òɽ¤¹. } \\ |
\mbox{Indeterminate} &:& ({\tt CMO\_INDETERMINATE}, {\sl Cstring}\, v) \\ |
\mbox{Indeterminate} &:& ({\tt CMO\_INDETERMINATE}, {\sl Cstring}\, {\rm v}) \\ |
& & \mbox{ --- ÊÑ¿ô̾ $v$ . } \\ |
& & \mbox{ --- ÊÑ¿ô̾ $v$ . } \\ |
\end{eqnarray*} |
\end{eqnarray*} |
|
*/ |
|
/*&eg |
|
|
|
\bigbreak |
|
\noindent |
|
Group CMObject/Basic1 requires CMObject/Basic0. \\ |
|
ZZ, QQ, Zero, Rational, Indeterminate,$\in$ CMObject/Basic1. \\ |
|
\begin{eqnarray*} |
|
\mbox{Zero} &:& ({\tt CMO\_ZERO}) \\ |
|
& & \mbox{ --- Universal zero } \\ |
|
\mbox{ZZ} &:& ({\tt CMO\_ZZ},{\sl int32}\, {\rm f}, {\sl byte}\, \mbox{a[1]}, \ldots |
|
{\sl byte}\, \mbox{a[m]} ) \\ |
|
&:& \mbox{ --- bignum. The meaning of a[i] will be explained later.}\\ |
|
\mbox{QQ} &:& ({\tt CMO\_QQ}, {\sl ZZ}\, {\rm a}, {\sl ZZ}\, {\rm b}) \\ |
|
& & \mbox{ --- Rational number $a/b$. } \\ |
|
\mbox{Rational} &:& ({\tt CMO\_RATIONAL}, {\sl CMObject}\, {\rm a}, {\sl CMObject}\, {\rm b}) \\ |
|
& & \mbox{ --- Rational expression $a/b$. } \\ |
|
\mbox{Indeterminate} &:& ({\tt CMO\_INDETERMINATE}, {\sl Cstring}\, {\rm v}) \\ |
|
& & \mbox{ --- Variable name $v$ . } \\ |
|
\end{eqnarray*} |
|
*/ |
|
/*&C |
|
|
|
*/ |
|
|
|
/*&jp |
Indeterminate ¤ÏÊÑ¿ô̾¤ò¤¢¤é¤ï¤¹. |
Indeterminate ¤ÏÊÑ¿ô̾¤ò¤¢¤é¤ï¤¹. |
v ¤Ï¥Ð¥¤¥ÈÎó¤Ç¤¢¤ì¤Ð¤Ê¤Ë¤òÍѤ¤¤Æ¤â¤è¤¤¤¬, |
v ¤Ï¥Ð¥¤¥ÈÎó¤Ç¤¢¤ì¤Ð¤Ê¤Ë¤òÍѤ¤¤Æ¤â¤è¤¤¤¬, |
¥·¥¹¥Æ¥àËè¤ËÊÑ¿ô̾¤È¤·¤ÆÍѤ¤¤é¤ì¤ë¥Ð¥¤¥ÈÎó¤ÏÀ©¸Â¤¬¤¢¤ë. |
¥·¥¹¥Æ¥àËè¤ËÊÑ¿ô̾¤È¤·¤ÆÍѤ¤¤é¤ì¤ë¥Ð¥¤¥ÈÎó¤ÏÀ©¸Â¤¬¤¢¤ë. |
Line 1566 v ¤Ï¥Ð¥¤¥ÈÎó¤Ç¤¢¤ì¤Ð¤Ê¤Ë¤òÍѤ¤¤Æ¤â¤è¤¤¤¬, |
|
Line 1979 v ¤Ï¥Ð¥¤¥ÈÎó¤Ç¤¢¤ì¤Ð¤Ê¤Ë¤òÍѤ¤¤Æ¤â¤è¤¤¤¬, |
|
{\tt Dx} ¤Ï {\tt \#dx} ¤ÈÊÑ´¹¤¹¤ë¤Ê¤É¤Î |
{\tt Dx} ¤Ï {\tt \#dx} ¤ÈÊÑ´¹¤¹¤ë¤Ê¤É¤Î |
escape sequence ¤òÍѤ¤¤Æ¼Â¸½¤¹¤ë¤Î¤Ï, ̵Íý¤¬¤¢¤ë¤è¤¦¤Ç¤¢¤ë. |
escape sequence ¤òÍѤ¤¤Æ¼Â¸½¤¹¤ë¤Î¤Ï, ̵Íý¤¬¤¢¤ë¤è¤¦¤Ç¤¢¤ë. |
¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤¢¤í¤¦.) |
¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ë¤Ç¤¢¤í¤¦.) |
|
*/ |
|
/*&eg |
|
Indeterminate is a name of a variable. |
|
v may be any sequence of bytes, but each system has its own |
|
restrictions on the names of variables. |
|
Indeterminates of CMO and internal variable names must be translated |
|
in one to one correspondence. |
|
*/ |
|
|
|
/*&jp |
|
|
\noindent |
\noindent |
Group CMObject/Tree requires CMObject/Basic1. \\ |
Group CMObject/Tree requires CMObject/Basic1. \\ |
Tree, Lambda $\in$ CMObject/Basic1. \\ |
Tree, Lambda $\in$ CMObject/Basic1. \\ |
\begin{eqnarray*} |
\begin{eqnarray*} |
\mbox{Tree} &:& ({\tt CMO\_TREE}, {\sl Cstring}\, name, |
\mbox{Tree} &:& ({\tt CMO\_TREE}, {\sl Cstring}\, {\rm name}, |
{\sl Cstring}\, cdname, {\sl List}\, leaves) \\ |
{\sl Cstring}\, {\rm cdname}, {\sl List}\, {\rm leaves}) \\ |
& & \mbox{ --- ̾Á° name ¤ÎÄê¿ô¤Þ¤¿¤Ï´Ø¿ô. ´Ø¿ô¤Îɾ²Á¤Ï¤ª¤³¤Ê¤ï¤Ê¤¤. } \\ |
& & \mbox{ --- ̾Á° name ¤ÎÄê¿ô¤Þ¤¿¤Ï´Ø¿ô. ´Ø¿ô¤Îɾ²Á¤Ï¤ª¤³¤Ê¤ï¤Ê¤¤. } \\ |
& & \mbox{ --- cdname ¤Ï¶õʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð name ¤Î°ÕÌ£¤¬ÀâÌÀ¤µ¤ì¤Æ¤¤¤ë |
& & \mbox{ --- cdname ¤Ï¶õʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð name ¤Î°ÕÌ£¤¬ÀâÌÀ¤µ¤ì¤Æ¤¤¤ë }\\ |
OpenMath CD (content dictionary) ¤Î̾Á°. } \\ |
& & \mbox{ --- OpenMath CD (content dictionary) ¤Î̾Á°. } \\ |
\mbox{Lambda} &:& ({\tt CMO\_LAMBDA}, {\sl List}\, args, |
\mbox{Lambda} &:& ({\tt CMO\_LAMBDA}, {\sl List}\, {\rm args}, |
{\sl Tree} body) \\ |
{\sl Tree} {\rm body}) \\ |
& & \mbox{ --- body ¤ò args ¤ò°ú¿ô¤È¤¹¤ë´Ø¿ô¤È¤¹¤ë. } \\ |
& & \mbox{ --- body ¤ò args ¤ò°ú¿ô¤È¤¹¤ë´Ø¿ô¤È¤¹¤ë. } \\ |
& & \mbox{ --- optional ¤Ê°ú¿ô¤¬É¬ÍפʤȤ¤Ï, leaves ¤Î¸å¤Ø¤Ä¤Å¤±¤ë.} \\ |
& & \mbox{ --- optional ¤Ê°ú¿ô¤¬É¬ÍפʤȤ¤Ï, leaves ¤Î¸å¤Ø¤Ä¤Å¤±¤ë.} \\ |
\end{eqnarray*} |
\end{eqnarray*} |
|
*/ |
|
/*&eg |
|
|
|
\noindent |
|
Group CMObject/Tree requires CMObject/Basic1. \\ |
|
Tree, Lambda $\in$ CMObject/Basic1. \\ |
|
\begin{eqnarray*} |
|
\mbox{Tree} &:& ({\tt CMO\_TREE}, {\sl Cstring}\, {\rm name}, |
|
{\sl Cstring}\, {\rm cdname}, {\sl List}\, {\rm leaves}) \\ |
|
& & \mbox{ --- A function or a constant of name. Functions are not evaluated. } \\ |
|
& & \mbox{ --- cdname may be a null. If it is not null, it is the name of}\\ |
|
& & \mbox{ --- the OpenMath CD (content dictionary). } \\ |
|
\mbox{Lambda} &:& ({\tt CMO\_LAMBDA}, {\sl List}\, {\rm args}, |
|
{\sl Tree} {\rm body}) \\ |
|
& & \mbox{ --- a function with the arguments body. } \\ |
|
& & \mbox{ --- optional arguments come after leaves.} \\ |
|
\end{eqnarray*} |
|
*/ |
|
|
|
/*&C |
|
|
|
*/ |
|
|
|
/*&jp |
¿ô¼°¤ò½èÍý¤¹¤ë¥·¥¹¥Æ¥à¤Ç¤Ï, Tree ¹½Â¤¤¬°ìÈ̤ˤâ¤Á¤¤¤é¤ì¤ë. |
¿ô¼°¤ò½èÍý¤¹¤ë¥·¥¹¥Æ¥à¤Ç¤Ï, Tree ¹½Â¤¤¬°ìÈ̤ˤâ¤Á¤¤¤é¤ì¤ë. |
¤¿¤È¤¨¤Ð, $\sin(x+e)$ ¤Ï, |
¤¿¤È¤¨¤Ð, $\sin(x+e)$ ¤Ï, |
{\tt (sin, (plus, x, e))} |
{\tt (sin, (plus, x, e))} |
Line 1599 Tree ¹½Â¤¤Ï Open Math É÷¤Îɽ¸½¤ò¤â¤Á¤¤¤¿ CMO ¤òƳÆþ¤¹¤ |
|
Line 2045 Tree ¹½Â¤¤Ï Open Math É÷¤Îɽ¸½¤ò¤â¤Á¤¤¤¿ CMO ¤òƳÆþ¤¹¤ |
|
¤Þ¤¿¤³¤Î¤Û¤¦¤¬, ¤ï¤ì¤ï¤ì¤ÎÁÛÄꤹ¤ë¥·¥¹¥Æ¥à xxx ¤Ë¤ª¤¤¤Æ, Open XM Âбþ¤¬ |
¤Þ¤¿¤³¤Î¤Û¤¦¤¬, ¤ï¤ì¤ï¤ì¤ÎÁÛÄꤹ¤ë¥·¥¹¥Æ¥à xxx ¤Ë¤ª¤¤¤Æ, Open XM Âбþ¤¬ |
¤Ï¤ë¤«¤ËÍưפǤ¢¤ë. |
¤Ï¤ë¤«¤ËÍưפǤ¢¤ë. |
¤Ê¤ª, Tree ¤Ï, Open Math ¤Ç¤Ï, Symbol, Application ¤Î¥á¥«¥Ë¥º¥à¤ËÁêÅö¤¹¤ë. |
¤Ê¤ª, Tree ¤Ï, Open Math ¤Ç¤Ï, Symbol, Application ¤Î¥á¥«¥Ë¥º¥à¤ËÁêÅö¤¹¤ë. |
|
*/ |
|
/*&eg |
|
In many computer algebra systems, mathematical expressions are usually |
|
expressed in terms of a tree structure. |
|
For example, |
|
$\sin(x+e)$ is expressed as |
|
{\tt (sin, (plus, x, e))} |
|
as a tree. |
|
We can @@@ |
|
*/ |
|
|
|
|
|
/*&C |
|
|
|
*/ |
|
/*&jp |
Lambda ¤Ï´Ø¿ô¤òÄêµÁ¤¹¤ë¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë. |
Lambda ¤Ï´Ø¿ô¤òÄêµÁ¤¹¤ë¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë. |
Lisp ¤Î Lambda ɽ¸½¤ÈƱ¤¸. |
Lisp ¤Î Lambda ɽ¸½¤ÈƱ¤¸. |
|
|
|
\noindent |
|
Îã: $sin(x+e)$ ¤Îɽ¸½. |
|
\begin{verbatim} |
|
(CMO_TREE, (CMO_STRING, "sin"), (CMO_STRING, "basic"), |
|
(CMO_LIST,[size=]1, |
|
(CMO_TREE, (CMO_STRING, "plus"), (CMO_STRING, "basic"), |
|
(CMO_LIST,[size=]2, (CMO_INDETERMINATE,"x"), |
|
(CMO_TREE,(CMO_STRING, "e"), ¼«Á³Âпô¤ÎÄì |
|
(CMO_STRING, "basic")) |
|
)) |
|
) |
|
) |
|
\end{verbatim} |
|
|
|
\noindent |
|
Example: |
|
\begin{verbatim} |
|
sm1> [(plus) (Basic) [(123).. (345)..]] [(class) (tree)] dc :: |
|
Class.tree [ $plus$ , $Basic$ , [ 123 , 345 ] ] |
|
\end{verbatim} |
|
|
|
|
|
|
\bigbreak |
\bigbreak |
¼¡¤Ë, ʬ»¶É½¸½Â¿¹à¼°¤Ë´Ø·¸¤¹¤ë¥°¥ë¡¼¥×¤òÄêµÁ¤·¤è¤¦. |
¼¡¤Ë, ʬ»¶É½¸½Â¿¹à¼°¤Ë´Ø·¸¤¹¤ë¥°¥ë¡¼¥×¤òÄêµÁ¤·¤è¤¦. |
|
|
Line 1638 $x^e = x_1^{e_1} \cdots x_n^{e_n}$ ¤Î³Æ»Ø¿ô $e_i$ |
|
Line 2121 $x^e = x_1^{e_1} \cdots x_n^{e_n}$ ¤Î³Æ»Ø¿ô $e_i$ |
|
& & \mbox{ --- ʬ»¶É½¸½Â¿¹à¼°´Ä¤ÎÄêµÁ. } \\ |
& & \mbox{ --- ʬ»¶É½¸½Â¿¹à¼°´Ä¤ÎÄêµÁ. } \\ |
\mbox{Generic DMS ring} |
\mbox{Generic DMS ring} |
&:& ({\tt CMO\_DMS\_GENERIC})\ ¿·ÈǤϤ³¤Á¤é\\ |
&:& ({\tt CMO\_DMS\_GENERIC})\ ¿·ÈǤϤ³¤Á¤é\\ |
\mbox{RingByName}&:& ({\tt CMO\_RING\_BY\_NAME}, {\sl Cstring} s) \\ |
\mbox{RingByName}&:& ({\tt CMO\_RING\_BY\_NAME}, {\sl Cstring}\ {\rm s}) \\ |
& & \mbox{ --- ̾Á° s ¤Ç, ³ÊǼ¤µ¤ì¤¿ ring ÄêµÁ.} \\ |
& & \mbox{ --- ̾Á° s ¤Ç, ³ÊǼ¤µ¤ì¤¿ ring ÄêµÁ.} \\ |
\mbox{DMS of N variables} |
\mbox{DMS of N variables} |
&:& ({\tt CMO\_DMS\_OF\_N\_VARIABLES}, \\ |
&:& ({\tt CMO\_DMS\_OF\_N\_VARIABLES}, \\ |
Line 1651 $x^e = x_1^{e_1} \cdots x_n^{e_n}$ ¤Î³Æ»Ø¿ô $e_i$ |
|
Line 2134 $x^e = x_1^{e_1} \cdots x_n^{e_n}$ ¤Î³Æ»Ø¿ô $e_i$ |
|
& & \mbox{ --- n ¤ÏÊÑ¿ô¤Î¿ô, p ¤Ï ɸ¿ô} \\ |
& & \mbox{ --- n ¤ÏÊÑ¿ô¤Î¿ô, p ¤Ï ɸ¿ô} \\ |
& & \mbox{ --- s ¤Ï ring ¤Î̾Á°} \\ |
& & \mbox{ --- s ¤Ï ring ¤Î̾Á°} \\ |
& & \mbox{ --- c ¤Ï·¸¿ô´Ä, QQ, ZZ ¤Î¾ì¹ç¤Ïʸ»úÎó¤Ç QQ, ZZ ¤È½ñ¤¯.} \\ |
& & \mbox{ --- c ¤Ï·¸¿ô´Ä, QQ, ZZ ¤Î¾ì¹ç¤Ïʸ»úÎó¤Ç QQ, ZZ ¤È½ñ¤¯.} \\ |
& & \mbox{ --- vlist ¤Ï Indeterminate ¤Î¥ê¥¹¥È(¿·ÈÇ)} \\ |
& & \mbox{ --- vlist ¤Ï Indeterminate ¤Î¥ê¥¹¥È(¿·ÈÇ). ¿¹à¼°´Ä¤ÎÊÑ¿ô¥ê¥¹¥È} \\ |
& & \mbox{ --- wvec ¤Ï order ¤ò¤¤á¤ë weight vector,} \\ |
& & \mbox{ --- wvec ¤Ï order ¤ò¤¤á¤ë weight vector,} \\ |
& & \mbox{ --- outord ¤Ï½ÐÎϤ¹¤ë¤È¤¤ÎÊÑ¿ô½ç½ø.} \\ |
& & \mbox{ --- outord ¤Ï½ÐÎϤ¹¤ë¤È¤¤ÎÊÑ¿ô½ç½ø.} \\ |
\end{eqnarray*} |
\end{eqnarray*} |
|
|
|
RingByName ¤ä DMS of N variables ¤Ï¤Ê¤¯¤Æ¤â, DMS ¤òÄêµÁ¤Ç¤¤ë. |
|
¤·¤¿¤¬¤Ã¤Æ, ¤³¤ì¤é¤ò¼ÂÁõ¤·¤Æ¤Ê¤¤¥·¥¹¥Æ¥à¤Ç DMS ¤ò°·¤¦¤â¤Î¤¬ |
|
¤¢¤Ã¤Æ¤â¤«¤Þ¤ï¤Ê¤¤. |
|
|
°Ê²¼, °Ê¾å¤Î CMObject ¤Ë¤¿¤¤¤¹¤ë, |
°Ê²¼, °Ê¾å¤Î CMObject ¤Ë¤¿¤¤¤¹¤ë, |
xxx = asir, kan ¤Î¿¶Éñ¤¤¤òµ½Ò¤¹¤ë. |
xxx = asir, kan ¤Î¿¶Éñ¤¤¤òµ½Ò¤¹¤ë. |
|
|
Line 1781 $ 3 x^2 y$ ¤Ï 6 ÊÑ¿ô¤Î¿¹à¼°´Ä¤Î¸µ¤È¤·¤Æ¤ß¤Ê¤µ¤ì¤Æ¤¤¤ë |
|
Line 2268 $ 3 x^2 y$ ¤Ï 6 ÊÑ¿ô¤Î¿¹à¼°´Ä¤Î¸µ¤È¤·¤Æ¤ß¤Ê¤µ¤ì¤Æ¤¤¤ë |
|
|
|
|
|
|
|
\section{ºÆµ¢É½¸½Â¿¹à¼°¤ÎÄêµÁ} %% From this/noro/rp.tex |
\subsection{ºÆµ¢É½¸½Â¿¹à¼°¤ÎÄêµÁ} |
|
|
\begin{verbatim} |
\begin{verbatim} |
#define CMO_RECURSIVE_POLYNOMIAL 27 |
#define CMO_RECURSIVE_POLYNOMIAL 27 |
Line 1840 $$ x^3 (1234 y^5 + 17 ) + x^1 (y^10 + 31 y^5) $$ |
|
Line 2327 $$ x^3 (1234 y^5 + 17 ) + x^1 (y^10 + 31 y^5) $$ |
|
Èó²Ä´¹Â¿¹à¼°¤â¤³¤Î·Á¼°¤Ç¤¢¤é¤ï¤·¤¿¤¤¤Î¤Ç, ÀѤνç½ø¤ò¾å¤Î¤è¤¦¤Ë |
Èó²Ä´¹Â¿¹à¼°¤â¤³¤Î·Á¼°¤Ç¤¢¤é¤ï¤·¤¿¤¤¤Î¤Ç, ÀѤνç½ø¤ò¾å¤Î¤è¤¦¤Ë |
¤¹¤ë¤³¤È. ¤Ä¤Þ¤ê, ¼çÊÑ¿ô¤«¤±¤ë·¸¿ô¤Î½çÈÖ. |
¤¹¤ë¤³¤È. ¤Ä¤Þ¤ê, ¼çÊÑ¿ô¤«¤±¤ë·¸¿ô¤Î½çÈÖ. |
|
|
|
\noindent |
|
\begin{verbatim} |
|
sm1 |
|
sm1>(x^2-h). [(class) (recursivePolynomial)] dc /ff set ; |
|
sm1>ff :: |
|
Class.recursivePolynomial h * ((-1)) + (x^2 * (1)) |
|
\end{verbatim} |
|
|
|
|
|
|
int32 ¤È Integer32 ¤Î°ã¤¤. |
int32 ¤È Integer32 ¤Î°ã¤¤. |
¼¡¤Ë¤¯¤ë¥Ç¡¼¥¿¤¬¤«¤Ê¤é¤º int32 ¤È¤ï¤«¤Ã¤Æ¤ª¤ì¤Ð, |
¼¡¤Ë¤¯¤ë¥Ç¡¼¥¿¤¬¤«¤Ê¤é¤º int32 ¤È¤ï¤«¤Ã¤Æ¤ª¤ì¤Ð, |
int32 ¤òÍѤ¤¤ë. |
int32 ¤òÍѤ¤¤ë. |
¼¡¤Î¥Ç¡¼¥¿·¿¤¬¤ï¤«¤é¤Ê¤¤¤È¤ Integer32 ¤òÍѤ¤¤ë. |
¼¡¤Î¥Ç¡¼¥¿·¿¤¬¤ï¤«¤é¤Ê¤¤¤È¤ Integer32 ¤òÍѤ¤¤ë. |
|
|
|
|
\section{CPU°Í¸¤Î double } |
\subsection{CPU°Í¸¤Î double } |
|
|
\begin{verbatim} |
\begin{verbatim} |
#define CMO_64BIT_MACHINE_DOUBLE 40 |
#define CMO_64BIT_MACHINE_DOUBLE 40 |
Line 1987 CMO ¤Î stream ¤Ø¤ÎžÁ÷, stream ¤è¤ê¤ÎžÁ÷¤Ï, |
|
Line 2484 CMO ¤Î stream ¤Ø¤ÎžÁ÷, stream ¤è¤ê¤ÎžÁ÷¤Ï, |
|
\end{enumerate} |
\end{enumerate} |
|
|
|
|
|
\subsection{Îò»Ë} |
kan -- asir ´Ö¤Ç¤â°Ê¾å¤Î¤è¤¦¤Ë³«È¯¤¬¤¹¤¹¤ó¤À. |
kan -- asir ´Ö¤Ç¤â°Ê¾å¤Î¤è¤¦¤Ë³«È¯¤¬¤¹¤¹¤ó¤À. |
|
|
Risa/Asir ¤Î³«È¯¤¬¾ÂÄŤÎÉٻΥե©¡¼¥é¥à¤Ç¤ª¤³¤Ê¤ï¤ì¤Æ¤¤¤¿ |
Risa/Asir ¤Î³«pȯ¤¬¾ÂÄŤÎÉٻΥե©¡¼¥é¥à¤Ç¤ª¤³¤Ê¤ï¤ì¤Æ¤¤¤¿ |
¤³¤í, »ä¤¬¾ÂÄŤò, 1996ǯ, 1·î19Æü¤ËˬÌ䤷, |
¤³¤í, »ä¤¬¾ÂÄŤò, 1996ǯ, 1·î19Æü¤ËˬÌ䤷, |
{\tt Asir\_executeString()} |
{\tt Asir\_executeString()} |
¤Îµ¡Ç½¤òÌîϤ¤µ¤ó¤Ë½ñ¤¤¤Æ¤â¤é¤Ã¤Æ, kan ¤è¤ê asir ¤òʸ»úÎó¤Ç¸Æ¤Ó½Ð¤¹ |
¤Îµ¡Ç½¤òÌîϤ¤µ¤ó¤Ë½ñ¤¤¤Æ¤â¤é¤Ã¤Æ, kan ¤è¤ê asir ¤òʸ»úÎó¤Ç¸Æ¤Ó½Ð¤¹ |
Line 2041 open XM ¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤ò¼Â¸½¤·¤Æ¤¤¤ë. |
|
Line 2539 open XM ¥¹¥¿¥Ã¥¯¥Þ¥·¥ó¤ò¼Â¸½¤·¤Æ¤¤¤ë. |
|
{\tt ox\_lauch} ¤Ê¤ë̾Á°¤Ç¤¢¤ë¤¬, µ¡Ç½¤ÏƱ¤¸¤Ç¤¢¤ë. |
{\tt ox\_lauch} ¤Ê¤ë̾Á°¤Ç¤¢¤ë¤¬, µ¡Ç½¤ÏƱ¤¸¤Ç¤¢¤ë. |
{\tt ox} ¤Î¥½¡¼¥¹¤Ï {\tt oxmain.c} ¤Ç¤¢¤ë. |
{\tt ox} ¤Î¥½¡¼¥¹¤Ï {\tt oxmain.c} ¤Ç¤¢¤ë. |
|
|
|
\subsubsection{OpenXM/src/ox\_toolkit ¤Ë¤¢¤ë¥µ¥ó¥×¥ë¼ÂÁõ} |
|
¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î²òÀâʸ½ñ¤ò¸«¤è. |
|
|
\subsubsection{ ox\_null } |
\subsubsection{ ox\_null } |
|
|
Line 2228 CMObject ¤È kan/sm1 ¤Î object ¤Ï¼¡¤Îµ¬Â§¤Ë¤·¤¿¤¬¤¤ÊÑ´¹ |
|
Line 2728 CMObject ¤È kan/sm1 ¤Î object ¤Ï¼¡¤Îµ¬Â§¤Ë¤·¤¿¤¬¤¤ÊÑ´¹ |
|
|
|
{\tt OxVersion} ÊÑ¿ô¤Ç openXM ¤Î¥×¥í¥È¥³¥ë¤Î version ¤òɽ¤¹. |
{\tt OxVersion} ÊÑ¿ô¤Ç openXM ¤Î¥×¥í¥È¥³¥ë¤Î version ¤òɽ¤¹. |
|
|
|
\subsubsection{ {\tt ox\_sm1} ¤òÍѤ¤¤¿¥¯¥é¥¤¥¢¥ó¥È¤Î¥Æ¥¹¥ÈÊýË¡ } |
|
¤Þ¤À¤«¤¤¤Æ¤Ê¤¤. |
|
|
|
\subsubsection{ {\tt Asir} ¤òÍѤ¤¤¿¥µ¡¼¥Ð¤Î¥Æ¥¹¥ÈÊýË¡ } |
|
|
\subsection{ ºÇ¾®¤Î TCP/IP ¥¯¥é¥¤¥¢¥ó¥È¤ÎÎã } |
\subsection{ ºÇ¾®¤Î TCP/IP ¥¯¥é¥¤¥¢¥ó¥È¤ÎÎã } |
|
|
Java ¤Þ¤¿¤Ï M2 ¤Ë¤è¤ë¥½¡¼¥¹¥³¡¼¥É¤ò·ÇºÜ¤ÎͽÄê. |
Java ¤Þ¤¿¤Ï M2 ¤Ë¤è¤ë¥½¡¼¥¹¥³¡¼¥É¤ò·ÇºÜ¤ÎͽÄê. |
Line 2296 Open Asir ¥Þ¥Ë¥å¥¢¥ë, ¥µ¥ó¥×¥ë: ¾®¸¶, ¹â»³. |
|
Line 2801 Open Asir ¥Þ¥Ë¥å¥¢¥ë, ¥µ¥ó¥×¥ë: ¾®¸¶, ¹â»³. |
|
¥Ñ¥é¥á¡¼¥¿ÉÕÀÑʬ¤Î¥°¥é¥Õɽ¼¨¤Î¥½¥Õ¥È¤ò¤«¤¯¤³¤È¤Ç |
¥Ñ¥é¥á¡¼¥¿ÉÕÀÑʬ¤Î¥°¥é¥Õɽ¼¨¤Î¥½¥Õ¥È¤ò¤«¤¯¤³¤È¤Ç |
¤µ¤é¤ËÌäÂêÅÀ¤ò¤µ¤°¤ë¤³¤È¤ò |
¤µ¤é¤ËÌäÂêÅÀ¤ò¤µ¤°¤ë¤³¤È¤ò |
·×²è¤·¤Æ¤¤¤ë. |
·×²è¤·¤Æ¤¤¤ë. |
¥°¥ì¥Ö¥Êdeformation ¤Ë¤è¤ë¿¹à¼°²ò¤ÎƳ½Ð(Àþ·Á¤ª¤è¤ÓÈóÀþ·ÁÊýÄø¼°) |
¥°¥ì¥Ö¥Êdeformation ¤Ë¤è¤ë¿¹à¼°²ò, ÍÍý²ò¤ÎƳ½Ð(Àþ·Á¤ª¤è¤ÓÈóÀþ·ÁÊýÄø¼°, |
|
ÈóÀþ·ÁÈùʬÊýÄø¼°¤«¤é½Ðȯ¤¹¤ë¤ÈÂå¿ôÊýÄø¼°¤ò²ò¤¯ÌäÂê¤Ë¤Ê¤ë) |
¤Ï OpenXM Ū¤Ê¥×¥í¥°¥é¥à¤Î¤ª¤â¤·¤í¤¤Îý½¬ÌäÂê. |
¤Ï OpenXM Ū¤Ê¥×¥í¥°¥é¥à¤Î¤ª¤â¤·¤í¤¤Îý½¬ÌäÂê. |
Java ¤ÎÊÂÎó·×»»µ½ÒǽÎϤò¤Ä¤«¤Ã¤Æ ox ¥µ¡¼¥Ð¤ò»È¤¦¤Î¤â¤ª¤â¤·¤í¤¤. |
Java ¤ÎÊÂÎó·×»»µ½ÒǽÎϤò¤Ä¤«¤Ã¤Æ ox ¥µ¡¼¥Ð¤ò»È¤¦¤Î¤â¤ª¤â¤·¤í¤¤. |
|
|
Line 2306 Free Mathematical Software Initiative ¤òºî¤ë¤Ù¤¤À¤í¤¦ |
|
Line 2812 Free Mathematical Software Initiative ¤òºî¤ë¤Ù¤¤À¤í¤¦ |
|
|
|
\subsection{ Change log } |
\subsection{ Change log } |
\begin{enumerate} |
\begin{enumerate} |
|
\item 1997/11/20 : ¤³¤Î document ¤ÎºÇ½é¤Î version ¤¬À¸¤Þ¤ì¤¿. |
|
kxx/openxxx.tex ¤Ê¤ë̾Á°¤Ç¤¢¤Ã¤¿. |
\item 1999/07 : {\tt CMO\_ZZ} ¤Î·Á¼°¤òÊѤ¨¤¿. |
\item 1999/07 : {\tt CMO\_ZZ} ¤Î·Á¼°¤òÊѤ¨¤¿. |
\item 1999/09/7, 9/8 : ʬ»¶É½¸½Â¿¹à¼°, Mathcap, RecursivePolynomial, |
\item 1999/09/7, 9/8 : ʬ»¶É½¸½Â¿¹à¼°, Mathcap, RecursivePolynomial, |
¤Î·Á¼°¤òÊѤ¨¤¿. asir, sm1 ¤Ë¼ÂÁõ¤·¤¿. ¥¨¥é¡¼½èÍý¤Î¤¿¤á¤Ë, |
¤Î·Á¼°¤òÊѤ¨¤¿. asir, sm1 ¤Ë¼ÂÁõ¤·¤¿. ¥¨¥é¡¼½èÍý¤Î¤¿¤á¤Ë, |
|
|
¿ô¼°½èÍý, Vol 7, No 2, 2--17. (ISBN4-87243-086-7, SEG ½ÐÈÇ, Tokyo). \\ |
¿ô¼°½èÍý, Vol 7, No 2, 2--17. (ISBN4-87243-086-7, SEG ½ÐÈÇ, Tokyo). \\ |
{\tt http://www.math.kobe-u.ac.jp/openxxx/} |
{\tt http://www.math.kobe-u.ac.jp/openxxx/} |
\end{thebibliography} |
\end{thebibliography} |
|
*/ |
|
|
|
/*&C |
\bigbreak |
\bigbreak |
\bigbreak |
\bigbreak |
\bigbreak |
\bigbreak |
|
|
} |
} |
|
|
\end{document} |
\end{document} |
|
*/ |
|
|