Pyrex (programming language)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Pyrex
Developer(s) Greg Ewing
Initial release 3 April 2002; 12 years ago (2002-04-03)[1]
Stable release 0.9.9 / 12 April 2010; 4 years ago (2010-04-12)
Written in Python, C
Operating system Cross-platform
Type Programming language
Website www.cosc.canterbury.ac.nz/~greg/python/Pyrex/

Pyrex is a programming language developed to aid in creating Python modules. Its syntax is very close to Python, with the aim of making it easy for Python programmers to write the non-Python code usually required for such modules in a language which at least is very close.

Python limitation[edit]

Python itself only provides a C API to write extension modules, which allows writing of functions and datatypes in C. These can then be accessed from Python. It is thus also possible to wrap the functions and datatypes of existing C libraries as Python objects and therefore make them available to Python.

Other tools[edit]

There are tools like SWIG or Python's foreign function library ctypes which can be used for this task without requiring much additional code, but this is limited to making an external library available in Python code. If adjustments to the API are needed, glue code must again be written manually. This is where Pyrex fits in.

Pyrex abilities[edit]

Pyrex allows the user to write extension modules in a Python-like language which may directly access the external C code. The similarity of Pyrex's syntax to Python's makes it easy to write Python modules, as there is no need to learn another language (such as C or C++), and there may be no need to write any glue code. All that is needed is to specify the name of C-header files, enumerations, datatypes and functions needing to be accessed in the module, then simply use them as if they were Python objects. The Pyrex compiler will generate the necessary glue code automatically and compile the Pyrex code into a working Python module.

See also[edit]

  • Cython, a derivative of Pyrex.

References[edit]

  1. ^ greg at cosc (April 3, 2002). "ANN: Pyrex - a language for writing Python extension modules". Retrieved February 24, 2014. 

External links[edit]