MathLink

高度なレベルで外部プログラムと双方向通信し,構造化されたデータが交換できると便利なことがよくある.

一部のコンピュータシステムを除き,Mathematica は,MathLink と呼ばれる,高次レベルで外部プログラムとのコミュニケーションを図るための通信規格をサポートしている.MathLink を使うには,特殊なソースコードと MathLink ライブラリが組み込まれていなければならない.このどちらも,通常 Mathematica に標準装備されている.

MathLink を使えば,外部プログラムから Mathematica を呼び出したり,逆に Mathematica から外部プログラムを呼び出したりすることが可能になる.なお,MathLink の詳細はMathLink と外部プログラムの通信」を参照してほしい.MathLink でリンクさせることで,Mathematica をあたかも外部プログラムに組み込まれたサブルーチンのように使うこともできる.さらに,自前のユーザインターフェースを備えたフロントエンドを作成し,MathLink を介して,それと Mathematica カーネルをリンクさせることも可能である.

また,MathLink を使うことで,ユーザが作成した外部プログラムの個々の関数を Mathematica から呼び出すことも可能になる.これを行うには,MathLink と外部プログラムの通信」で詳しく説明するが,MathLink テンプレートと呼ばれるファイルをもとに,どうしたら Mathematica の関数がユーザのプログラムにある関数を呼び出すことができるかを指定する必要がある.MathLink テンプレートファイルを使うことで,ユーザのプログラムに組み込むためのリンク用ソースコードを生成することができる.こうして作られたプログラムを起動すると,自動的に適切な Mathematica の定義が生成される.そして,Mathematica の特定な関数が参照されると,ユーザのプログラムにあるコードが自動的に実行される,という仕組みになっている.

Install["command"]外部プログラムを起動し,外部プログラムの関数を呼び出すための Mathematica の定義をインストールする
Uninstall[link]外部プログラムとのリンクを停止し,インストールされた定義を消去する

外部プログラムのリンク制御

このコマンドを実行すると,外部プログラムが起動し関数呼出しのための Mathematica の定義がインストールされる.
In[1]:=
Click for copyable input
Out[1]=
リンク先プログラムにある関数の呼出しのために Mathematica にインストールされた関数に関して,その使い方を問い合せる.
関数を呼び出すと,外部プログラムのコードが実行される.
In[3]:=
Click for copyable input
Out[3]=
プログラムを終了させる.
In[4]:=
Click for copyable input
Out[4]=

MathLink を使って Mathematica 自身を含むさまざまなタイプのプログラムと接続することができる.MathLink ライブラリには各種の一般的なプログラミング言語に対応するさまざまなバージョンがある.J/Link システムは MathLink に基づいて Mathematica とJavaを統合する標準的な方法を提供する.J/Link を使うとどのJavaクラスでも取ることができ,即座にそのメソッドに Mathematica の関数としてアクセスできるようになる.

New to Mathematica? Find your learning path »
Have a question? Ask support »