2016-11-03 2 views
0

Ich verwendete MPS in der Vergangenheit in einem kleinen Projekt (wie ein Labor-Projekt), so habe ich grundlegende Verständnis der Verwendung von MPS (obwohl es Version 2.4 oder etwas war wie). Jetzt versuche ich eine Utility-Software (idealerweise ein Plugin für IntelliJ) einzuführen, die auf MPS-Funktionalität aufbaut. Da MPS nicht so weit verbreitet ist, möchte ich hier mit erfahrenen Leuten Rücksprache halten.MPS: abstrakte (generatorless?) Sprache und es ist Implementierungen

Was ich tun möchte, ist einige relationalen Wissensdatenbankzugriff (SQL-Abfragen) in MPS-basierte Plugin zu wickeln. Ich möchte in der Lage sein, schnell zu starten und Code zu der bereits vorhandenen jdbc-Wrapping-Bibliothek zu generieren, und in Zukunft möchte ich mit db-spezifischen Features zu meiner Implementierung wechseln können. Gleichzeitig möchte ich bestehende Benutzermodelle beibehalten, damit sie leicht in eine neue Sprache wechseln können, und auf etwas zurückgreifen, wenn mit dieser neuen Sprache etwas nicht stimmt. Wie könnte diese Easy-Switch-Funktion erreicht werden? Meine erste Idee war, abstrakte Sprache ohne Generatoren zu verwenden und die Implementierungssprache in einem mps-basierten Modul in Idea als eine Abhängigkeit (das eine oder andere) hinzuzufügen, aber ich bin mir nicht sicher, ob dies leicht möglich ist.

Antwort

1

Ja, wenn ich Sie richtig verstehe, sollte dies leicht möglich sein. Sie müssen keine Sprache ohne Generatoren erstellen, sondern können Ihre Sprache mit Generatoren und allem anderen gestalten. Wenn Sie dann einfach neue Konstrukte hinzufügen möchten, die Benutzer zusätzlich zu bereits definierten Konstrukten verwenden können, können Sie diese Sprache um eine spezifischere Sprache für db-spezifische Funktionen erweitern (falls Sie mehr als eine Spezialisierung haben möchten) Sprache). Wenn Sie die gleiche Sprache beibehalten und aktualisieren möchten, bietet MPS alternativ Migrationsskripts, in denen Sie angeben können, wie Sie vorhandene Modelle, die in einer älteren Version Ihrer Sprache erstellt wurden, auf eine neuere Version aktualisieren. Einen Ausgangspunkt zum Erstellen eines Idea-Plugins mit MPS finden Sie unter https://confluence.jetbrains.com/display/MPSD30/Using+MPS+inside+IntelliJ+IDEA.

Verwandte Themen