Clojure in Python

Du hast eine Idee für ein Projekt?
Antworten
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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.
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

(Zeile 22 in dem Quellcodeschnipsel wird wegen continue niemals ausgeführt werden, Ende der Anmerkung)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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
Leonidas
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
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Leonidas hat geschrieben:sma, du generierst sowas?
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.

Stefan
Antworten