version 1.1, 2000/01/20 08:52:46 |
version 1.3, 2000/01/24 02:48:24 |
|
|
%% $OpenXM$ |
%% $OpenXM: OpenXM/doc/OpenXM-specs/formal-expression.tex,v 1.2 2000/01/23 05:28:33 noro 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 |