version 1.3, 2000/10/12 00:14:51 |
version 1.4, 2020/03/14 01:21:56 |
|
|
%% $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]$ |
|
|
|
|
|
|
\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 泣若鴻吾帥? |
*/ |
*/ |