Генератор интегрирующего программного кода SWIG

generator integrirujushhego programmnogo koda swig Интеграция Python/C

Как вы уже наверняка поняли, программирование расширений на C вручную может превратиться в довольно сложную задачу (это практически неизбежно при программировании на языке C). Я показал основы расширений C в этой главе, чтобы вам стала понятна лежащая в основе структура. Но сегодня расширения C обычно лучше и проще реализуются с помощью инструмента, генерирующего весь необходимый связующий интегрирующий программный код автоматически. В мире Python существует множество таких инструментов, включая SIP, SWIG и Boost.Python. Мы рассмотрим эти альтернативы в конце данной главы. Входящая в перечень система SWIG широко используется разработчиками Python.

SWIG — Simplified Wrapper and Interface Generator (упрощенный генератор оболочек и интерфейсов) — является системой с открытыми исходными текстами. Первоначально она была создана Дэйвом Бизли (Dave Beazley), а теперь разрабатывается сообществом, как и сам Python. Она использует объявления типов C и C++ для генерации законченных модулей расширения C, интегрирующих существующие библиотеки для использования в сценариях Python. Генерируемые модули расширения на C (и C++) являются законченными: они автоматически осуществляют преобразование данных, поддерживают протоколы ошибок, управляют счетчиками ссылок и прочее.

То есть SWIG автоматически генерирует весь связующий программный код, необходимый для подключения компонентов C и C++ к программам Python, — просто запустите SWIG, скомпилируйте полученный от него результат и вы получите готовое к работе расширение. Вам остается только разобраться с деталями компиляции и компоновки, а остальную часть работы, связанной с созданием расширения на C, выполнит SWIG.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий