PyPy
| PyPy | |
|---|---|
| Basisdaten | |
| Entwickler | Armin Rigo, Samuele Pedroni, Christian Tismer, Holger Krekel u. a. |
| Erscheinungsjahr | 2007 |
| Aktuelle Version | 7.3.20 (4. Juli 2025) |
| Betriebssystem | Windows, macOS, Linux, FreeBSD, u. v. m. |
| Programmiersprache | Python, 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. Mittlerweile ist PyPy in einer überwiegenden Zahl von Benchmarks schneller als CPython – und in Sonderfällen sogar schneller als C.
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.
- ↑ PyPy v7.3.20 release. (abgerufen am 19. Februar 2026).
- ↑ FreshPorts -- lang/pypy. In: FreshPorts. Abgerufen am 8. März 2017. Vorlage:Cite web: Der Parameter language wurde bei wahrscheinlich fremdsprachiger Quelle nicht angegeben.
- ↑ The pypy Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 26. September 2018).
- ↑ Maciej Fijalkowski: As fast as CPython (for carefully taken benchmarks). März 2008, abgerufen am 26. Februar 2017 (englisch).
- ↑ How fast is PyPy? Abgerufen am 26. Februar 2017 (englisch).
- ↑ Z. B., wenn PyPy Funktionen aus externen Dateien lädt; diese werden dann ins Hauptprogramm aufgenommen. Ein statischer Compiler wie C integriert jedoch in der Regel keine Funktionen aus externen Dateien. PyPy faster than C on a carefully crafted example. In: morepypy-Blog. 4. Februar 2011, abgerufen am 27. August 2018.
- ↑ FAQ – What about numpy, numpypy, micronumpy? Abgerufen am 27. September 2022.