SWIG Publisher's description
SWIG was designed to be an interface compiler that will connect programs written in C and C++ with scripting languages such as Perl, Python, Ruby, and Tcl. It works by taking the declarations found in C/C++ header files and using them to generate the wrapper code that scripting languages need to access the underlying C/C++ code. In addition, SWIG provides a variety of customization features that let you tailor the wrapping process to suit your application.
SWIG is used in a number of ways:
Building more powerful C/C++ programs. Using SWIG, you can replace the main() function of a C program with a scripting interpreter from which you can control the application. This adds quite a lot of flexibility and makes the program "programmable." That is, the scripting interface allows users and developers to easily modifiy the behavior of the program without having to modify low-level C/C++ code. The benefits of this are numerous. In fact think of all of the large software packages that you use every day---nearly all of them include special a macro language, configuration language, or even a scripting engine that allows users to make customizations.
Rapid prototyping and debugging. SWIG allows C/C++ programs to be placed in a scripting environment that can be used for testing and debugging. For example, you might test a library with a collection of scripts or use the scripting interpreter as an interactive debugger. Since SWIG requires no modifications to the underlying C/C++ code, it can be used even if the final product does not rely upon scripting.
Systems integration. Scripting languages work fairly well for controlling and gluing loosely-coupled software components together. With SWIG, different C/C++ programs can be turned into scripting language extension modules. These modules can then be combined together to create new and interesting applications.
Construction of scripting language extension modules. SWIG can be used to turn common C/C++ libraries into components for use in popular scripting languages. Of course, you will still want to make sure that no-one else has already created a module before doing this.
SWIG is sometimes compared to interface definition language (IDL) compilers such as those you find with systems such as CORBA and COM. Although there are a few similarities, the whole point of SWIG is to make it so you don't have to add an extra layer of IDL specifications to your application.
What's New in This Release:В· This is mainly a Python oriented release including support for Python built-in types for superior performance with the new -builtin option. The -builtin option is especially suitable for performance-critical libraries and applications that call wrapped methods repeatedly. See the python-specific chapter of the SWIG manual for more info. - Python 3.2 support has also been added and various Python bugs have been fixed. - Octave 3.4 support has also been added. - There are also the usual minor generic improvements, as well as bug fixes and enhancements for D, Guile, Lua, Octave, Perl and Tcl.
System Requirements:?пїЅ SWIG is implemented in C and C++ and is distributed in source form. You will need a working C++ compiler (e.g. g++) to build SWIG and at least one of the supported scripting languages to use it (or else it isn't going to be very useful). SWIG does not depend upon any of the supported scripting languages for its own compilation. Finally, although SWIG is partly written in C++, a C++ compiler is not required to use SWIG--it works just fine with both ANSI C and C++.
Here are some key features of "SWIG":
?пїЅ Code Generation
?пїЅ ANSI C
?пїЅ ANSI C++
?пїЅ Customizated type conversion/marshaling.
?пїЅ Exception handling.
?пїЅ Class/structure extension.
?пїЅ Memory management.
?пїЅ Ambiguity resolution.
?пїЅ Template instantiation.
?пїЅ File import and cross-module linking.
?пїЅ Code inclusion, helper function support.
?пїЅ Extensive diagnostics (error/warning messages including fine grained warning suppression).
?пїЅ Extended SWIG macro handling.
Program Release Status: Major Update
Program Install Support: Install and Uninstall