\documentclass{jarticle}

\begin{document}
\section{$B;HMQJ}(B}

Java $B%$%s%?%W%j%?$rF0:n$5$;$k$?$a$K(B,
$B4D6-JQ?t(B CLASSPATH $B$r@_Dj$9$k(B.
$B@_DjJ}K!$dCM$K$D$$$F$O(B, OS $B$d(B Java $B%$%s%?%W%j%?$K$h$j0[$J$k$N$G(B,
$B3F%$%s%?%W%j%?$N%^%K%e%"%k$r;2>H(B.
$B$J$*(B, OMproxy $B$rF0:n$5$;$k$?$a$K$O(B, $B%+%l%s%H%G%#%l%/%H%j$N(B
$B%/%i%9%U%!%$%k$b(B Java $B%$%s%?%W%j%?$,8+$D$1$i$l$k$h$&$K(B
$B$7$F$*$+$J$1$l$P$J$i$J$$(B.

\begin{verbatim}
% cd ${OpenXM_HOME}/lib/java-support
% java OMproxy
\end{verbatim}

%$B0J2<(B, $B%*%W%7%g%s$N@_Dj$K$D$$$F(B.




\section{$B%W%m%0%i%`$N9=@.(B}

OMproxy $B%5!<%P$O0J2<$N%/%i%9$+$i@.$k(B.
OMproxy $B%5!<%P$O(B OpenXM $B$G5,Dj$5$l$?%5!<%P$H$7$FF/$/$,(B,
$BB>$N(B OpenXM $B%5!<%P$H0c$$(B, $B%3%s%H%m!<%k%W%m%;%9$b(B
Java $B$GMQ0U$7$F$$$k(B.
$B$3$N$?$a(B, ox\_launch $B$J$I$N%W%m%0%i%`$r;H$&I,MW$O$J$$(B.

\begin{verbatim}
OMproxy.java
OM2OXM.java
JP/ac/kobe_u/math/tam/OpenXM/CMO.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_BIGFLOAT.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_DATUM.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_DISTRIBUTED_POLYNOMIAL.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_DMS.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_DMS_GENERIC.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_ERROR.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_ERROR2.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_INDETERMINATE.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_INT32.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_LIST.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_MATHCAP.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_MONOMIAL32.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_NULL.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_POLYNOMIAL_IN_ONE_VARIABLE.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_QQ.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_RATIONAL.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_RECURSIVE_POLYNOMIAL.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_STRING.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_TREE.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_ZERO.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_ZZ.java
JP/ac/kobe_u/math/tam/OpenXM/CMO_ZZ_OLD.java
JP/ac/kobe_u/math/tam/OpenXM/OpenXM.java
JP/ac/kobe_u/math/tam/OpenXM/OpenXMconnection.java
JP/ac/kobe_u/math/tam/OpenXM/SM.java
\end{verbatim}

OMproxy $B%/%i%9$O(B OMproxy $B%5!<%PK\BN$G$"$j(B,
$B%$%s%9%?%s%9$H$7$F%9%?%C%/$r;}$C$F$$$k(B.
$B%9%?%C%/%^%7%s$,AH$_9~$^$l$F$*$j(B,
run() $B%a%=%C%I$,(B OpenXM $B%5!<%P$N7W;;%W%m%;%9$H$7$FF0$/$h$&$K$J$C$F$$$k(B.

OM2OXM $B%/%i%9$O(B OpenXM $B$N(B CMO $B7A<0$H(B OpenMath $B$N(B XML $B7A<0$H$N(B
$B%G!<%?JQ49$r9T$J$&%/%i%9$G$"$k(B.
$B%/%i%9$H$7$FDj5A$7$F$$$k$,(B, $B8=:_$O%5%V%k!<%A%s$N=89g$H$7$F$7$+(B
$B07$C$F$$$J$$(B.
CMO2OM() $B%a%=%C%I$O(B CMO $B7A<0$+$i(B OpenMath XML $B7A<0$X$H(B
$BJQ49$r9T$J$&4X?t$G$"$k(B.
$B%5%V%k!<%A%s$H$7$F(B CMO2OM\_sub(), CMO2OM\_CoefficientOfRecursivePOLYNOMIAL() $B$r(B
$B;HMQ$7$F$$$k(B.
parse() $B%a%=%C%I$O(B OpenMath XML $B7A<0$+$i(B CMO $B7A<0$X$H(B
$BJQ49$r9T$J$&4X?t$G$"$k(B.
$B$3$NJQ49$r9T$J$&ItJ,$OBg$-$/J,$1$F;z6g2r@O$H9=J82r@O$N(B 2 $B$D$KJ,$1$i$l$k(B.
isSpace(), skipSpace(), pushbackLex(), readNextToken() $B%a%=%C%I$,(B
$B;z6g2r@O4o$K$"$?$kItJ,$G$"$j(B,
parse\_*() $B%a%=%C%I$,9=J82r@O$K$"$?$kItJ,$H$J$C$F$$$k(B.
parse\_*() $B$NL>A0$NIU$1J}$O(B OpenMath XML $BI=8=$GDj5A$5$l$F$$$k(B
BNF $B$r;29M$K$7$F$$$k$,(B, $B$^$C$?$/F1$8$H$$$&$o$1$K$O;j$C$F$$$J$$(B.
$B$J$*(B, main() $B5Z$S(B run() $B%a%=%C%I$O%G%P%C%0$N$?$a$K;H$C$F$$$k$b$N$G$"$j(B,
OMproxy $B%5!<%P$G$O;HMQ$7$F$$$J$$(B.

JP.ac.kobe\_u.math.tam.OpenXM.OpenXM $B%/%i%9$O(B OpenXM $B$G5,Dj$5$l$F$$$k(B
$B%W%m%H%3%k$N(B TCP/IP $B%(%s%3!<%G%#%s%0$K0MB8$7$?=hM}$r9T$J$&(B.
$B$7$+$7(B, $B8=CJ3,$G$O@Z$jJ,$1$,$O$C$-$j$G$-$F$$$J$$(B.
$B8=:_$N(B OpenXM $B%/%i%9$NLrL\$O(B,
$BB>$N(B OpenXM $B%5!<%P$N(B ox\_launch $B$K$"$F$O$^$k$h$&$K;W$($k(B.
OpenXM $B%/%i%9$G$O(B, $B%5!<%PMQ$N@\B3<j=g$r9T$J$$(B,
run() $B%a%=%C%I$K5-=R$5$l$?%3%s%H%m!<%k%W%m%;%9$rF0$+$9(B.

JP.ac.kobe\_u.math.tam.OpenXM.OpenXMconnection.java $B$O(B
TCP/IP $B%(%s%3!<%G%#%s%0$NDL?.O)$r%*%V%8%'%/%H$H$9$k(B.
CMO $B$d(B SM $B%/%i%9(B($B8e=R(B)$B$N%*%V%8%'%/%H$rAw<u?.$9$k%a%=%C%I$,MQ0U$5$l$F$$$k(B.
OpenXMconnection $B%/%i%9$N%*%V%8%'%/%H$O(B
$B%3%s%H%m!<%k%W%m%;%9MQ$H7W;;%W%m%;%9MQ$N(B 2 $B$D@8@.$5$l$k(B.

$B0J2<$N(B CMO $B%/%i%95Z$S(B SM $B%/%i%9$N%9!<%Q!<%/%i%9$O(B java.lang.Object $B$G$"$k(B.
java.lang.Object $B$H$OJL$N(B, $B6&DL$N%9!<%Q!<%/%i%9$rMQ$$$?J}$,$h$$$H9M$($F$$$k$,(B,
$B8=CJ3,$N<BAu$G$O$=$3$^$G$K;j$C$F$$$J$$(B.

JP.ac.kobe\_u.math.tam.OpenXM.CMO $B$O(B
CMO $B$r%*%V%8%'%/%H$H$9$kCj>]%/%i%9$G$"$k(B.

JP.ac.kobe\_u.math.tam.OpenXM.CMO\_* $B$O(B CMO $B%/%i%9$N(B
$B%5%V%/%i%9$H$J$C$F$*$j(B, $B$=$l$>$l(B CMO $B7A<0$NCf$N(B 1 $B<oN`$N(B
$B7A<0$r%*%V%8%'%/%H$H$9$k(B. CMO $B%/%i%9$GDj5A$5$l$F$$$k%a%=%C%I$O(B
$B3F%5%V%/%i%9$G$b6&DL$G$"$k$,(B, $B3F%/%i%9$N%*%V%8%'%/%H$r@8@.$9$kJ}K!$d(B,
$B%*%V%8%'%/%H$N<h$j=P$7J}$O$^$C$?$/E}0l@-$,$H$l$F$$$J$$(B.

JP/ac/kobe\_u/math/tam/OpenXM/SM $B%/%i%9$O(B SM $B%3!<%I$r(B
$B%*%V%8%'%/%H$H$9$k%/%i%9$G$"$k(B.

OMproxy $B%5!<%P$N%W%m%0%i%`$NN.$l$O0J2<$G$"$k(B.
OMproxy $B%/%i%9$O5/F08e(B, $B$9$0$K(B OpenXM $B%/%i%9$N%*%V%8%'%/%H$r@8@.$9$k(B.
OpenXM $B%/%i%9$G$O(B OpenXMconnection $B$r@8@.$7(B, $B%/%i%$%"%s%H$+$i$N(B
$B%3%s%H%m!<%k%W%m%;%9$X$N@\B3MW5a$rBT$D(B.
$B%3%s%H%m!<%k%W%m%;%9MQ$N@\B3$,3NN)$7$?8e(B, $B$b$&(B 1 $B$D(B OpenXMconnection $B$r@8@.$7(B,
$B:#EY$O7W;;%W%m%;%9$X$N@\B3MW5a$rBT$D(B.
2 $B$D$NDL?.O)$,@\B3$5$l$k$H(B,
$B%3%s%H%m!<%k%W%m%;%9(B(OpenXM $B%/%i%9Fb$N(B run() $B%a%=%C%I(B)$B$N%9%l%C%I$rN)$A>e$2$k(B.
$B$5$i$K(B, $B%3%s%H%m!<%k%W%m%;%9$O7W;;%W%m%;%9(B(OMproxy $B%/%i%9$N(B run() $B%a%=%C%I(B)$B$N(B
$B%9%l%C%I$rN)$A>e$2$k(B.
$B7W;;%W%m%;%9$X$N3d$j9~$_$d=*N;$J$I$O(B OpenXM $B%/%i%9Fb$N(B
$B%3%s%H%m!<%k%W%m%;%9$+$i9T$J$o$l$k(B.

\end{document}
