SWIG
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).
Тип | Інструмент для розробки |
---|---|
Розробники | Сообщество |
Перший випуск | 1996 рік |
Стабільний випуск | 2.0.10 (27 травня 2013) |
Версії | 4.0.2 (8 червня 2020)[1] |
Репозиторій | github.com/swig/swig |
Операційна система | POSIX, MS Windows |
Мова програмування | C, C++ |
Інтерфейс користувача | Командная строка |
Ліцензія | Ліцензія в стилі BSD |
Вебсайт | swig.org |
Двигуни скриптових мов вбудовують в програми 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.
- Onur Cinar. Pro Android C++ with the NDK Paperback. — Apress, 2012. — 416 с. — ISBN 978-1430248279.
- Release rel-4.0.2 — 2020.