グローバルなシステム情報
汎用性の高い
Mathematica 用プログラムを作成するにはグローバル(大域的)な環境設定の情報が必要になる.
例えば,プログラムから
NotebookWrite等の関数を呼び出す必要があるかどうかは,プログラムを実行するセッションがノートブック用フロントエンドで設けられたものかどうかを見極めた上でないと判断することができない.この場合,
$Notebooksを参照する.
ノートブック用フロントエンドの識別
Mathematica の機能は普通対話的に使う.しかし,バッチ処理的に使うことも可能で,その場合,入力はファイルから読み込まれ,出力はファイルに書き出される.バッチモードではユーザは対話的な入力を行うことはできない.
バッチモードによる入出力の識別
Mathematica カーネルもオペレーティングシステムの下で稼動するプロセスの1つである.オペレーティングシステム関連の大域変数がいくつか用意されているので,それらを参照することでプロセスの状況や動作環境の情報を取得することができる.
Mathematica カーネルプロセスに関連した変数
同時に進行される複数のセッションにおいて,同じ名前,例えば
x のような変数が使われるとき,各変数の値は必ずしも同じ値にしておきたくないかもしれない.そこで,セッションごとにオブジェクトを区別するため,
Mathematica では大域変数
$SessionIDが使われる.この変数には,開始時間,プロセス番号,そして,コンピュータの機種番号等に基づいて生成された現行セッションの識別番号が割り当てられている.カーネルのプロセスに使われるコンピュータが同一のものでも,セッションが別ならば,異なったセッション番号が与えられる.
Mathematica セッションの識別番号
どのバージョンの
Mathematica カーネルが使われているか等を調べるための大域変数も用意されている.例えばバージョン6というように,特定バージョンの機能に依存した形でプログラムが記述してある場合等では,バージョン情報が重要になる.使用中のカーネルのバージョンが対応するものかどうかを調べるには
$VersionNumberを参照する.
使用中のMathematica のバージョンを指定する変数
Mathematica の動作環境はオペレーティングシステムになるべく依存しない形で設定されている.それでも,
Mathematica の操作には直接関係ないオペレーティングシステム関連の情報にアクセスしたい場合も出てくる.
システム関連の情報
「Mathematicaファイルの読み書き」,
「MathLinkプログラムの移植性」で説明したが,オペレーティングシステム別の
Mathematica バージョンを保存するディレクトリには
$SystemIDの名前が与えられる.
$SystemIDの名前が同じコンピュータシステムは通常,バイナリレベルで互換である.
$OperatingSystemには,
"Windows"や
"Unix"等のオペレーティングシステムの名前が割り当てられる.使いたい外部プログラムがあるときは,あらかじめ
$OperatingSystemを参照しておき必要なプログラムがあるかどうかを確認しておくとよい.
入力を評価するのに使ったコンピュータシステムが何かを調べる.
| Out[1]= |  |
|
Mathematica を実行しているコンピュータに関する情報
| $LicenseID | Mathematica の使用を許可するライセンス契約番号 |
| $LicenseExpirationDate | ライセンス契約の切れる日付 |
| $NetworkLicense | ネットワークライセンスかどうかを識別するブール値 |
| $LicenseServer | ライセンスを行使する機械の名前 |
| $LicenseProcesses | ライセンスのもとで現在稼動中のカーネルプロセス数 |
| $MaxLicenseProcesses | ライセンス契約で許されている最大プロセス数 |
| $PasswordFile | カーネルが起動するときに使われるパスワードファイル |
ライセンス管理に関する変数