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