Herramienta de desarrollo de software
El generador de interfaces y envoltorios simplificados, o SWIG, traduce archivos C/C++ a varios lenguajes de programación de alto nivel. Su uso es para crear interfaces y entornos de usuario y probar prototipos de programas.
SWIG funciona con lenguajes de programación con y sin script. Generará automáticamente wrappers para programas en varios formatos, incluyendo Java y Javascript, Ruby, Python y Octave.
Compatibilidad completa
Sin embargo, no cubre todos los lenguajes, especialmente los de programación orientada a objetos. Tendrás que utilizar Valabind para convertir las abstracciones .vapi y .vala en C++.
Funciones
SWIG es de uso gratuito y crea un código fuente que sirve de conexión entre el lenguaje de destino y C. El código es siempre una librería compartida, pero se presenta de dos formas, dependiendo del lenguaje en cuestión.
La diferencia es que una librería puede enlazarse con un módulo externo, mientras que la otra se enlaza directamente con otros programas del lenguaje de destino.
Este programa te da el control sobre la mayoría de los aspectos del proceso de generación del wrapper. Algunas de las características más destacadas para que usted pueda personalizar en el programa incluyen el manejo de excepciones, la resolución de ambigüedades y la gestión de la memoria. También tiene acceso a amplias opciones de diagnóstico.
El uso de SWIG facilita la personalización de la aplicación y la prueba de varios scripts que incluirá en el programa terminado. Puede crear código para proyectos comerciales y no comerciales bajo la licencia Gnu.
Entrada y salida
Después de lanzar el programa, éste esperará archivos con declaraciones ANSI C/C++ y directivas SWIG como entrada. Reconocerá estos archivos por sus sufijos .i o .swg.
SWIG genera un archivo C/C++ que contiene todo el código de envoltura necesario para construir un módulo de extensión para su lenguaje de destino. Dependiendo del que elijas, podría generar datos adicionales.
No necesitarás editar el archivo de salida, sino sólo compilarlo y añadirlo a tu biblioteca compartida de C/C++.
Útil para profesionales
SWIG facilita la personalización de los programas, automatizando gran parte del proceso. Aunque el producto final no contenga un motor de scripting, es útil para escribir scripts de prueba. Requerirá algunos conocimientos en la materia, pero para los programadores, esta herramienta es inestimable.