|
2.14.5 発展:グローバルなシステム情報
汎用性の高いMathematica用プログラムを作成するにはグローバル(大域的)な環境設定の情報が必要になる.
例えば,プログラムからNotebookWrite等の関数を呼び出す必要があるかどうかは,プログラムを実行するセッションがノートブック用フロントエンドで設けられたものかどうかを見極めた上でないと判断することができない.この場合,$Notebooksを参照する.

ノートブック用フロントエンドの識別
Mathematicaの機能は普通対話的に使う.しかし,バッチ処理的に使うことも可能で,その場合,入力はファイルから読み込まれ,出力はファイルに書き出される.バッチモードではユーザは対話的な入力を行うことはできない.

バッチモードによる入出力の識別
Mathematicaカーネルもオペレーティングシステムの下で稼動するプロセスの1つである.オペレー ティングシステム関連の大域変数がいくつか用意されているので,それらを参照することでプロセスの状況や動作環境の情報を取得することができる.

カーネルプロセスに関連した変数
同時に進行される複数のセッションにおいて,同じ名前,例えばxのような変数が使われるとき,各変数の値は必ずしも同じ値にしておきたくないかもしれない.そこで,セッションごとにオブジェクトを区別す るため,Mathematicaでは大域変数$SessionIDが使われる.この変数には,開始時間,プロセス番号,そして,コンピュータの機種番号等に基づいて生成された現行セッションの識別番号が割り当てられている.カーネルのプロセスに使われるコンピュータが同一のものでも,セッションが別ならば,異なったセッション番号が与えられる.

Mathematicaセッションの識別番号
どのバージョンのMathematicaカーネルが使われているか等を調べるための大域変数も用意されている.特定バージョンの機能に依存した形でプログラムが記述してある場合等では,バージョン情報が重要になる.使用中のカーネルのバージョンが対応するものかどうかを調べるには$VersionNumberを参照 する.

カーネルのバージョン情報
Mathematicaの動作環境はオペレーティングシステムになるべく依存しない形で設定されている.それでも,Mathematicaの操作には直接関係ないオペレーティングシステム関連の情報にアクセスしたい場合もでてくる.

システム関連の情報
2.12.1,2.13.5で説明したが,オペレーティングシステム別のMathematicaバージョンを保存するディレクトリには$SystemIDの名前が与えられる.$SystemIDの名前が同じコンピュータシステムは通常,バイナリレベルで互換である.
$OperatingSystemには,UnixやMacintoshオペレーティングシステム等のオペレーティングシステムの名前が割り当てられる.使いたい外部プログラムがあるときは,あらかじめ$OperatingSystemを参照しておき必要なプログラムがあるかどうかを確認しておくとよい.
本文中の式の例を生成するのに使ったコンピュータシステムが何かを調べる.
In[1]:= {$System, $ProcessorType, $OperatingSystem}
Out[1]= 

カーネルを実行しているコンピュータに関する情報

ライセンス管理に関する変数
|