Русская Википедия:Pyrex (язык программирования)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Карточка программы Pyrex — язык программирования, разработанный Greg Ewing[1] в 2002 году в целях упрощения создания модулей для Python. Его синтаксис очень близок к Python, что упрощает использование Python-программистами для создания связующего кода. Позже Pyrex стал основой для Cython.

Ограничения Python

Сам Python предоставляет API-интерфейс для языка Си для написания модулей расширения. Такие модули содержат функции и типы данных из языка Си, к которым также возможен доступ из Python. Также возможно создать «обертки» для функций и типов данных из существующих Си библиотек, чтобы предоставить доступ к ним как к объектам языка Python.

Другие инструменты

Существуют инструменты, например SWIG и библиотека Python "ctypes" (библиотека иностранных функций — foreign fuction library), которые могут использоваться для решения задачи создания межъязыковых интерфейсов, не требуя написания больших объёмов дополнительного кода. Однако их применение ограничивается экспортом набора функций внешней библиотеки для доступа из Python приложений. Если же необходимы корректировки интерфейсах, требуется ручное изготовление конвертирующего кода. Для упрощения этой задачи можно применять Pyrex.

Возможности Pyrex

Pyrex позволяет программисту описывать модули расширения на Python-подобном языке, который может напрямую работать с внешним кодом на языке Си. Сходство синтаксиса Pyrex с Python упрощает создание кода, так как программисту не требуется изучать или знать другой язык (Си или C++) или реализовывать новые Си-интерфейсы. Pyrex может использовать заголовочные файлы на языке Си, типы и значения типов-перечислений, типы данных и структуры, функции. Программист на Pyrex работает с этими элементами в том же синтаксисе, как если бы они являлись Python объектами. Затем Pyrex компилятор генерирует весь необходимый промежуточный (glue) код автоматически и преобразует Pyrex приложение в готовый к использованию модуль Python[1].

См. также

  • Cython — производная от Pyrex.

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Python