PyPy
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Armin Rigo, Samuele Pedroni, Christian Tismer, Holger Krekel u. a. |
Erscheinungsjahr | 2007 |
Aktuelle Version | 7.3.16[1] (23. April 2024) |
Betriebssystem | Windows, macOS, Linux, FreeBSD[2], u. v. m. |
Programmiersprache | Python[3], RPython |
Kategorie | Just-in-time-Compiler |
Lizenz | MIT-Lizenz |
pypy.org |
PyPy ist ein Just-in-time-Compiler für die Programmiersprache Python, der selbst in Python geschrieben ist. Da die Programmierer mit einer Python-Implementierung in Python selbst (und nicht in C, wie dies bei der Referenzimplementierung CPython der Fall ist) experimentieren können, macht PyPy es einfacher, Bereiche zu finden, in denen die Python-Implementierung verbessert werden kann. Darüber hinaus erlaubt PyPy den Entwicklern durch seine Flexibilität, mit mehreren Implementierungen eines speziellen Features zu experimentieren. Eines der Ziele des Projektes war es, einen Python-Interpreter zu entwickeln, der schneller als CPython ist, was im März 2008 erstmals gelang.[4] Mittlerweile ist PyPy in einer überwiegenden Zahl von Benchmarks schneller als CPython[5] – und in Sonderfällen sogar schneller als C.[6]
Streng genommen akzeptiert PyPy keine Programme in Python, sondern eine reduzierte Sprache namens RPython. Während alle RPython-Programme ohne Umwandlungen als Python-Programme lauffähig sind, ist dies umgekehrt nicht immer der Fall. Die Reduktion auf RPython wurde notwendig, damit PyPy eine statische Typisierung von Python-Objekten durchführen kann. PyPy ist von Vorteil, wenn die Laufzeit von Python-Programmen reduziert werden soll. Nachteilig ist, dass nicht alle für Python entwickelten Programmbibliotheken unterstützt werden. So gibt es etwa von NumPy eine RPython-Variante, die etwa 80 % der Geschwindigkeit des in C implementierten Originals erreicht, aber nicht voll kompatibel ist, und die Alternative, das Original über eine Zwischenschicht zu nutzen, was aber sehr langsam ist.[7]