version 1.1, 2000/01/20 08:52:46 |
version 1.5, 2000/09/08 18:57:49 |
|
|
%% $OpenXM$ |
%% $OpenXM: OpenXM/doc/OpenXM-specs/formal-expression.tex,v 1.4 2000/09/08 17:14:54 takayama Exp $ |
//&jp \section{ CMO ¤Î·Á¼°ÅªÉ½¸½ÊýË¡ } |
//&jp \section{ CMO ¤Î·Á¼°ÅªÉ½¸½ÊýË¡ } |
//&eg \section{ A formal expression of CMO } |
//&eg \section{ A formal expression of CMO } |
|
|
/*&jp |
/*&jp |
Á°¤ÎÀá¤Ç CMO ¤Îɽ¸½ÊýË¡¤ò·Á¼°Åª¤ËÄêµÁ¤»¤º, |
Á°¤ÎÀá¤Ç CMO ¤Îɽ¸½ÊýË¡¤ò·Á¼°Åª¤ËÄêµÁ¤»¤º, |
CMO ¤ÎBasic0 ¤Îɽ¸½Ë¡¤òÀâÌÀ¤·¤¿¤¬, |
CMO ¤ÎPrimitive ¤Îɽ¸½Ë¡¤òÀâÌÀ¤·¤¿¤¬, |
¤³¤³¤Ç¤Ï, CMO ¤Î Lisp É÷ɽ¸½ (Lisp-like expression) |
¤³¤³¤Ç¤Ï, CMO ¤Î Lisp É÷ɽ¸½ (Lisp-like expression) |
¤Ç¤¢¤ë |
¤Ç¤¢¤ë |
CMOexpression |
CMOexpression |
|
|
% (¥¿¥°¤Î¾ÊάµË¡¤¬¤Û¤·¤¤.) |
% (¥¿¥°¤Î¾ÊάµË¡¤¬¤Û¤·¤¤.) |
*/ |
*/ |
/*&eg |
/*&eg |
In the previous setion, we have explained the format of CMO's in the |
In the previous section, we have explained the format of CMO's in the |
Basic0 group. |
Primitive group. |
In this section, we will introduce CMOexpression which is like the |
In this section, we will introduce CMOexpression which is like the |
bracket expression of Lisp. |
bracket expression of Lisp. |
We again explain a standard encoding method of CMO, |
We again explain a standard encoding method of CMO, |
Line 60 By using this notation, CMOexpression is defined as fo |
|
Line 60 By using this notation, CMOexpression is defined as fo |
|
Îó¤Ç¤¢¤ë. |
Îó¤Ç¤¢¤ë. |
½ªÃ¼µ¹æ {\tt string} ¤Ï''ʸ»ú''¤ÎÎó¤Ç¤¢¤ë. |
½ªÃ¼µ¹æ {\tt string} ¤Ï''ʸ»ú''¤ÎÎó¤Ç¤¢¤ë. |
½ªÃ¼µ¹æ {\tt byte} ¤Ï 8 bit ¥Ç¡¼¥¿¤òɽ¤¹, 10 ¿Ê¤Þ¤¿¤Ï 16 ¿Ê¤Î¿ô»ú¤ÎÎó¤Ç¤¢¤ë. |
½ªÃ¼µ¹æ {\tt byte} ¤Ï 8 bit ¥Ç¡¼¥¿¤òɽ¤¹, 10 ¿Ê¤Þ¤¿¤Ï 16 ¿Ê¤Î¿ô»ú¤ÎÎó¤Ç¤¢¤ë. |
|
|
*/ |
*/ |
/*&jp |
/*&eg |
Terminal {\tt int32} is signed 32 bit integer. |
Terminal {\tt int32} is signed 32 bit integer. |
Terminal {\tt string} is a byte array which usually expresses a string. |
Terminal {\tt string} is a byte array which usually expresses a string. |
Terminal {\tt byte} is 8 bit data. |
Terminal {\tt byte} is 8 bit data. |
|
|
*/ |
*/ |
|
|
/*&jp |
/*&jp |
Line 82 The comma ({\tt ,}) may be used to separate each eleme |
|
Line 80 The comma ({\tt ,}) may be used to separate each eleme |
|
*/ |
*/ |
|
|
/*&jp |
/*&jp |
¤³¤ÎɽµË¡ CMOexpression ¤òÍøÍѤ·¤Æ, CMO Basic0 ¤Î object ¤òµ½Ò |
¤³¤ÎɽµË¡ CMOexpression ¤òÍøÍѤ·¤Æ, CMO Primitive ¤Î object ¤òµ½Ò |
¤·¤Æ¤ß¤è¤¦. |
¤·¤Æ¤ß¤è¤¦. |
Object ¼«ÂΤι½Â¤¤òÀâÌÀ¤¹¤ë¤¿¤á, |
Object ¼«ÂΤι½Â¤¤òÀâÌÀ¤¹¤ë¤¿¤á, |
BNF ¤ò¤â¤¦¤¹¤³¤·³ÈÄ¥¤·¤Æ, Èó½ªÃ¼µ¹æ, ½ªÃ¼µ¹æ̾¤Î¤ß¤Ê¤é¤º, ÊÑ¿ô¤Î |
BNF ¤ò¤â¤¦¤¹¤³¤·³ÈÄ¥¤·¤Æ, Èó½ªÃ¼µ¹æ, ½ªÃ¼µ¹æ̾¤Î¤ß¤Ê¤é¤º, ÊÑ¿ô¤Î |
Line 90 BNF ¤ò¤â¤¦¤¹¤³¤·³ÈÄ¥¤·¤Æ, Èó½ªÃ¼µ¹æ, ½ªÃ¼µ¹æ̾¤Î¤ß¤Ê |
|
Line 88 BNF ¤ò¤â¤¦¤¹¤³¤·³ÈÄ¥¤·¤Æ, Èó½ªÃ¼µ¹æ, ½ªÃ¼µ¹æ̾¤Î¤ß¤Ê |
|
¤«¤é¤Ç¤¢¤ë. ¤Þ¤¿ ``---'' ¤Ç¥³¥á¥ó¥È¤Î¤Ï¤¸¤Þ¤ê¤òɽ¤¹¤â¤Î¤È¤¹¤ë. |
¤«¤é¤Ç¤¢¤ë. ¤Þ¤¿ ``---'' ¤Ç¥³¥á¥ó¥È¤Î¤Ï¤¸¤Þ¤ê¤òɽ¤¹¤â¤Î¤È¤¹¤ë. |
*/ |
*/ |
/*&eg |
/*&eg |
Let us describe CMO's in the Basic0 group. |
Let us describe CMO's in the Primitive group. |
In order to explain the meaning of objects, |
In order to explain the meaning of objects, |
we may also put variable names to CMOexpressions. |
we may also put variable names to CMOexpressions. |
The start of comments are denoted by ``---''. |
The start of comments are denoted by ``---''. |
|
|
¤Ï, |
¤Ï, |
32 bit integer $n$ ¤òɽ¸½¤·¤Æ¤¤¤ë¤ó¤À¤È¤¤¤¦¤³¤È¤¬, 1 ¹Ô¤Ç¤ï¤«¤ë. |
32 bit integer $n$ ¤òɽ¸½¤·¤Æ¤¤¤ë¤ó¤À¤È¤¤¤¦¤³¤È¤¬, 1 ¹Ô¤Ç¤ï¤«¤ë. |
*/ |
*/ |
/*&eg |
|
(This part has not yet been translated.) |
|
*/ |
|
/*&jp |
/*&jp |
¤³¤ÎµË¡¤òÍѤ¤¤Æ, Á°Àá¤ÇƳÆþ¤·¤¿, Basic0 ¤Î CMObject ¤ò |
¤³¤ÎµË¡¤òÍѤ¤¤Æ, Á°Àá¤ÇƳÆþ¤·¤¿, Primitive ¤Î CMObject ¤ò |
·Á¼°Åª¤ËÄêµÁ¤·¤è¤¦. |
·Á¼°Åª¤ËÄêµÁ¤·¤è¤¦. |
*/ |
*/ |
/*&eg |
/*&eg |
By using this notation, let us define formally CMObjects in the group |
By using this notation, let us define formally CMObjects in the group |
Basic0. |
Primitive. |
*/ |
*/ |
|
|
/*&C |
/*&C |
|
|
\bigbreak |
\bigbreak |
\noindent |
\noindent |
Group CMObject/Basic0 requires nothing. \\ |
Group CMObject/Primitive requires nothing. \\ |
Error2, Null, Integer32, Datum, Cstring, Mathcap, List $\in$ CMObject/Basic0. \\ |
Error2, Null, Integer32, Datum, Cstring, Mathcap, List $\in$ CMObject/Primitive. \\ |
Document of CMObject/Basic0 is at {\tt http://www.math.kobe-u.ac.jp/OpenXM} |
Document of CMObject/Primitive is at {\tt http://www.math.kobe-u.ac.jp/OpenXM} |
(in English and 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}) \\ |
Line 169 Document of CMObject/Basic0 is at {\tt http://www.math |
|
Line 164 Document of CMObject/Basic0 is at {\tt http://www.math |
|
//&jp ¤È¤Ê¤ë. |
//&jp ¤È¤Ê¤ë. |
/*&jp |
/*&jp |
¤Þ¤¿, |
¤Þ¤¿, |
``Group CMObject/Basic0 requires nothing'' |
``Group CMObject/Primitive requires nothing'' |
¤Ï, °Ê²¼¤Ï, ¥°¥ë¡¼¥× CMObject/Basic0 ¤ÎÄêµÁ¤Ç¤¢¤ê, |
¤Ï, °Ê²¼¤Ï, ¥°¥ë¡¼¥× CMObject/Primitive ¤ÎÄêµÁ¤Ç¤¢¤ê, |
¤³¤Î¥°¥ë¡¼¥×¤Î CMObject ¤òÄêµÁ¤¹¤ë¤Î¤Ë, Í×ÀÁ¤µ¤ì¤ë CMObject ¤Î¥°¥ë¡¼¥×¤Ï |
¤³¤Î¥°¥ë¡¼¥×¤Î CMObject ¤òÄêµÁ¤¹¤ë¤Î¤Ë, Í×ÀÁ¤µ¤ì¤ë CMObject ¤Î¥°¥ë¡¼¥×¤Ï |
¤Ê¤¤¤³¤È¤ò¼¨¤¹. |
¤Ê¤¤¤³¤È¤ò¼¨¤¹. |
``Error2, Null, Integer32, Datum, Cstring, Mathcap, List |
``Error2, Null, Integer32, Datum, Cstring, Mathcap, List |
$\in$ CMObject/Basic0'' |
$\in$ CMObject/Primitive'' |
¤Ï, ¥°¥ë¡¼¥× CMObject/Basic0 ¤Ë¤Ï, Error2, Null, Integer32, |
¤Ï, ¥°¥ë¡¼¥× CMObject/Primitive ¤Ë¤Ï, Error2, Null, Integer32, |
Datum, Cstring ¤Ê¤ë¥¯¥é¥¹¤Î object ¤¬Â°¤¹¤ë¤³¤È¤ò¼¨¤¹. |
Datum, Cstring ¤Ê¤ë¥¯¥é¥¹¤Î object ¤¬Â°¤¹¤ë¤³¤È¤ò¼¨¤¹. |
*/ |
*/ |
/*&eg |
/*&eg |
¤Þ¤¿, |
``Group CMObject/Primitive requires nothing'' |
``Group CMObject/Basic0 requires nothing'' |
means that there is no super group to define CMO's in the group Primitive. |
means that there is no super group to define CMO's in the group Basic0. |
|
``Error2, Null, Integer32, Datum, Cstring, Mathcap, List |
``Error2, Null, Integer32, Datum, Cstring, Mathcap, List |
$\in$ CMObject/Basic0'' |
$\in$ CMObject/Primitive'' |
means that |
means that |
Error2, Null, Integer32, Datum, Cstring |
Error2, Null, Integer32, Datum, Cstring |
are members of the group CMObject/Basic0. |
are members of the group CMObject/Primitive. |
*/ |
*/ |
|
|
/*&C |
/*&C |
Line 233 CMOexpression ¤È, CMObject ¤Î¶èÊ̤òÍý²ò¤·¤Æ¤ª¤¯¤Î¤Ï½ÅÍ |
|
Line 227 CMOexpression ¤È, CMObject ¤Î¶èÊ̤òÍý²ò¤·¤Æ¤ª¤¯¤Î¤Ï½ÅÍ |
|
¤³¤ì¤Ï, ʸˡŪ¤Ë¤ÏÀµ¤·¤¤¥×¥í¥°¥é¥à¤À¤¬, ¤Ê¤Ë¤ò¤ä¤ë¤Î¤«¤ÏÁ´¤¯ÉÔÌÀ¤Ê |
¤³¤ì¤Ï, ʸˡŪ¤Ë¤ÏÀµ¤·¤¤¥×¥í¥°¥é¥à¤À¤¬, ¤Ê¤Ë¤ò¤ä¤ë¤Î¤«¤ÏÁ´¤¯ÉÔÌÀ¤Ê |
¥×¥í¥°¥é¥à¤È»÷¤Æ¤¤¤ë. |
¥×¥í¥°¥é¥à¤È»÷¤Æ¤¤¤ë. |
|
|
|
*/ |
|
|
|
/*&jp |
¤µ¤Æ, Open math É÷ (\cite{openmath}) |
¤µ¤Æ, Open math É÷ (\cite{openmath}) |
¤Î SGML ɽ¸½Ë¡¤â²Äǽ¤Ç¤¢¤ê, ¤½¤Î¾ì¹ç¤Ï, ¾å¤ÎÆó¤Ä¤ÎÎã¤Ï¼¡¤Î¤è¤¦¤Ë |
¤Î XML ɽ¸½Ë¡¤â²Äǽ¤Ç¤¢¤ê, ¤½¤Î¾ì¹ç¤Ï, ¾å¤ÎÆó¤Ä¤ÎÎã¤Ï¼¡¤Î¤è¤¦¤Ë |
½ñ¤¯. |
½ñ¤¯. |
|
*/ |
|
/*&eg |
|
It is possible to express CMO by XML like Open math (\cite{openmath}). |
|
See example below. |
|
*/ |
|
|
|
/*&C |
|
|
\begin{verbatim} |
\begin{verbatim} |
<CMO_INT32> |
<cmo_int32> |
1234 |
1234 |
</CMO_INT32> |
</cmo_int32> |
|
|
<CMO_STRING> |
<cmo_string> |
5 |
5 |
"Hello" |
"Hello" |
</CMO_STRING> |
</cmo_string> |
\end{verbatim} |
\end{verbatim} |
*/ |
*/ |
|
|
Line 329 is the encoding of the CMOexpression |
|
Line 334 is the encoding of the CMOexpression |
|
¤Î ɸ½à encoding Ë¡¤Ë¤è¤ëɽ¸½¤Ç¤¢¤ë. |
¤Î ɸ½à encoding Ë¡¤Ë¤è¤ëɽ¸½¤Ç¤¢¤ë. |
*/ |
*/ |
|
|
|
/*&C |
|
|
|
\bigbreak |
|
|
|
*/ |
|
|
|
/*&jp |
|
(¼Â¸³Åª) |
|
CMO ¤Ï XML µ¬³Ê¤Ë½àµò¤·¤Æ¤¤¤ë. |
|
XML µ¬³Ê¤Î Attribute ¤ò binary encode ¤¹¤ë¤¿¤á¤Ë |
|
ÆÃÊ̤ʥ¿¥° \\ |
|
*/ |
|
/*&eg |
|
(Experimental) |
|
CMO is complient to XML specification. |
|
In order to encode ``Attribute'' in XML in a binary format, |
|
we have a tag: \\ |
|
*/ |
|
//&C \verb! #define CMO_ATTRIBUTE_LIST (LARGEID+3) ! \\ |
|
/*&jp |
|
¤òÍÑ°Õ¤·¤Æ¤¢¤ë. |
|
*/ |
|
/*&jp |
|
¤¿¤È¤¨¤Ð Attribute {\tt font="Times-Roman" } ¤Ï \\ |
|
*/ |
|
/*&eg |
|
For example, the attibute {\tt font="Times-Roman" } is encoded as \\ |
|
*/ |
|
/*&C |
|
\begin{verbatim} |
|
(CMO_ATTRIBUTE (CMO_LIST |
|
(CMO_LIST (CMO_STRING,"font") (CMO_STRING, "Times-Roman")))) |
|
\end{verbatim} |
|
*/ |
|
/*&jp |
|
¤È encoding ¤µ¤ì¤ë. |
|
*/ |
|
//&C |
|
/*&jp |
|
¤³¤ÎÆÃÊÌ¤Ê CMO tag {\tt CMO\_ATTRIBUTE\_LIST} °Ê³°¤Ï, |
|
XML ɽ¸½¤Ç¤Ï XML ¤Î¥¿¥°¤È¤·¤ÆÍý²ò¤µ¤ì¤ë. |
|
*/ |
|
/*&eg |
|
All tags except this special CMO tag {\tt CMO\_ATTRIBUTE\_LIST} |
|
are XML tags in the CMO/XML expression. |
|
*/ |
|
|