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

Annotation of OpenXM/doc/OpenXM-specs/introduction.tex, Revision 1.1.1.1

1.1       noro        1: %% $OpenXM$
                      2: //&jp \section{はじめに}
                      3: //&eg \section{Introduction} (This part has not been translated)
                      4:
                      5: /*&jp
                      6: Open XM は, おなじタイプまたは異なるタイプの数学プロセス間の
                      7: メッセージのやりとりの規約である.
                      8: 開発の動機は, 手作り(または研究的な)数学ソフトの相互乗り入れの実現
                      9: および分散計算の実装が
                     10: 第一であったが, もちろん数学ソフト間だけでなく, ワープロソフトや,
                     11: インタラクティブな数学本,
                     12: さらには数学デジタル博物館用のソフトがこの規約に従い,
                     13: 数学ソフトを呼び出すことなどにも利用できる.
                     14: 当面の目標は openXM 数学ソフトパッケージを作ることである.
                     15: これはさまざまな数学ソフトを一つのパッケージとして
                     16: 簡単に好きな言語より使えるようにするプロジェクトである.
                     17: 現在 openXM.tar.gz には,
                     18: asir, sm1, phc, gnuplot, tigers が入っている.
                     19: OpenXM 数学ソフトパッケージプロジェクトに
                     20: 参加できるように CMO の
                     21: 規約を拡張していくための規約も定めるものとする.
                     22:
                     23: 現在専門的な数学ソフトが多数開発
                     24: されているが, 次世代の数学ソフトは他のソフトよりサブルーチンとして
                     25: 呼び出せる機能をもつべきである.
                     26: このように協調機能にすぐれたプログラムを書くための設計の
                     27: ガイドライン, プログラム作法のようなものを提案するのも,
                     28: このプロジェクトの目的である.
                     29: このようなガイドラインにそってプログラムすることにより,
                     30: 数学アルゴリズム自体に集中できる環境が実現できることを
                     31: 期待している.
                     32:
                     33: 設計の方針として, (1) 単純 (2) 拡張性 (3) 実装の簡便さ (4) 実用性
                     34: (5) 高信頼性(robustness),
                     35: に重きをおいている.
                     36: Open XM はなにも考えずに簡単に接続できるシステムを作ろう,
                     37: というまで野心的ではない.
                     38: 数学的な object は一筋縄ではいかないし, 完全な統一規格をつくるというのは
                     39: 気が遠くなる仕事である.
                     40: そのかわり, 今よりすこしだけこういったデータ交換や分散システム構築の仕事を楽に
                     41: したいというのがささやかな第1目標である.
                     42:
                     43: 数学的な Object をどのように表現するのか, どう伝えるのかを考えることは
                     44: 決してつまらない問題ではない.
                     45: このような問題は, 新しい数学記号を創造する問題と似ているかもしれない.
                     46: 我々は, 数字を $0$ を含んだ10進数で表記し,
                     47: 微分を $dx$ と書き, 写像を $ \longrightarrow $ であらわす.
                     48: これらの記号法からどれだけ多くの利益を得ているか, 思いをはせて欲しい.
                     49: また, Mathematica や Maple といった巨大な統合ソフトを,
                     50: Free Mathematical Softwares としてわれわれ自身の
                     51: 手でつくっていくための基礎でもある.
                     52:
                     53: %% 変数名をどうするか悩むのにも似てる.
                     54:
                     55: Open XM に準拠したシステム xxx を, open xxx とよぶ.
                     56: たとえば, open XM 対応の asir は open asir であり,
                     57: open XM 対応の kan/sm1 は open sm1 である.
                     58:
                     59: Open XM は, データ型をきめている部分と,
                     60: 共通スタック言語を定めている部分にわかれる.
                     61: よいたとえかどうか自信がないが,
                     62: Open XM を定義する作業は, unicode を定める作業に似ている部分もある.
                     63: たとえば, 漢字は東アジアで共通に使用されているが, 国や地方単位で
                     64: 形がすこしづつ違うものがある.
                     65: unicode では, 似た漢字を同じ code におしこんだ.
                     66: Open XM でも, システム毎にことなるが似ているデータ型を
                     67: 同じ型としてあつかう.
                     68: たとえば, ``分散多項式'' の意味は, asir と kan/sm1 で異なるが,
                     69: Open XM では, 同じ型としてあつかわれる.
                     70: ただしこれでは不十分な場合があるので,システム固有のデータ型も扱える
                     71: ような仕組みも用意している.
                     72: (さっきのたとえでは, こちらは, unicode でなく, ISO の文字符号系に対応するか.)
                     73: 共通スタック言語は, ごく小数の共通コマンドをのぞき
                     74: 基本的にシステム毎に固有の関数により実行される.
                     75: これにより, open xxx のサーバの実装およびマニュアルの記述は
                     76: いちじるしく簡単になる.
                     77: システム毎に固有の関数を共通の関数名にするプロジェクトも
                     78: 考えているが, 共通の関数名は OpenMath のものを利用する予定である.
                     79:
                     80: Open XM は論理的には
                     81: OX 層, SM 層, CMO 層にわかれる.
                     82: OX Object は, データ, コマンドに大別できる.
                     83: データはこのプロジェクトのオリジナルのデータ形式
                     84: である CMO (Common Mathematical Object Format) で
                     85: 送出してもよいし, MP や Open MATH などの形式を用いてもよい.
                     86: SM 層は (スタックマシン)サーバを制御するための命令の
                     87: あつまりであり, サーバは非同期的に動作させることが可能である.
                     88: 柔軟性が高いので, IMC などのリモートプロシージャコール系の
                     89: プロトコルもエミュレートできる.
                     90: */
                     91:
                     92:
                     93:

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