Frage

Es fiel mir schwer, die Übersetzung von PyPy zu verstehen.Wenn man nur die Beschreibung liest, scheint es etwas absolut Revolutionäres zu sein, aber es fällt mir schwer, eine gute Dokumentation zu finden, wie man tatsächlich einen Code aus der realen Welt in etwas wie LLVM übersetzt.Gibt es so etwas?In der offiziellen PyPy-Dokumentation geht es lediglich um die Funktionalität, anstatt dass ich etwas zum Ausprobieren bereitstelle.

War es hilfreich?

Lösung

Dieses Dokument scheint ziemlich detailliert zu sein (und ich denke, eine vollständige Beschreibung würde den Rahmen für eine Stackoverflow-Antwort sprengen):

Die allgemeine Idee, von einer Sprache in eine andere zu übersetzen, ist nicht besonders revolutionär, erfreut sich jedoch erst seit Kurzem zunehmender Beliebtheit bzw. Anwendbarkeit in „realen“ Anwendungen. GWT tut dies mit Java (erzeugt Javascript) und es gibt auch eine Bibliothek zum Übersetzen von Haskell in verschiedene andere Sprachen (genannt YHC)

Andere Tipps

Wenn Sie einige praktische Beispiele wünschen, PyPys erste Schritte Das Dokument enthält einen Abschnitt mit der Überschrift „Den Übersetzer ausprobieren“.

Der PyPy-Übersetzer ist im Allgemeinen nicht für eine öffentlichere Nutzung gedacht.Wir verwenden es, um unseren eigenen Python -Dolmetscher zu übersetzen (einschließlich JIT und GCS, beide in Rpython, dieser eingeschränkten Untergruppe von Python).Die Idee ist, dass Sie mit guter JIT und GC auch ohne Kenntnis oder Verwendung von PYPY -Übersetzungs -Toolchain beschleunigen können (und vor allem, ohne sich auf Rpython einzuschränken).

Prost, Fidjal

Suchen Sie nach einer Python-spezifischen Übersetzung oder nur nach einer allgemeinen Frage: „Wie kompiliert man Code in Bytecode?“Wenn Letzteres bei Ihnen der Fall ist, prüfen Sie es das LLVM-Tutorial.Besonders interessant finde ich Kapitel zwei, in dem man lernt, einen Compiler für die eigene Sprache zu schreiben.

Es scheint etwas absolut Revolutionäres zu sein, wenn man nur die Beschreibung liest.

Soweit ich weiß, ist PyPy insofern neu, als es das erste System ist, das ausdrücklich dafür entwickelt wurde umsetzen Sprachen.Es gibt andere Tools, die für einen Großteil des Front-Ends hilfreich sind, etwa Parser-Generatoren, oder für das Back-End, etwa die Codegenerierung, aber es gab nicht viele, um die beiden zu verbinden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top