SWIG was a successful participant of Google Summer of Code in 2008, 2009, 2012. SWIG has been released under a GNU General Public License. Development is currently supported by an active group of volunteers led by William Fulton. Beazley who developed SWIG while working as a graduate student at Los Alamos National Laboratory and the University of Utah and while on the faculty at the University of Chicago. The initial author and main developer was David M. SWIG is written in C and C++ and has been publicly available since February 1996. Write the whole program in the scripting language first, and after profiling, rewrite performance-critical code in C or C++.Provide access to a C/C++ library which has no equivalent in the scripting language.There are several reasons to create dynamic libraries that can be loaded into extant interpreters, including: Even if the final product is not to contain the scripting engine, it may nevertheless be very useful for writing test scripts.The scripting engine may even be exposed to the end-user, so that they can automate common tasks by writing scripts. The program can then be customized far faster, via a scripting language instead of C/C++.There are two main reasons to embed a scripting engine in an existing C/C++ program: strcmp ( 'Dave', 'Mike' ) -1 > print ( example. For example, consider the following interface file: SWIG wraps simple C declarations by creating an interface that closely matches the way in which the declarations would be used in a C program. SWIG is not used for calling interpreted functions by native code this must be done by the programmer manually. a shared library that can be linked to other programs compiled in the target language (for example, using Java Native Interface (JNI) in Java).a shared library that an extant interpreter can link to as some form of extension module, or.Depending on the language, this glue comes in two forms: The SWIG tool creates source code that provides the glue between C/C++ and the target language. SWIG will generate conversion code for functions with simple arguments conversion code for complex types of arguments must be written by the programmer. SWIG will compile the interface file and generate code in regular C/C++ and the target programming language. The programmer writes an interface file containing a list of C/C++ functions to be made visible to an interpreter. The aim is to allow the calling of native functions (that were written in C or C++) by other programming languages, passing complex data types to those functions, keeping memory from being inappropriately freed, inheriting object classes across languages, etc.