Hat jemand Erfahrung mit Language Workbench-Tools wie Xtext, Spoofax und JetBrains MPS? Ich versuche, es auszuprobieren, und es fällt mir schwer, einen guten Vergleich der verschiedenen Tools zu finden. Was sind die Vor- und Nachteile von jedem?Pro/Contras verschiedener Sprache Workbench-Tools wie Xtext und MPS?
Ich möchte DSLs erstellen, die Python-Code generieren, daher bin ich besonders an Leuten interessiert, die eines dieser Tools mit Python verwendet haben (alle drei scheinen ziemlich Java-fokussiert zu sein ... warum ist das so?) ?). Die DLSs sind in erster Linie für mich selbst gedacht, deshalb kümmere ich mich weniger darum, eine wirklich schöne IDE zu bauen, als über KISS, um die Syntax zu definieren und den Codegenerator zu schreiben. Die Möglichkeit, die DLS-Dateien statisch zu prüfen und zu analysieren, wäre auch ziemlich cool.
Ich habe ein wenig Angst davor, einen langen Weg zurückzulegen, eine Wand zu treffen und zu erkennen, dass mein gesamter Code in einem Format vorliegt, das nicht auf etwas anderes portiert werden kann - ist das ein Risiko bei diesen Tools? Insbesondere MPS scheint ein wenig gruselig zu sein, da, wie ich es verstehe, Sie nicht wirklich textbasierte Syntax generieren, sondern spezialisierte Editoren für ASTs erstellen.
Ich werde anfangen, Spoofax b/c zu erkunden, es scheint von einer ziemlich reichen Programm Transformation Sprache (Stratego) unterstützt werden, die ich denke, ist wirklich das Fleisch und Kartoffeln beim Bau einer DSL ... – josh
An diesem Punkt habe ich es auf Stratego/Spoofax vs den Aufbau meines eigenen Parser/Interpreter in Python (über ANTLR) oder ähnlich eingeschränkt. Meines Erachtens ist der Hauptkonflikt, dass Stratego ein besseres Paradigma für die Manipulation meiner ASTs bietet, aber dass der Schreib-Build-Testzyklus nicht so sauber sein wird, da ich Python-Code ausgeben und dann den Code ausführen muss Halten Sie die gesamte Anwendung in Python. – josh