[BACK]Return to implementation.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / OpenXM-specs

Diff for /OpenXM/doc/OpenXM-specs/implementation.tex between version 1.3 and 1.4

version 1.3, 2000/10/12 00:14:51 version 1.4, 2020/03/14 01:21:56
Line 1 
Line 1 
 %% $OpenXM: OpenXM/doc/OpenXM-specs/implementation.tex,v 1.2 2000/01/24 02:48:24 noro Exp $  %% $OpenXM: OpenXM/doc/OpenXM-specs/implementation.tex,v 1.3 2000/10/12 00:14:51 ohara Exp $
 //&jp \section{ 実装, デバッグ, 検証 }  //&jp \section{ 絎茖, , 罎荐 }
   
 //&jp \subsection{ 実装の手順 }  //&jp \subsection{ 絎茖 }
   
 /*&jp  /*&jp
 ソフト xxx を, open XM 対応にするのには以下のような  純 xxx , open XM 絲上篁ヤ
 手順をふむと開発が容易であろう.  泣冴絎号с.
 \begin{enumerate}  \begin{enumerate}
 \item[Step 1.]  \item[Step 1.]
 {\tt executeStringByLocalParser}  {\tt executeStringByLocalParser}
 および {\tt popString} の機能を実現して,   {\tt popString} 罘純絎憗,
 xxx をライブラリとしてまとめ, 他のソフトとリンクして  xxx ゃ障, 篁純潟
 使用できるかテストする.  篏睡с鴻.
 C での実現の場合 割り込みの取扱に注意を要する.  C с絎憗翫 蚊莨若帥宴羈荀.
 これだけの実現でも, サンプルサーバ  絎憗с, 泣潟泣若
 ({\tt nullserver00.c}) とリンクすれば,  ({\tt nullserver00.c}) 潟,
 open XM 対応のクライアントと通信できる.  open XM 絲上ゃ≪潟篆<с.
 クライアント側では, このシステムに対応した機能呼び出し  ゃ≪潟眼с, 激鴻絲上罘遵若喝冴
 プログラムを書く.  違吾.
 \item[Step 2.]  \item[Step 2.]
 次に, CMO を可能な限り実装する.  罨<, CMO 純絎茖.
 open sm1 や open asir で, CMO 形式のデータを  open sm1 open asir , CMO 綵√若帥
 作成して, 読み込めるかテストする.  篏, 茯粋昭鴻.
 \item[Step 2'.]  \item[Step 2'.]
 {\tt kan/sm1} の plugin として組み込むとサーバの開発が楽かもしれない.  {\tt kan/sm1} plugin 腟粋昭泣若冴罐純.
 {\tt kan/sm1} のソースファイルのディレクトリ {\tt plugin} を見よ.  {\tt kan/sm1} 純若鴻<ゃc {\tt plugin} 荀.
 \item[Step 3.]  \item[Step 3.]
 CMO の stream への転送, stream よりの転送は,  CMO stream 吾荵∫, stream 荵∫,
 巨大データの送信受信にきわめて大切である.  綏紊с若帥篆≦篆<紊ус.
 これを実装しサンプルサーバとリンクする.  絎茖泣潟泣若潟.
 \end{enumerate}  \end{enumerate}
   
   
 \subsection{歴史}  \subsection{罩翫}
 kan -- asir 間でも以上のように開発がすすんだ.  kan -- asir с篁ヤ冴.
   
 Risa/Asir の開発が沼津の富士フォーラムでおこなわれていた  Risa/Asir 冴羃惹乾絲紕若с
 ころ, 私が沼津を, 1996年, 1月19日に訪問し,  , 腱羃惹乾, 1996綛, 119ャ荐,
 {\tt Asir\_executeString()}  {\tt Asir\_executeString()}
 の機能を野呂さんに書いてもらって, kan より asir を文字列で呼び出す  罘純吾c, kan asir 絖у若喝冴
 機能およびその逆を実現したのがことの発端である.  罘純潟絎憗榊с.
 たとえば, asir より kan/sm1 の機能を呼び出すには,  , asir kan/sm1 罘純若喝冴,
 \begin{verbatim}  \begin{verbatim}
 F = x; G = y;  F = x; G = y;
 Ans = kan("(%p).  (%p).  mul toString",F,G)  Ans = kan("(%p).  (%p).  mul toString",F,G)
 \end{verbatim}  \end{verbatim}
 と入力すればよい.  ュ違.
 {\tt x} と {\tt y} の積が kan で解釈実行されて, 結果を  {\tt x} {\tt y} 腥 kan цВ絎茵, 腟
 もどす.  .
 このレベルの結合では kan/sm1 は, 内蔵インタプリタ付の  腟с kan/sm1 , 泣ゃ潟帥推
 ライブラリとして利用できてずいぶん便利である.  ゃс吟箴水с.
 この関数 {\tt kan} は {\tt builtin/parif.c} に組み込んだ.  ∽ {\tt kan} {\tt builtin/parif.c} 腟粋昭.
 {\tt asir} は {\tt pari} の関数を組み込んでいるが, この組み込みの  {\tt asir} {\tt pari} ∽違腟粋昭с, 腟粋昭帥
 メカニズムを利用すると容易にリンクできた.  <冴絎号潟с.
 参照: {\tt  noro/src/Old1/parif.c}.  : {\tt  noro/src/Old1/parif.c}.
   
 次に, CMO Primitive の機能を  罨<, CMO Primitive 罘純
 1997, 5 月, 6 月に実現した.  1997, 5 , 6 絎憗.
 その後, 1997年 7 月に, SMObject/Basic の実装,  緇, 1997綛 7 , SMObject/Basic 絎茖,
 1997年 7 月には, 野呂がイタリアの CoCoA のワークショップにおいて,  1997綛 7 , ゃ帥≪ CoCoA 若激с,
 大阿久の b-function を stratification 込みで計算する計算プログラムを  紊ч推 b-function stratification 莨若帥ц膊荐膊違
 asir, kan を連係してデモした. このときは, {\tt Sm1\_executeStringByLocalParser}  asir, kan d≪. , {\tt Sm1\_executeStringByLocalParser}
 関数を用いて, ライブラリとしてリンクしてつかった.  ∽違, ゃ潟ゃc.
 1997 年 11 月に TCP/IP による, サーバスタックマシン間の通信の  1997 綛 11 TCP/IP , 泣若鴻帥激渇篆<
 実装をおこなっている.  絎茖c.
 通信の実装テストのために, Java および C で null server , null client  篆<絎茖鴻, Java C null server , null client
 を作成した. 以下, これにつき述べる.  篏. 篁ヤ, ゃ菴違鴻.
   
   
 \subsection{ サンプルサーバ, クライアント }  \subsection{ 泣潟泣若, ゃ≪潟 }
   
 Open XM では, 現在のところ,  Open XM с, 憜,
 サンプルサーバとして  {\tt oxserver00.c} を提供している.  泣潟泣若  {\tt oxserver00.c} 箴.
 このサーバをもとにして, {\tt asir} および {\tt kan/sm1}  泣若, {\tt asir} {\tt kan/sm1}
 の open XM サーバを試験中である ({\tt ox\_asir}, {\tt ox\_sm1}).   open XM 泣若荅薑筝с ({\tt ox\_asir}, {\tt ox\_sm1}).
 {\tt ox\_sm1} では, {\tt sm1stackmachine.c} が  {\tt ox\_sm1} с, {\tt sm1stackmachine.c}
 open XM スタックマシンを実現している.  open XM 鴻帥激潟絎憗.
 サンプルクライアントは, ネットワークにデータを送出および  泣潟ゃ≪潟, 若若帥冴
 受信する機能のみをもつ,  {\tt testclient.c} を提供  篆<罘純帥,  {\tt testclient.c} 箴
 している.  .
 {\tt asir} および {\tt kan/sm1} には本格的な  {\tt asir} {\tt kan/sm1} 主
 クライアント機能(open XM サーバを呼び出す  ゃ≪潟罘(open XM 泣若若喝冴
 機能)を組み込んである.  罘)腟粋昭с.
 サーバを起動するプログラムは, {\tt kan/sm1} グループでは,  泣若莎桁違, {\tt kan/sm1} 違若с,
 {\tt ox} なる名前で, {\tt asir} グループでは,  {\tt ox} , {\tt asir} 違若с,
 {\tt ox\_lauch} なる名前であるが, 機能は同じである.  {\tt ox\_lauch} с, 罘純с.
 {\tt ox} のソースは {\tt oxmain.c} である.  {\tt ox} 純若鴻 {\tt oxmain.c} с.
   
 \subsubsection{OpenXM/src/ox\_toolkit にあるサンプル実装}  \subsubsection{OpenXM/src/ox\_toolkit 泣潟絎茖}
 このディレクトリの解説文書を見よ.  c茹h吾荀.
   
 \subsubsection{ ox\_null }  \subsubsection{ ox\_null }
   
 Primitive のスタックマシンのソケットによる実装.  Primitive 鴻帥激潟純宴絎茖.
 スタックマシンは {\tt nullstackmachine.c} に実装されており,  鴻帥激潟 {\tt nullstackmachine.c} 絎茖,
 {\tt oxserver00.c} にリンクしてサーバとなる.  {\tt oxserver00.c} 潟泣若.
 サンプルサーバであり, これに CMO Primitive 仕様の関数を結合すれば,  泣潟泣若с, CMO Primitive 篁罕∽違腟,
 一応 サーバが動作するはずである.  筝綽 泣若篏с.
 スタックには,CMO の Primitive の object へのポインタがそのまま push される.  鴻帥,CMO Primitive object 吾ゃ潟帥障 push .
 コントロール機能なし. 1997/11/29 版よりコントロール機能追加.  潟潟若罘純. 1997/11/29 潟潟若罘処申.
 @Old/nullserver00.c.19971122c,  @Old/nullserver00.c.19971122c,
 @Old/mytcpip.c.19971122c  @Old/mytcpip.c.19971122c
   
 現在はこのサーバはメンテナンスされていない  憜泣若<潟潟鴻
 (object 関係の関数を追加しないとコンパイルできない.)  (object ≫∽違菴遵潟潟ゃс.)
   
 \subsubsection{ testclient }  \subsubsection{ testclient }
   
   
 Java による実装:  Java 絎茖:
 @Old/client.java.19971122c  @Old/client.java.19971122c
 これも現在はふるい.  憜泣.
 OX パケットのシリアル番号に対応していない.  OX 宴激≪垩絲上.
 ちかいうちに改訂する予定.  <<壕篋絎.
 {\tt executeString} および {\tt popString} を要請する能力しか持たない.  {\tt executeString} {\tt popString} 荀茫遵.
 受信は スレッド {\tt listner} がおこなっている.  篆< 鴻 {\tt listner} c.
 受信は byte データを表示するのみである.  篆< byte 若帥茵腓冴帥с.
 スレッドの優先度をうまくバランスとらないと, 受信データがあるのに  鴻綺障潟鴻, 篆<若帥
 表示しなかったりする.  茵腓冴c.
   
 C による {\tt testclient}  C {\tt testclient}
 同じような機能をもつプログラムの実装もある.  罘純ゃ違絎茖.
 {\footnotesize \begin{verbatim}  {\footnotesize \begin{verbatim}
 ./ox -ox ox_sm1 -host localhost -data 1300 -control 1200  (サーバの立ち上げ)  ./ox -ox ox_sm1 -host localhost -data 1300 -control 1200  (泣若腴>)
 ./testclient     (testclient の立ち上げ)  ./testclient     (testclient 腴>)
 \end{verbatim}}  \end{verbatim}}
 これも現在はふるい.  憜泣.
   
 田村 ({\tt tamura@math.kobe-u.ac.jp}) による Java への新しい実装がある  井 ({\tt tamura@math.kobe-u.ac.jp}) Java 吾違絎茖
 (1999, 3月, 神戸大学修士論文).  (1999, 3, 腑後ぇ絖篆紕茫).
   
 \subsubsection{ {\tt ox} }  \subsubsection{ {\tt ox} }
 {\tt ox} は ox サーバをたちあげるためのプログラムである.  {\tt ox} ox 泣若<違с.
 クライアントよりサーバへ接続するには二つの方法がある.  ゃ≪潟泣若御・膓篋ゃ号.
 一つは {\tt ox} で データとコントロール用の二つの  筝ゃ {\tt ox} 若帥潟潟若篋ゃ
 ポート番号を明示的に起動し, クライアントがこのポートへつなぎに  若垩腓榊莎桁, ゃ≪潟若吾ゃ
 いく方法である.  号с.
 もう一つは, クライアント側でまず, 空いているポートを二つ  筝ゃ, ゃ≪潟眼с障, 腥冴若篋
 さがし, それから {\tt ox} を {\tt -reverse} で起動して  , {\tt ox} {\tt -reverse} ц儀
 サーバ側がクライアントにつなぎにくる方法である.  泣若眼ゃ≪潟ゃ号с.
 この場合, {\tt ox} はたとえば次のように起動される.  翫, {\tt ox} 井<莎桁.
 {\footnotesize \begin{verbatim}  {\footnotesize \begin{verbatim}
 /home/nobuki/kxx/ox -reverse -ox /home/nobuki/kxx/ox_sm1  /home/nobuki/kxx/ox -reverse -ox /home/nobuki/kxx/ox_sm1
 -data 1172 -control 1169 -pass 1045223078  -data 1172 -control 1169 -pass 1045223078
 \end{verbatim} }  \end{verbatim} }
   
 {\tt ox} は, 子どもプロセスとして, {\tt ox\_asir}, {\tt ox\_sm1}  {\tt ox} , 絖祉鴻, {\tt ox\_asir}, {\tt ox\_sm1}
 などを起動するのであるが,  莎桁с,
 これらのプロセスは  祉鴻
 3 よりOX データ, コマンドを読み込み, 4 へ OX データを書き出す.  3 OX 若, 潟潟茯粋昭, 4 OX 若帥吾冴.
 現在の実装では 3 と 4 は dup して同一視してしまっている.  憜絎茖с 3 4 dup 筝荀障c.
 {\tt ox} はTCP/IP のデータ転送のポートを, 3, 4 へわりあてて,  {\tt ox} TCP/IP 若粋拶若, 3, 4 吾,
 子どもプロセスを起動する.  絖祉鴻莎桁.
 {\footnotesize \begin{verbatim}  {\footnotesize \begin{verbatim}
 close(fdControl);   /* close(0); dup(fdStream); */  close(fdControl);   /* close(0); dup(fdStream); */
 dup2(fdStream,3);  dup2(fdStream,3);
