Pyrex (язык программирования) (Pyrex (x[dt hjkijgbbnjkfgunx))
Pyrex | |
---|---|
Тип | язык программирования |
Разработчик | Greg Ewing |
Написана на | Python, C |
Операционная система | Cross-platform |
Первый выпуск | 3 апреля 2002[1] |
Последняя версия | 0.9.9 (12 апреля 2010 ) |
Сайт | cosc.canterbury.ac.nz/~greg/python/Pyrex/ |
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.
Примечания
[править | править код]- ↑ greg at cosc. ANN: Pyrex - a language for writing Python extension modules (апрель 2002). Дата обращения: 24 февраля 2014. Архивировано 20 сентября 2016 года.
- ↑ 1 2 Make Python run as fast as C with Psyco Архивная копия от 1 марта 2010 на Wayback Machine, 2002 (англ.) = Используйте Psyco, и Python будет работать так же быстро, как и С Архивная копия от 15 октября 2018 на Wayback Machine, 2007 (рус.)
Ссылки
[править | править код]- cosc.canterbury.ac.nz/~greg/python/Pyrex/ — официальный сайт Pyrex (англ.)
- Описание Pyrex (англ.)
- Установка Pyrex на Windows (англ.)
- William Stein, A User’s Perspective On Pyrex, Massachussetts Python Meeting: November 11, 2004
- http://wiki.c2.com/?PyrexLanguage (англ.)
- Сузи Р. А., Язык программирования Python - Лекция #13: Интеграция Python с другими языками программирования. (рус.)