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>