Left Up Right Modellgetriebene Softwareentwicklung

Vorläufer

M4-Makroprozessor

Hier wird das Modell in einer Makrosprache formuliert, die dann durch die Substitution in eine Zielsprache umgeformt wird.

Ein Makro kann auch als Template gesehen werden.

Der Witz an M4 ist, dass der Makroprozessor so lange über eine Zeile generiert, bis kein Makro mehr zu ersetzen ist. Damit können Makros auch rekursiv sein.

Wikipedia
GNU M4

Anwendungsbeispiele

Sendmail-Konfiguration

Die Makrokonfiguration mit M4 ermöglicht, die Sprache sehr ausgefallen ist, relativ einfach zu nutzen.
Dadurch entsteht eine Konfigurationssprache, die die Spezifikation der Konfiguration beschreiben (WAS). Die Makro-Definitionen bilden dann die abstrakte Konfiguration in die Implementierungssprache ab.

M4ober definiert Oberflächen für Stammdaten
autoconf
erzeugt ein Test aus Shellscripten und Testprogrammenquellen, die ein System auf kompatibilität untersuchen.
M4-Makropaket in RACE erzeugt aus einer textuellen Automatenspezifikation einen Automat nach dem State-Entwurfsmuster

Perl-Scripte, die aus Text-Spezifikationen Code erzeugen

Aus einer Textspezifikation können ganze Rahmen für Anwendungen aufeiner DDS-Middleware erzeugt werden.

Compilergeneratoren

Aus einer Grammatikbeschreibung können Parser und Scanner erzeugt werden.

Die Grammatikbeschreibung ist ein formales Modell. Allerdings geht die Analyse der Grammatiken und das Berechnen von Lookahead-Mengen weit über eine einfache Transformation hinaus.

lex für Scanner, Yacc für Parser
flex und bison sind die GNU-Implementierungen

Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber