MyPyPy

Code-Stücke können hier veröffentlicht werden.
Antworten
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich hatte vor, eine Art Tutorial zu schreiben, das erklärt, wie der Python-Interpreter funktionert. Leider habe ich nur den Beispielcode, noch keine Erklärungen, aber bevor ist das wieder einfach nur in der Versenkung verschwinden lasse, hier die wahrscheinlich langsamste Art in Python, eine Fibbonacci-Zahl zu berechnen.

http://gist.github.com/30413/

Der Code zeigt zunächst die zu übersetzende Funktion, dann eine Reihe von Klassen, die ich benutze, um einen AST für die zu übersetzende Funktion anzugeben, dann Repräsentationen für die Python-Objekte, die ich brauche sowie ein Frame-Objekt zum Speichern von Variablen und schließlich einen rekursiven AST-Evaluator.

Ich zeige nicht, wie man vom Quelltext zum AST kommt - das wäre ein zweiter Teil gewesen. Meine Python-Funktionen haben nur Positionsparameter, keine Standardwerte, keine Restparameter. Operatoren sind nicht vollständig implementiert. Mir fehlen Exceptions. Exceptions für Return und meine naive Implementierung von Frame sind zwar einfach aber nicht gerade effizient.

Stefan
Antworten