Scientific programmers building large systems sometimes use scripting languages to glue together parts of their applications, most of which are written in a batch language, like C. The author and his team contend that writing interfaces for scripting languages is too difficult, and that one should instead learn to use their simplified wrapper and interface generator (SWIG) to write interface wrappers. SWIG supports nine languages: Guile, Java, Mzscheme, objective cellular automata modeling language (OCAML), Perl/PHP, C#, Python, Ruby, and Tcl.
Compared to the more specific single-language script-building tools often available, SWIG appears to be more ambitious, especially with respect to type information. It also appears to be fairly complicated to use.
This paper provides a mini-manual for SWIG, along with some detailed examples of how wrappers may be constructed from declarations.