SWIG
(
англ.
s
implified
w
rapper and
i
nterface
g
enerator
) ?
в?льне
програмне забезпечення для зв'язування
програм
та
б?бл?отек
, написаних на мовах
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 для комерц?йних та не комерц?йних ц?лей практично без обмежень.
- Hans Petter Langtangen
. Python scripting for computational science. ? Springer, 2008. ? 750 с. ?
ISBN 9783540739159
.