|
1.3.1 システム構成

Mathematicaシステムの基本構成
Mathematicaはモジュール型のシステム構成を取っている.計算を実行するカーネルと呼ばれるモジュールと,ユーザインターフェースをつかさどるフロントエンドと呼ばれるモジュールから構成される.
最もよく使われるフロントエンドはノートブックと呼ばれる対話形式で作成編集される文書に対応したものである.ノートブックを使うことで,Mathematicaの入出力に文章を加えたり,グラフィックスやパレットを含んだ文書を作成することが可能になる.ノートブックを現在進行形で計算を行うことはもとより,計算結果を発表用にまとめたり,出版用の論文を作成するために使ったりすることもできる.

Mathematicaの共通インターフェース
ノートブックフロントエンドには,ノートブック文書の作成,読込み,そしてカーネルと入出力のやり取りのために各種のメニューやグラフィカルなツールが提供される.
入出力の式に説明文とグラフィックスを加えたノートブックの例.

場合によっては,ノートブックフロントエンドは必要なく,カーネルと直接やり取りするだけで十分であろう.そのようなときはテキスト型インターフェースを使うとよい.キーボードで入力されたテキストがカーネルに直接送られる.
テキスト型インターフェースを使った入出力の例.
In[1]:= 2^100
Out[1]= 1267650600228229401496703205376
In[2]:= Integrate[1/(x^3 - 1), x]
1 + 2 x
ArcTan[-------] 2
Sqrt[3] Log[-1 + x] Log[1 + x + x ]
Out[2]= -(---------------) + ----------- - ---------------
Sqrt[3] 3 6
Mathematicaの重要な側面のひとつに,ユーザとの対話処理だけでなく他のプログラムとの対話ができることがある.これは主にMathLinkと呼ばれる,外部プログラムとMathematicaカーネルとの間の双方向通信のために標準化されたプロトコルによって行われる.
これはMathLinkプロトコルを使ったC言語記述の一部で,カーネルとの通信に使われる.
MLPutFunction(stdlink, "EvaluatePacket", 1);
MLPutFunction(stdlink, "Gamma", 2);
MLPutReal(stdlink, 2);
MLPutInteger(stdlink, n);
MLEndPacket(stdlink);
MLCheckFunction(stdlink, "ReturnPacket", &n);
MLGetReal(stdlink, &result);
MathLinkに互換なプログラムが数多く存在するが,中にはMathematicaの完全なフロントエンドとして動作するものもある.このようなフロントエンドはよく独自のユーザインターフェースを備えており,Mathematicaカーネルを組込み型の計算エンジンとして使うようになっている.読者がこのようにMathematicaを使うのであれば本節の残りの解説のいくつかは参考になるだろう.
|