*** Welcome to piglix ***

RPython

PyPy
Pypy logo.png
Initial release mid 2007; 10 years ago (2007)
Stable release
5.6.0 / 12 November 2016; 2 months ago (2016-11-12)
Repository bitbucket.org/pypy/pypy
Written in RPython
Operating system Cross-platform
Type Python interpreter and compiler toolchain
License MIT License
Website pypy.org

PyPy is a Python interpreter and just-in-time compiler focused on speed, efficiency, and compatibility with CPython.

PyPy started out as a Python interpreter written in the Python language itself. Current PyPy versions are translated into an intermediate representation, RPython, into C code, and then compiled. The PyPy JIT compiler processes this into machine code at run time.

PyPy was conceived to be an implementation of Python written in a programming language that is similar to Python. This makes it easy to identify areas where it can be improved and makes PyPy more flexible and easier to experiment with than CPython.

PyPy aims to provide a common translation and support framework for producing implementations of dynamic languages, emphasizing a clean separation between language specification and implementation aspects. It also aims to provide a compliant, flexible and fast implementation of the Python programming language using the above framework to enable new advanced features without having to encode low level details into it.

The PyPy interpreter itself is written in a restricted subset of Python, called RPython (Restricted Python). The self-hosting nature of PyPy is reflected in the project's logo, which depicts a snake swallowing its own tail in an ouroboros. RPython puts some constraints on the Python language such that a variable's type can be inferred at compile time.

The PyPy project has developed a toolchain that analyzes RPython code and translates it into C code, which is then compiled to produce a native interpreter. It also allows for pluggable garbage collectors as well as optionally enabling Stackless Python features. Finally, it includes a just-in-time (JIT) generator which builds a just-in-time compiler into the interpreter, given a few annotations in the interpreter source code. The generated JIT compiler is a tracing JIT.


...
Wikipedia

...