はじめに

Mathematica からコード生成を行うには,Mathematica 言語で書かれたプログラムを別の言語に変換してから,そのプログラムが実行できるようにサポートする必要がある.Mathematica コンパイラは,C言語へのコード生成のシステムを提供する.

使用モードの一つにWolfram Libraryに従うCコードを作成するということがある.これはCコンパイラでコンパイルして Mathematica. にリンクさせることができる.CompileCompilationTargetオプションは"C"に設定されると,この方法を使う.CompilationTargetのチュートリアルにこれは詳しく記載されている.

もう一つの方法は,Mathematica の外部で使用できるCコードを生成する方法である.これは Mathematica 外部で実行されるので,コンパイラからの外部への呼出しはサポートされない.これはつまり,IntegrateNDSolve等の Mathematica を真に必要とする高レベルのMathematica 関数はサポートされないということである.逆に,コードがコンパイラで処理できる Mathematica 関数に基づくものである場合には,Mathematica の外部でも使用できるということである.これはCコードをサポートするために提供されるランタイムライブラリによって行う.

コード生成器を使う方法の一つにExportおよびExportStringを呼び出す方法がある.以下では Mathematica からCコードのフラグメントを作成する.これは共有ライブラリ内にコンパイルすることができる.

In[1]:=
Click for copyable input
Out[2]=

ExportはCファイルとCヘッダファイルの両方を返す.Cファイルの内容をチェックすることができる.

このコードを見ると,使用のために解決しなければならない問題がいくつかあることが分かる.WolframLibraryDataの作成等の関数実装を提供するライブラリがこれに含まれる.これらの問題についてはこのチュートリアルの別のセクションで詳しく説明する.

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