Pyrex (язык программирования)

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Pyrex
Тип язык программирования
Разработчик Greg Ewing
Написана на Python, C
Операционная система Cross-platform
Первый выпуск 3 апреля 2002; 22 года назад (2002-04-03)[1]
Последняя версия 0.9.9 (12 апреля 2010; 14 лет назад (2010-04-12))
Ссылки
Сайт cosc.canterbury.ac.nz/~g…

Pyrex — язык программирования, разработанный Greg Ewing[2] в 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[2].

См. также

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

Примечания

  1. greg at cosc. ANN: Pyrex - a language for writing Python extension modules (April 3, 2002). Дата обращения: 24 февраля 2014. Архивировано 20 сентября 2016 года.
  2. 2,0 2,1 Make Python run as fast as C with Psyco Архивная копия от 1 марта 2010 на Wayback Machine, 2002  (англ.) = Используйте Psyco, и Python будет работать так же быстро, как и С Архивная копия от 15 октября 2018 на Wayback Machine, 2007  (рус.)

Ссылки