SWIG
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| 開発元 | SWIG developers |
|---|---|
| 最新版 | 2.0.9 / 2012年12月16日 |
| 対応OS | クロスプラットフォーム |
| ライセンス | GPL |
| 公式サイト | www.swig.org/ |
SWIG (Simplified Wrapper and Interface Generator) は、 C/C++ で書かれたプログラムやライブラリを、Tcl/Tk、Perl、Python、Ruby、PHP、Lua などのスクリプト言語や、Java、C#、Scheme、Ocaml などの言語に接続するためのオープンソースのツールである。
目次 |
SWIG の仕組み [編集]
SWIG の目的は、プログラムとスクリプト言語間の接続を最小限の作業で達成することである。ヘッダファイルにわずかな数の特殊なコマンドを記述すると、SWIG は C/C++ と対象の言語とを橋渡しするグルーコードを生成する。言語によって、グルーコードは以下の三つの形態となる。
- もともとのプログラムと同様に振舞うが、スクリプト言語のインタプリタが埋め込まれた実行ファイル
- 既存のインタプリタ何らかの拡張モジュールとしてリンクできるような共有ライブラリ
- 対象の言語でコンパイルされ、他のプログラムにリンクできる形態の共有ライブラリ(たとえば、Java において JNI を用いたもの)
用途 [編集]
既存の C/C++ プログラムにスクリプト言語のエンジンを埋め込むことは、大きく二つの用途がある。
- C/C++ ではなくスクリプト言語を用いることで、プログラムを手早くカスタマイズすることができる。ユーザーがスクリプトを書いてよくある仕事を自動化できるよう、スクリプトのエンジンはユーザーに公開しても良い。
- 最終的な製品がスクリプト言語のエンジンを含まなくても、テスト用のスクリプトを書くことは非常に役に立つ。
既存のインタプリタからロードできる動的なライブラリを作成する理由はいくつもある。
- スクリプト言語で等価なものがない C/C++ ライブラリに対してアクセスできる方法を提供する。
- まずスクリプト言語でプログラム全体を書き、性能解析後、パフォーマンスに決定的な部分のコードを C や C++ で書く。
歴史 [編集]
SWIG は C と C++ で書かれ、1996年2月から広く公開されている。最初の作者で主要な開発者であったのは、ロスアラモス国立研究所とユタ大学の大学院生でシカゴ大学で教員として働きながらSWIG を開発したDave Beazleyであった。現在の開発は活発なボランティアのグループによってサポートされている。SWIG はBSD型のライセンスでリリースされており、すなわち、使用、コピー、改変、再配布は商用でも非商用でも自由に行うことができる。
関連項目 [編集]
外部リンク [編集]
- Project home page
- SwigWiki - SWIG を使用する際の情報を収集したWiki
- Article "Expose Your C/C++ Program's Internal API with a Quick SWIG" by Victor Volkman
- Article "Python Extensions In C++ Using SWIG" by Michael Fotsch
- Citations from CiteSeer
- sKWash: the open source SWIG GUI
- Py++ - Boost.Python ライブラリのためのコードを生成するオブジェクト指向のフレームワーク