Line 161  dup2(fdStream,4);  
Line 161  dup2(fdStream,4);  
   
 \subsubsection{ {\tt ox\_asir} phrase book}  \subsubsection{ {\tt ox\_asir} phrase book}
   
 [ この節の記述は古い]  [ 膀荐菴違ゃ]
 CMObject と asir の object は次の規則にしたがって変換される.  CMObject asir object 罨<荀c紊.
 なお asir の object のタグをみるには関数 {\tt type} を用いる.   asir object 帥違帥∽ {\tt type} .
 \begin{enumerate}  \begin{enumerate}
 \item Null :  0 として使用される.  \item Null :  0 篏睡.
 \item Integer32 : 内部的にのみ使用される. 送出は, ZZ に変換される.  \item Integer32 : 推戎. 冴, ZZ 紊.
   -1 は (unsigned int) -1 に変換されてから, ZZ に変換されるので,    -1 (unsigned int) -1 紊, ZZ 紊,
   正の数となる.    罩c違.
 \item Cstring : 文字列 (type = 7) に変換される.  \item Cstring : 絖 (type = 7) 紊.
 \item ZZ : 数 (type = 1 ) に変換される.  \item ZZ : (type = 1 ) 紊.
 \item QQ : 数 (type = 1 ) に変換される.  \item QQ : (type = 1 ) 紊.
 \item List : リスト (type = 4) に変換される.  \item List : 鴻 (type = 4) 紊.
 \item Dpolynomial : 分散表現多項式 (type = 9) に変換される.  \item Dpolynomial : h;憜綣 (type = 9) 紊.
 order はうけとったモノミアルのリストと同じ order である.  order c≪≪鴻 order с.
 \item RecursivePolynomial : 再帰表現多項式に変換される.  \item RecursivePolynomial : 絽域;憜綣紊.
 内部順序に自動変換される.  綺紊.
 \item Indeterminate : 不定元に変換される.  \item Indeterminate : 筝絎紊.
 \end{enumerate}  \end{enumerate}
 記述のない CMObject に関しては, 利用できない (cf. mathcap ).  荐菴違 CMObject ≪, с (cf. mathcap ).
   
 \noindent  \noindent
 問題点: 0 の扱いの仕様がまださだまっていない.  馹: 0 宴篁罕障障c.
 Null が数 (type = 1) の 0 に変換される版もある.  Null (type = 1) 0 紊.
   
 \medbreak  \medbreak
 \noindent  \noindent
 例:  箴:
 分散表現多項式の $x^2-1$ の因数分解を asir にやってもらう  h;憜綣 $x^2-1$ 医茹c asir c
 OXexpression の列をあげる.  OXexpression .
 {\footnotesize  {\footnotesize
 \begin{verbatim}  \begin{verbatim}
 (OX_DATA, (CMO_LIST, 4, CMO_DMS,CMO_DMS_GENERIC,  (OX_DATA, (CMO_LIST, 4, CMO_DMS,CMO_DMS_GENERIC,
Line 211  OXexpression の列をあげる.
Line 211  OXexpression の列をあげる.
 (OX_COMMAND,(SM_popCMO))  (OX_COMMAND,(SM_popCMO))
 \end{verbatim}}  \end{verbatim}}
   
 ここで, ZZ の元を普通の整数表記であらわした.  , ZZ 贋域;荐с.
 {\tt dtop1} および {\tt ptod1} はそれぞれ, 分散表現多項式を, Asir の再帰表現  {\tt dtop1} {\tt ptod1} , h;憜綣, Asir 絽域;
 多項式に, 逆に, Asir の再帰表現多項式を, 分散表現多項式に変換する,  紊綣, , Asir 絽域;憜綣, h;憜綣紊,
 ユーザ定義の 1 引数関数である. %% kxx/oxasir.sm1  若九臂 1 綣育∽違с. %% kxx/oxasir.sm1
 これらの関数は Asir の リストにも作用させることが可能であり, その場合は  ∽違 Asir 鴻篏純с, 翫
 要素としてでてくる,  分散表現多項式 または Asir の再帰表現多項式  荀膣с,  h;憜綣 障 Asir 絽域;憜綣
 を必要な形に変換する.  綽荀綵≪紊.
 {\tt fctr} は因数分解をする組み込み関数である.  {\tt fctr} 医茹c腟粋昭翠∽違с.
   
 {\tt kxx/oxasir.asir} のソース.  {\tt kxx/oxasir.asir} 純若.
 {\footnotesize \begin{verbatim}  {\footnotesize \begin{verbatim}
 OxVlist = [x,y,z]$  OxVlist = [x,y,z]$
   
Line 243  end$
Line 243  end$
   
 \subsubsection{ {\tt ox\_sm1} phrase book }  \subsubsection{ {\tt ox\_sm1} phrase book }
   
 [ この節の記述は古い]  [ 膀荐菴違ゃ]
 CMObject と kan/sm1 の object は次の規則にしたがい変換される.  CMObject kan/sm1 object 罨<荀紊.
 なお, kan/sm1 の object のタグをみるには, {\tt tag} または {\tt etag}  , kan/sm1 object 帥違帥, {\tt tag} 障 {\tt etag}
 を用いる.  .
 \begin{enumerate}  \begin{enumerate}
 %% \item Error : Error (etag = 257) に変換される.  %% \item Error : Error (etag = 257) 紊.
 \item Error2 : Error (etag = 257) に変換される.  \item Error2 : Error (etag = 257) 紊.
 \item Null : null (tag = 0) に変換される.  \item Null : null (tag = 0) 紊.
 \item Integer32 : integer (tag = 1) に変換される.  \item Integer32 : integer (tag = 1) 紊.
 \item Cstring : 文字列 (type = 5) に変換される.  \item Cstring : 絖 (type = 5) 紊.
 \item ZZ : universalNumber (type = 15 ) に変換される.  \item ZZ : universalNumber (type = 15 ) 紊.
 \item QQ : rational (tag = 16 ) に変換される.  \item QQ : rational (tag = 16 ) 紊.
 \item List : array (tag = 6) に変換される.  \item List : array (tag = 6) 紊.
 \item Dpolynomial : 多項式 (tag = 9) に変換される.  \item Dpolynomial : 紊綣 (tag = 9) 紊.
 \end{enumerate}  \end{enumerate}
   
   
 \noroa{ {\tt SS475/memo1.txt} も見よ.}  \noroa{ {\tt SS475/memo1.txt} 荀.}
   
 注意: {\tt ReverseOutputOrder = 1} (標準)  羈: {\tt ReverseOutputOrder = 1} (罔羣)
 のとき, {\tt xn, ..., x0, dn, ..., d0} の順番で  , {\tt xn, ..., x0, dn, ..., d0}
 ({\tt show\_ring} の形式) Dpolynomial に変換される  ({\tt show\_ring} 綵√) Dpolynomial 紊
 (印刷形式だと,  (医桁就綣,
 {\tt xn} は {\tt e}, {\tt d0} は {\tt h},  {\tt xn} {\tt e}, {\tt d0} {\tt h},
 {\tt x0} は {\tt E}, {\tt dn} は {\tt H}).  {\tt x0} {\tt E}, {\tt dn} {\tt H}).
 たとえば,  ,
 {\tt ox\_send\_cmo(id,<<1,0,0,0,0,0>>)}  は,  {\tt ox\_send\_cmo(id,<<1,0,0,0,0,0>>)}  ,
 {\tt x2} に変換される.  {\tt x2} 紊.
 {\tt ox\_send\_cmo(id,<<0,0,1,0,0,0>>)}  は,  {\tt ox\_send\_cmo(id,<<0,0,1,0,0,0>>)}  ,
 {\tt x0} に変換される.  {\tt x0} 紊.
   
 {\tt OxVersion} 変数で openXM のプロトコルの version を表す.  {\tt OxVersion} 紊違 openXM 潟 version 茵.
   
 \subsubsection{ {\tt ox\_sm1} を用いたクライアントのテスト方法 }  \subsubsection{ {\tt ox\_sm1} ゃ≪潟鴻号 }
 まだかいてない.  障.
   
 \subsubsection{ {\tt Asir} を用いたサーバのテスト方法 }  \subsubsection{ {\tt Asir} 泣若鴻号 }
   
 \subsection{ 最小の TCP/IP クライアントの例 }  \subsection{ 絨 TCP/IP ゃ≪潟箴 }
   
 Java または M2 によるソースコードを掲載の予定.  Java 障 M2 純若鴻潟若イ莠篋絎.
   
 \subsection{ クライアント asir, sm1 }  \subsection{ ゃ≪潟 asir, sm1 }
   
 sm1 については, ox.sm1 , oxasir.sm1 がクライアントパッケージ.  sm1 ゃ, ox.sm1 , oxasir.sm1 ゃ≪潟宴若.
 {\tt ox}, {\tt ox\_asir}, {\tt ox\_sm1} の存在するパス,  {\tt ox}, {\tt ox\_asir}, {\tt ox\_sm1} 絖,
 および sm1 より呼び出すための asir の関数定義である   sm1 若喝冴 asir ∽医臂с
 {\tt oxasir.asir} のあるパスを  {\tt oxasir.asir} 鴻
 これらのパッケージに書き込んでおく必要がある.  宴若吾吾莨若с鏆荀.
   
 {\tt ox\_asir} は, {\tt asir} なる名前でよばれると  {\tt ox\_asir} , {\tt asir} с違
 asir として動作し, {\tt ox\_asir} なる名前でよばれると,  asir 篏, {\tt ox\_asir} с違,
 open XM サーバとして動作する.  open XM 泣若篏.
 {\tt /usr/local/lib/asir} または  {\tt /usr/local/lib/asir} 障
 {\tt ASIR\_LIBDIR} へ {\tt ox\_asir} 実体をおき,  {\tt ASIR\_LIBDIR} {\tt ox\_asir} 絎篏,
 {\tt ox\_launch} をおなじディレクトリへ {\tt ox\_asir} へのシンボリックリンク  {\tt ox\_launch} c {\tt ox\_asir} 吾激潟潟
 として作成する.  篏.
 コマンドサーチパスにあるディレクトリへ {\tt asir} を {\tt ox\_asir}  潟潟泣若鴻c {\tt asir} {\tt ox\_asir}
 へのシンボリックリンクとして作成する.  吾激潟潟篏.
 {\footnotesize  {\footnotesize
 \begin{verbatim}  \begin{verbatim}
   
Line 310  Copyright (C) FUJITSU LABORATORIES LIMITED.
Line 310  Copyright (C) FUJITSU LABORATORIES LIMITED.
 3 March 1994. All rights reserved.  3 March 1994. All rights reserved.
 0  0
 [324] ox_launch(0,"/usr/local/lib/asir/ox_asir");  [324] ox_launch(0,"/usr/local/lib/asir/ox_asir");
 1      <=== これがサーバの番号.  1      <=== 泣若.
 [326] ox_execute_string(1,"fctr(x^10-1);");  [326] ox_execute_string(1,"fctr(x^10-1);");
 0  0
 [327] ox_pop_local(1);  [327] ox_pop_local(1);
Line 323  Copyright (C) FUJITSU LABORATORIES LIMITED.
Line 323  Copyright (C) FUJITSU LABORATORIES LIMITED.
 0  0
 [331] ox_pop_local(1);  [331] ox_pop_local(1);
 [[1,1],[x^4-y*x^3+y^2*x^2-y^3*x+y^4,1],[x^4+y*x^3+y^2*x^2+y^3*x+y^4,1],[x+y,1],[x-y,1]]  [[1,1],[x^4-y*x^3+y^2*x^2-y^3*x+y^4,1],[x^4+y*x^3+y^2*x^2+y^3*x+y^4,1],[x+y,1],[x-y,1]]
 [332] ox_rpc(1,"fctr",x^1000-y^1000);   ox_cmo_rpc もあり.  [332] ox_rpc(1,"fctr",x^1000-y^1000);   ox_cmo_rpc .
 0  0
 [333] ox_flush(1);  [333] ox_flush(1);
 1  1
 [334] ox_pop_local(1);  [334] ox_pop_local(1);
 0  0
   
 ox_sync(1);   --- sync ball を送る.  ox_sync(1);   --- sync ball .
   
 \end{verbatim}}  \end{verbatim}}
   
 \subsection{開発中のサーバ, クランアント}  \subsection{坂賢泣若, 潟≪潟}
   
 Mathematica サーバ, クライアント : 小原.  Mathematica 泣若, ゃ≪潟 : 絨.
 Java クライアント, Open Math proxy : 田村.  Java ゃ≪潟, Open Math proxy : 井.
 Gnuplot サーバ, Macaulay 2 クライアント, サーバ,  Gnuplot 泣若, Macaulay 2 ゃ≪潟, 泣若,
 その他小さいソフト (Toric GB, Grobner fan)のサーバ,  篁絨純 (Toric GB, Grobner fan)泣若,
 Algebraic equation solver by numerical method: 高山.  Algebraic equation solver by numerical method: 蕭絮.
 Open Asir マニュアル, サンプル: 小原, 高山.  Open Asir ャ≪, 泣潟: 絨, 蕭絮.
   
 数学的におもしろい問題を実際にあつかってみないと  医馹絎ゃc帥
 わからない問題点もおおくあると思う.  馹鴻.
 現在, ${\cal A}$-超幾何関数の解のグラフ表示,  憜, ${\cal A}$-莇綛鞘∽違茹c違茵腓,
 パラメータ付積分のグラフ表示のソフトをかくことで  <若推腥違茵腓冴純
 さらに問題点をさぐることを  馹鴻
 計画している.  荐祉.
 グレブナdeformation による多項式解, 有理解の導出(線形および非線形方程式,  違deformation 紊綣頵, 茹c絨(膩綵≪渇膩綵∽合綣,
 非線形微分方程式から出発すると代数方程式を解く問題になる)  膩綵√小合綣榊冴篁f井合綣茹c馹)
 は OpenXM 的なプログラムのおもしろい練習問題.   OpenXM 違膩雁馹.
 Java の並列計算記述能力をつかって ox サーバを使うのもおもしろい.  Java 筝荐膊荐菴域遵ゃc ox 泣若篏帥.
   
 世界中の人につかってもらえる規格にするには  筝筝篋冴ゃc荀若
 まだまだ実験と経験をかさねないといけない.  障障絎薑腟薑.
 Free Mathematical Software Initiative を作るべきだろう.  Free Mathematical Software Initiative 篏鴻.
   
 \subsection{ Change log }  \subsection{ Change log }
 \begin{enumerate}  \begin{enumerate}
 \item 1997/11/20 : この document の最初の version が生まれた.  \item 1997/11/20 : document version 障.
   kxx/openxxx.tex なる名前であった.    kxx/openxxx.tex сc.
 \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 : h;憜綣, Mathcap, RecursivePolynomial,
 の形式を変えた. asir, sm1 に実装した. エラー処理のために,  綵√紊. asir, sm1 絎茖. 弱,
 dupErrors, getsp を SM コマンドに加えた.  dupErrors, getsp SM 潟潟.
 \end{enumerate}  \end{enumerate}
   
 \subsection{ }  \subsection{ }
 Java で sm1 サーバをすべて書いてみるか?  Java sm1 泣若鴻吾帥?
 */  */

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>