PyPy
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.
PyPy | |
---|---|
Basisdaten | |
Entwickler | Armin Rigo, Samuele Pedroni, Christian Tismer, Holger Krekel u. a. |
Erscheinungsjahr | 2007 |
Aktuelle Version | 7.3.16 (23. April 2024) |
Betriebssystem | Windows, macOS, Linux, FreeBSD, u. v. m. |
Programmiersprache | Python, RPython |
Kategorie | Just-in-time-Compiler |
Lizenz | MIT-Lizenz |
pypy.org |
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.