SWIG () — вільне програмне забезпечення для зв'язування програм та бібліотек, написаних на мовах C та C++, з інтерпретованими (Tcl, Perl, Python, Ruby, PHP) або компільованими (Java, C#, Scheme, OCaml) мовами. Головна мета: забезпечення можливості виклику функцій, написаних на одних мовах, з коду на інших мовах. Програміст створює файл .i з описом експортованих функцій; SWIG генерує вихідний код для склеювання C/C++ та потрібної мови, створює виконуваний файл. Вид виконуваного файлу залежить від вибраної мови: виконуваний файл з вбудованим інтерпретатором скриптової мови; бібліотека, функції C/C++ якої автоматично стають доступні з іншої мови; бібліотека функцій C/C++ та бібліотека функцій — обгорток над функціями C/C++ (наприклад, JNI для Java).

Рушії скриптових мов вбудовують у програми C/C++ з таких причин: швидкість розробки з використанням скриптової мови вища, ніж швидкість розробки на C/C++; користувачі отримують можливість автоматизації своїх дій завдяки сценаріям. Наприклад, в іграх сценарії використовуються для написання сюжету та рівнів; розробники отримують можливість автоматизації для тестування ПО на етапі розробки. Готове ПЗ може не включати скриптового рушія.

Причини створення бібліотек функцій C/C++, доступних інтерпретаторам інших мов: забезпечення функціональності, відсутньої в скриптових мовах; оптимізація найчастіше виконуваних ділянок коду для підвищення продуктивності.

SWIG написаний мовах С та C++, розповсюджується по ліцензії, подібній до BSD, з лютого 1996 року. ліцензія SWIG дозволяє використовувати, розповсюджувати та модифікувати код SWIG для комерційних та не комерційних цілей практично без обмежень.

Посилання

Офіційний сайт SWIG . Досліди зі SWIG'ом: C++ код та Ruby . SWIG та Python під Windows.

Література