=================================================================== RCS file: /home/cvs/OpenXM/doc/Attic/genkou19991125.tex,v retrieving revision 1.70 retrieving revision 1.71 diff -u -p -r1.70 -r1.71 --- OpenXM/doc/Attic/genkou19991125.tex 1999/12/24 10:57:52 1.70 +++ OpenXM/doc/Attic/genkou19991125.tex 1999/12/24 11:16:45 1.71 @@ -1,6 +1,6 @@ \documentclass{jarticle} -%% $OpenXM: OpenXM/doc/genkou19991125.tex,v 1.69 1999/12/24 10:08:41 tam Exp $ +%% $OpenXM: OpenXM/doc/genkou19991125.tex,v 1.70 1999/12/24 10:57:52 ohara Exp $ \usepackage{jssac} \title{ @@ -204,6 +204,17 @@ Mathematical Object format)を定義している。この CMO 形 タは、識別子が OX\_DATA であるようなメッセージのボディになることを想定し ている。 +> \begin{tabular}{|c|c|} \hline +> ヘッダ & \hspace{10mm} ボディ \hspace{10mm} \\ \hline +> \end{tabular} +> +213a216,221 +> <<<<<<< genkou19991125.tex +> %には多倍長整数以外にも文字列やリスト構造などがある。 +> %CMO 形式で定義されているデータがどのようなデータであるかは +> ヘッダの部分にある(メッセージの識別子とは別にある)タグを見れば、 +> どのようなデータであるのか判別できるようになっている。 + CMO 形式におけるデータ構造は次のような構造をもつ。 \begin{verbatim} ヘッダ ボディ @@ -231,6 +242,8 @@ CMO 形式で定義されているデータは多倍長整数以外にも 判別できるようになっている。 これはメッセージの種類の判別の仕方とおなじである。 なお、タグは各データ毎に 32 bit の整数で表されており、 +> なお、タグは各データ毎に 32 bit の整数で表されている。 +259a257,259 多倍長整数は 20 となっている。 よく使われると思われる CMO 形式のタグをあげておく。 \begin{verbatim} @@ -246,6 +259,9 @@ CMO 形式で定義されているデータは多倍長整数以外にも CMO\_INT32 & $123456789$ \\ \hline \end{tabular} と定義されているが、これを以後 (CMO\_INT32, 123456789) として表す。 +> この表記方を CMO expression という。 +> 同様に、長さ 6 の文字列 {\tt ``OpenXM''} を CMO\_STRING で表すと、 +> (CMO\_STRING, 6, ``OpenXM'') となる。 ここで 32 bit の整数の表現方法について説明する必要がある。 @@ -258,6 +274,11 @@ OpenXM 規約ではバイトストリームで 32 bit の整数 20 を 使うことになっている。 また、負の数を表現する必要があるときには、 2 の補数表現を使うことになっている。 + +> 先ほどの、 (CMO\_INT32, 123456789) をネットワークバイトオーダーで +> バイト列に直すと、 {\tt 00 00 00 02 07 5b cd 15} となり、 +> (CMO\_STRING, 6, ``OpenXM'') は {\tt 00 00 00 04 00 00 00 06 4f 70 65 6e 58 4d} + CMO 形式の多倍長整数は、 Gnu MPライブラリ等を参考にしており、 符号付き絶対値表現を用いている。