Pyrex (язык программирования)
Pyrex — язык программирования, разработанный Greg Ewing[2] около 2002 в целях упрощения создания модулей для Python. Его синтаксис очень близок к Python, что упрощает использование Python-программистами для создания связующего кода. Позже Pyrex стал основой для Cython.
Pyrex | |
---|---|
Тип | язык программирования |
Разработчик | Greg Ewing |
Написана на | Python, C |
Операционная система | Cross-platform |
Первый выпуск | 3 апреля 2002[1] |
Последняя версия | 0.9.9 (12 апреля 2010 ) |
Сайт | cosc.canterbury.ac.nz/~greg/python/Pyrex/ |
Ограничения 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 (April 3, 2002). Дата обращения: 24 февраля 2014.
- Make Python run as fast as C with Psyco, 2002 (англ.) = Используйте Psyco, и Python будет работать так же быстро, как и С, 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 с другими языками программирования. (рус.)