SWIG(Simplified Wrapper and Interface Generator) is a software development tool, an interface compiler that connects programs written in C and C++ with a variety of scripting languages such as Perl, Python, Ruby, and Tcl and also non-scripting languages such as C#, Common Lisp (CLISP, Allegro CL, CFFI, UFFI), Java, Lua, Modula-3, OCAML and R.. "Scripts" are often treated as distinct from programs which execute independently from any other application.