version 1.70, 1999/12/24 10:57:52 |
version 1.71, 1999/12/24 11:16:45 |
|
|
\documentclass{jarticle} |
\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} |
\usepackage{jssac} |
\title{ |
\title{ |
Line 204 Mathematical Object format)を定義している。この CMO 形 |
|
Line 204 Mathematical Object format)を定義している。この CMO 形 |
|
タは、識別子が OX\_DATA であるようなメッセージのボディになることを想定し |
タは、識別子が OX\_DATA であるようなメッセージのボディになることを想定し |
ている。 |
ている。 |
|
|
|
> \begin{tabular}{|c|c|} \hline |
|
> ヘッダ & \hspace{10mm} ボディ \hspace{10mm} \\ \hline |
|
> \end{tabular} |
|
> |
|
213a216,221 |
|
> <<<<<<< genkou19991125.tex |
|
> %には多倍長整数以外にも文字列やリスト構造などがある。 |
|
> %CMO 形式で定義されているデータがどのようなデータであるかは |
|
> ヘッダの部分にある(メッセージの識別子とは別にある)タグを見れば、 |
|
> どのようなデータであるのか判別できるようになっている。 |
|
|
CMO 形式におけるデータ構造は次のような構造をもつ。 |
CMO 形式におけるデータ構造は次のような構造をもつ。 |
\begin{verbatim} |
\begin{verbatim} |
ヘッダ ボディ |
ヘッダ ボディ |
Line 231 CMO 形式で定義されているデータは多倍長整数以外にも |
|
Line 242 CMO 形式で定義されているデータは多倍長整数以外にも |
|
判別できるようになっている。 |
判別できるようになっている。 |
これはメッセージの種類の判別の仕方とおなじである。 |
これはメッセージの種類の判別の仕方とおなじである。 |
なお、タグは各データ毎に 32 bit の整数で表されており、 |
なお、タグは各データ毎に 32 bit の整数で表されており、 |
|
> なお、タグは各データ毎に 32 bit の整数で表されている。 |
|
259a257,259 |
多倍長整数は 20 となっている。 |
多倍長整数は 20 となっている。 |
よく使われると思われる CMO 形式のタグをあげておく。 |
よく使われると思われる CMO 形式のタグをあげておく。 |
\begin{verbatim} |
\begin{verbatim} |
Line 246 CMO 形式で定義されているデータは多倍長整数以外にも |
|
Line 259 CMO 形式で定義されているデータは多倍長整数以外にも |
|
CMO\_INT32 & $123456789$ \\ \hline |
CMO\_INT32 & $123456789$ \\ \hline |
\end{tabular} |
\end{tabular} |
と定義されているが、これを以後 (CMO\_INT32, 123456789) として表す。 |
と定義されているが、これを以後 (CMO\_INT32, 123456789) として表す。 |
|
> この表記方を CMO expression という。 |
|
> 同様に、長さ 6 の文字列 {\tt ``OpenXM''} を CMO\_STRING で表すと、 |
|
> (CMO\_STRING, 6, ``OpenXM'') となる。 |
|
|
|
|
ここで 32 bit の整数の表現方法について説明する必要がある。 |
ここで 32 bit の整数の表現方法について説明する必要がある。 |
Line 258 OpenXM 規約ではバイトストリームで 32 bit の整数 20 を |
|
Line 274 OpenXM 規約ではバイトストリームで 32 bit の整数 20 を |
|
使うことになっている。 |
使うことになっている。 |
また、負の数を表現する必要があるときには、 |
また、負の数を表現する必要があるときには、 |
2 の補数表現を使うことになっている。 |
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ライブラリ等を参考にしており、 |
CMO 形式の多倍長整数は、 Gnu MPライブラリ等を参考にしており、 |
符号付き絶対値表現を用いている。 |
符号付き絶対値表現を用いている。 |