Simplified Wrapper and Interface Generator (SWIG) is a software
development tool for connecting C, C++ and Objective C programs with a
variety of high-level programming languages.
The list of supported languages also includes non-scripting languages such as C#, D, Go language, Java including Android, Lua, OCaml, Octave, Scilab and R.
Also several interpreted and compiled Scheme implementations (Guile, MzScheme/Racket) are supported.
SWIG is most commonly used to create high-level interpreted or compiled programming environments, user interfaces, and as a tool for testing and prototyping C/C++ software. On AIX, only the following languages are supported and tested (32 & 64bit): tcl, python3, perl5, lua, Java (64bit only).