Wie man einen Python-Interpreter in Python bauen kann
Verfasst: Freitag 31. Dezember 2010, 12:11
Neulich habe ich gezeigt, wie ein Python-Interpreter in Java aussehen könnte, der entweder als rekursiver AST-Interpreter für einen als Java-Objekte vorliegenden abstrakten Syntaxbaum (AST) oder als virtuelle Maschine für einen aus dem abstrakten Syntaxbaum abgeleiteten Maschinencode realisiert ist.
Heute möchte ich zeigen, wie man ein Python-Programm in einen AST übersetzen kann. Dies mache ich in Python. Dann kann sich das Programm selbst in einen AST übersetzen und wenn ich aus dem AST -- ebenfalls in Python -- einen Maschinencode erzeuge, brauche ich "nur noch" einen Interpreter für die virtuelle Maschine in der Zielsprache (z.B. Java) und habe dann einen vollständigen Python-Interpreter.
So der Plan.
Ich habe den Text die letzten Tage in Markdown geschrieben. Mangels eines automatischen Übersetzers von Markdown in BBCode und auf Grund meines Unwillens, das manuell zu machen, findet ihr den vollständigen Text hier: https://gist.github.com/760937
Viel Spaß beim Lesen. Über Anmerkungen würde ich mich natürlich wieder freuen.
Stefan
Heute möchte ich zeigen, wie man ein Python-Programm in einen AST übersetzen kann. Dies mache ich in Python. Dann kann sich das Programm selbst in einen AST übersetzen und wenn ich aus dem AST -- ebenfalls in Python -- einen Maschinencode erzeuge, brauche ich "nur noch" einen Interpreter für die virtuelle Maschine in der Zielsprache (z.B. Java) und habe dann einen vollständigen Python-Interpreter.
So der Plan.
Ich habe den Text die letzten Tage in Markdown geschrieben. Mangels eines automatischen Übersetzers von Markdown in BBCode und auf Grund meines Unwillens, das manuell zu machen, findet ihr den vollständigen Text hier: https://gist.github.com/760937
Viel Spaß beim Lesen. Über Anmerkungen würde ich mich natürlich wieder freuen.
Stefan