# PyPy

PyPy és un intèrpret i compilador JIT per al llenguatge Python, enfocat a la velocitat i l'eficiència, i és 100% compatible amb l'intèrpret original CPython.

## Detalls i motivació

PyPy va ser concebut com una implementació de Python escrita en Python, cosa que permet als desenvolupadors de Python hackejar el llenguatge. Això fa que sigui fàcil identificar àrees millorables. El fet que PyPy estigui implementat en un llenguatge d'alt nivell implica que és més flexible i fàcil per experimentar que CPython, i això permet als desenvolupadors explorar múltiples implementacions de característiques específiques i triar la millor.
PyPy té per objecte proporcionar una traducció comuna i un entorn de treball conceptual per a la producció d'implementacions de llenguatges dinàmics, posant l'accent en una separació neta entre l'especificació del llenguatge i els aspectes d'implementació. Intenta a més proporcionar una implementació compatible, flexible i ràpida del Llenguatge Python utilitzant l'esmentat marc de treball per desenvolupar noves característiques avançades sense haver de codificar detalls a baix nivell.

### Traducció

PyPy consisteix en un intèrpret estàndard i un traductor. L'intèrpret està escrit en un subconjunt limitat del llenguatge Python anomenat RPython (Python Restringit). A diferència de Python estàndard, RPython és estàticament tipat que permet una compilació eficient.
El traductor és una cadena d'eines que analitza el codi RPython i el tradueix a un llenguatge de més baix nivell, tal com C, LLVM o MSIL. També permet un recol·lector d'escombraries endollable i opcionalment habilitar Stackless. Finalment inclou un generador JIT que construeix un compilador JIT dins de l'intèrpret, brindant algunes anotacions en el codi font.

## Estat del Projecte

PyPy és una continuació del projecte Psyco, desenvolupat per Armin Rigo. L'objectiu de PyPy és tenir un compilador en temps d'execució especialitzat amb una major capacitat multiplataforma que Psyco.

### Història

PyPy començar com una investigació orientada al desenvolupament de projectes. No obstant això, en arribar a la versió 1.0 a mitjan 2007, els seus objectius van canviar per produir versions estables orientades a la producció amb una major compatibilitat amb CPython. El 28 abril 2008 es va publicar la versió 1.1.
A finals de 2008, PyPy va estar en condicions d'executar algunes biblioteques populars com Django, Pylons, Pyglet, i Nevow.
El març de 2010 es va llançar PyPy 1.2, enfocant-se en la velocitat, incloent un compilador en temps d'execució que funcionava, però l'ús del qual desaconsellava per ambients de producció.
El desembre de 2010 es va alliberar PyPy 1.4, la primera versió amb qualitat per codi en producció. PyPy 1.4 és compatible amb Python 02/05
El 30 d'abril de 2011 es va llançar PyPy 1.5, compatible amb Python 2.7.1.
El 18 d'agost es va llançar PyPy 1.6 "Kickass Panda", que manté compatibilitat on Python 2.7.1 però afegeix suport (beta) per carregar extensions desenvolupades en C per CPython.

## Referències

* ↑ «Paper de RPython». Arxivat de l'original el 2017-07-06. [Consulta: 1r abril 2013].
* ↑ «PyPy Status Bloc: 1.1 final released».
* ↑ «2008/08/pypy-runs-unmodified-django-10-beta.html PyPy runs unmodified django 1.0 beta».
* ↑ «Running pylons on top of PyPy».
* ↑ «Running Pyglet on top of PyPy».
* ↑ «Running Nevow on top of PyPy».
* ↑ «PyPy 05/01 Released: Catching Up».
* ↑ «PyPy 1.6 - kickass colla».

## Enllaços externs

* PyPy Pàgina Oficial Arxivat 2012-01-03 a Wayback Machine.
* Bloc Oficial del projecte