Habe gestern eine Menge Zeit damit "vertan", Clojure für Python zu portieren. Warum? Weil es geht ;) Ich kann aus dem hier dies erzeugen. Ausführen geht noch nicht und es ist alles ein ziemlich gehackt. Falls jemand Lust hat, mitzuhacken, ist er herzlich eingeladen. Ich erzähle auch gerne noch mehr, will das hier aber kurz halten und bbcode nicht so quälen.
Stefan
PS: Will nicht mal jemand paste.pocoo.org auf eine aktuelle pygments-Version bringen? Nur dort hatte ich Highlighting für Clojure gefunden.
Clojure in Python
str1442, das ist mir sehr wohl bewusst und auch richtig so. Mir war es zu kompliziert, aus dem generierten Python-Code toten Code zu entfernen. Auch das Hantieren mit den lokalen Variablen ist eigentlich unnötig, ein schlauerer Übersetzer könnte in Zeile 24 ein `return ret_` generieren.
Problematischer ist, dass ich keine Makros kann und damit kaum etwas übersetzen kann. `fn` und `let` sind eigentlich Makros, die alles auf zwei primitivere Varianten zurückführen.
Ich muss jedes `def` für sich in Python übersetzen und dann sofort ausführen, damit ich die Makrofunktionen, die ja zur Übersetzungszeit und nicht erst zur Laufzeit ausgeführt werden, überhaupt zur Verfügung habe.
Stefan
Problematischer ist, dass ich keine Makros kann und damit kaum etwas übersetzen kann. `fn` und `let` sind eigentlich Makros, die alles auf zwei primitivere Varianten zurückführen.
Ich muss jedes `def` für sich in Python übersetzen und dann sofort ausführen, damit ich die Makrofunktionen, die ja zur Übersetzungszeit und nicht erst zur Laufzeit ausgeführt werden, überhaupt zur Verfügung habe.
Stefan
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
sma, du generierst sowas? Na das erklärt ja einiges. Gestern habe ich hingegen sowas gestern gefunden, das schaut auch recht generiert aus.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ja, das war der Sinn meines Experiments. Bis auf wenige Systemfunktionen, den Reader und den Compiler ist Clojure in sich selbst geschrieben. Schreibe ich den Reader und Compiler in Python sodass er Python-Code (statt Java-Bytecode) erzeugt, kann ich -- so die Theorie -- mit relativ wenig Aufwand das System übersetzen.Leonidas hat geschrieben:sma, du generierst sowas?
Stefan