Ich arbeite an einem Projekt, bei dem ich eine DSL definieren muss. Da es für mein Projekt von entscheidender Bedeutung ist, das richtige DSL zu finden, habe ich mich dazu entschieden, vorhandene Frameworks zu evaluieren, die beim Definieren von DSLs, Parsing und Codegenerierung helfen (die in einer .NET-basierten Sprache sein muss). p>
Es gibt Vor-und Nachteile von jedem der oben genannten Rahmen und ich bin nicht in der Lage, eine Entscheidung zu treffen.Gibt es eine Wahl zwischen den oben genannten Rahmen, welche würden Sie wählen und warum?
Gibt es einen anderen Rahmen, der so fundamental ist, dass ich ihn verpasst haben könnte?
Jede Hilfe oder Anleitung würde sehr geschätzt werden.
In einer Frage von mir die berührt wurde das Thema DSLs, wurde mir vorgeschlagen, eine Kombination von Irony und DLR . Ich weiß nicht, stabil sind sie aber. Ironie ist ein Alpha, und DLR, obwohl stabil, ist immer noch in v0.9. Ich habe vor, Irony in ein oder zwei Wochen selbst zu benutzen, also werde ich ein Feedback geben können. Auf der hellen Seite jedoch - sie sind beide Open Source, so dass Sie Fehler selbst beheben können.
Wenn Sie planen, externe DSLs zu implementieren, ist Spoofax ( Ссылка ) eine nette Sprachworkbench dafür. Es ist eine Parser-basierte Text Langauge Workbench, die mehrere State-of-the-Art-Technologie wie SDF, Stratego nutzen. Neben der DSL-Implementierung konnten Sie sehr umfangreiche Editor-Dienste wie Code-Completion, Outline-View, Intellisense usw. erhalten.
Es kommt mit einer netten Beispiel-DSL-Implementierung und Code-Generierung nach Java. Es könnte auch als Ausgangspunkt für den Einstieg in die Tools dienen.
Im Folgenden finden Sie Einzelheiten zur Verwendung dieser langauge-Workbench: Ссылка .
Ich hoffe, es hilft!
Bearbeiten -1:
Nachfolgend finden Sie ein Beispiel für eine Sprache, die mit dieser Langauge Workbench implementiert wurde: Ссылка .
Jetbrains haben ein visuelles Werkzeug, um die Sprachentwicklung zu unterstützen, haben den Namen vergessen, aber auf ihrer Titelseite steht es drauf. Ich glaube, es ist kostenlos und teilweise Open Source.
Das DMS Software Reengineering Toolkit ist ein integrierter Satz von Tools zur Definition beliebiger Sprachen, einschließlich DSLs, Automatisierung der Konstruktion von Parsern, Analysatoren und Codegeneratoren für die definierten Sprachen.