So, als letztes noch eine Mini-Einheit darüber, wie ich
ein Meta-Modell tatsächlich implementieren kann. Meta-Modell als die Grammatikbeschreibung.
Tatsächlich hatte ich eben schon zwei Technologien der Implementierung genannt.
Die eine war das EMF mit E-Coor, ja,
also das E-Coor, die ICoor-Dateien sind dann die Beschreibungen der Grammatik,
die Meta-Modell-Elemente und ihre Beziehungen werden da beschrieben,
aus denen kann ich dann ein Meta-Modell tatsächlich erzeugen.
Das wäre die eine Technologie, die wir schon hatten,
Und die zweite wäre, nein, hier war sie,
wäre, so könnte ich das mit Java machen.
Zum Beispiel, indem ich hier als Java Beans die Meta-Modellelemente betrachte,
behandle. Und damit könnte ich eine Implementierung vornehmen.
Ich muss sie implementieren, wenn ich eine eigene Modellierungssprache schaffe.
Ich muss ja in irgendeiner Form mit einer Grammatik arbeiten.
Die Grammatik muss durch einen Parser verarbeitet werden können.
Ja, also Werkzeuge müssen am Ende das unterstützen können,
was ich damit mache.
Sie müssen in der Lage sein,
die grammatikalischen Ausdrucksformen überhaupt zu beschreiben
Sie müssen in der Lage sein, die EQ-Datei einzulesen oder diese Java Beans einzulesen.
Ja, und sie müssen das in irgendeiner Form repräsentieren können.
Also weil es müssen Datenstrukturen dafür haben. Wir müssen Speicherformate dafür haben. Ja,
und wenn Sie so etwas wählen wollen,
dann sollten Sie sich versuchen, etwas zu wählen,
was möglichst ähnlich zu der Sprache ist, die Ihr Zielsprache ist.
Wenn es, wenn die Sprache irgendwie auf UML basiert,
warum nicht UML ähnliche, ein UML-ähnliches Meta-Modell verwenden,
wobei ich sagen muss,
das Meta-Modell von UML ist wirklich sehr kompliziert,
weil es
historisch gewachsen ist
Oder wenn ich eine textuelle Sprache verwende mit Syntax und Semantik,
ja, dann sollte das Ganze auf dem Abstract-Syntax-Trieb ruhen.
Der ist ja auch eine Grammatikbeschreibung. Er ist ja
auch in der Lage, eine Grammatikbeschreibung darzustellen.
Und wenn ich jetzt intern mit einem Meta-Modell arbeite,
in meinem selbst geschaffenen Werkzeug und woanders gibt es ein anderes Meta-Modell,
dann brauche ich so etwas wie ein Adapter.
Und da sollte ich schauen, wie ich die Modelle,
die verschiedenen Modelle eben wähle, wie ich die Modellierungssprachen beschreibe und das Meta-Modell,
als sollte ich ermöglichst danach vorgehen, was ich am besten eignet für die Kombination.
Ja, wenn ich also mit einem anderen Meta-Modell etwas koppeln möchte,
sollte ich mir welche suchen, die möglichst von der Aufgabenstellung,
von den ganzen her möglichst verwandt sind.
Also für die Implementierung hier einige Hinweise,
wenn sie selbst implementieren wollten, auf der voragenden Folie hatten wir,
wie kann sich das mit Java-Klassen oder Java Beans als Grafik,
als Elemente der Programmmodellierungssprache machen.
Oder der Hinweis auf diese E-Coor-Modellierung,
die wir hier als Möglichkeit haben,
mit dem Eclipse Modelling Framework