SWIG

SWIG (Simplified Wrapper and Interface Generator) は、C/C++ で書かれたプログラムやライブラリを、Tcl/Tk、Perl、Python、Ruby、PHP、Luaなどのスクリプト言語や、Java、C#、Common Lisp、Scheme、OCamlなどのプログラミング言語に接続するためのオープンソースのツールである。
仕組み.
SWIGの目的は、プログラムとスクリプト言語間の接続を最小限の作業で達成することである。ヘッダファイルにわずかな数の特殊なコマンドを記述すると、SWIGはC/C++と対象の言語とを橋渡しするグルーコードを生成する。言語によって、グルーコードは以下の三つの形態となる。
用途.
既存のC/C++プログラムにスクリプト言語のエンジンを埋め込むことは、大きく二つの用途がある。
既存のインタプリタからロードできる動的なライブラリを作成する理由はいくつもある。
歴史.
SWIGはCとC++で書かれ、1996年2月から広く公開されている。最初の作者で主要な開発者であったのは、ロスアラモス国立研究所とユタ大学の大学院生でシカゴ大学で教員として働きながらSWIGを開発したDave Beazleyであった。現在の開発は活発なボランティアのグループによってサポートされている。SWIG はGPL（2010年6月にリリースされたver2.0.00より前はBSD型のライセンス）でリリースされており、すなわち、使用、コピー、改変、再配布は商用でも非商用でもGPLに基づいてソースコードを配布する限りにおいて自由に行うことができる。