PyPy

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.
Programmier­sprache 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]

  1. PyPy v7.3.16 release.
  2. FreshPorts -- lang/pypy. In: FreshPorts. Abgerufen am 8. März 2017. Vorlage:Cite web: Der Parameter language wurde bei wahrscheinlich fremdsprachiger Quelle nicht angegeben.
  3. The pypy Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 26. September 2018).
  4. Maciej Fijalkowski: As fast as CPython (for carefully taken benchmarks). März 2008, abgerufen am 26. Februar 2017 (englisch).
  5. How fast is PyPy? Abgerufen am 26. Februar 2017 (englisch).
  6. 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.
  7. FAQ – What about numpy, numpypy, micronumpy? Abgerufen am 27. September 2022.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy