XS (Perl)

редактировать

XS- это Perl интерфейс внешней функции, через который программа может вызывать подпрограмму C или C++ . XS или xsub - это сокращение от «eXternal Subroutine», где внешний относится к языкам программирования, внешним по отношению к Perl.

XS также относится к связующему языку для определения вызывающих интерфейсов, поддерживающих такие интерфейсы (см. Ниже).

Содержание
  • 1 Предпосылки
    • 1.1 Интерпретатор Perl
  • 2 Оболочки
  • 3 Создание XS-модуля
  • 4 Трудности
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
Предпосылки

Библиотеки подпрограмм в Perl называются модулями, а модули, содержащие xsub, называются модулями XS. Perl предоставляет основу для разработки, упаковки, распространения и установки модулей.

Может быть желательно, чтобы программа Perl вызывала подпрограмму C для обработки очень CPU или задач, интенсивно использующих память, для взаимодействия с оборудованием или низкоуровневые системные средства, или использовать существующие библиотеки подпрограмм C.

Интерпретатор Perl

Интерпретатор Perl - это программа на C, поэтому в принципе нет препятствий для вызова из Perl в C. Однако интерфейс XS сложен и очень технический, и его использование требует некоторого понимания интерпретатора. Самой ранней ссылкой на эту тему была perlguts POD.

Wrappers

. Можно писать модули XS, которые обертывают C ++ код. Это в основном вопрос настройки модуля build system.

Создание XS-модуля

Для создания XS-модуля сначала используется пустой модуль. Затем добавляются подпрограммы C, и вызывающие интерфейсы для подпрограмм C указываются на специальном связующем языке. Наконец, модуль скомпилирован, протестирован и установлен с помощью make.

После установки модуля XS его можно загрузить в программу Perl с помощью оператора use, как обычный Модуль Perl. После загрузки модуля подпрограммы C могут быть вызваны из кода Perl, как если бы они были написаны на Perl.

Трудности

XS-модули сложно писать и поддерживать, и они могут быть установлены только в том случае, если компилятор C и файлы заголовков, которые Интерпретатор Perl был скомпилирован. Кроме того, новые версии Perl могут нарушить двоичную совместимость, требуя перекомпиляции модулей XS.

См. Также
  • SWIG, альтернативу XS, которая также поддерживает вызов функций C и C ++ из нескольких других языков.
Ссылки
  • Jenness, Tim (2002). «Расширение и встраивание Perl». Гринвич: Manning Publications Co. ISBN 1-930110-82-0
Внешние ссылки
  • perlxs Интерфейс прикладного программирования Perl XS
  • perlxstut Учебник Perl XS
  • perlguts Внутренние функции Perl для тех, кто занимается расширениями
  • perlapi Листинг API Perl (автоматически создается)
  • Механика XS учебник
  • Perl и C ++ создание XS модули для C ++
  • xs-fun XS - это весело: простой и легкий учебник по написанию Perl XS
Последняя правка сделана 2021-06-22 06:45:46
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте