SWIG

SWIG
ТипІнструмент для розробки
АвторDavid M. Beazleyd
РозробникиСпільнота
Перший випуск1996 рік
Стабільний випуск2.0.10 (27 травня 2013)
Операційна системаPOSIX, MS Windows
Мова програмуванняC, C++
Інтерфейс користувачаКомандний рядок
ЛіцензіяЛіцензія в стилі BSD
Репозиторійgithub.com/swig/swig
Вебсайтswig.org

SWIG (англ. simplified wrapper and interface generator) — вільне програмне забезпечення для зв'язування програм та бібліотек, написаних на мовах 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.