Ausgangspunkt für die Erzeugung ist eine Datei, die ein VDM Datenmodell enthält, in dem mit den abstrakten Datentypen Set, Map, Tuple, Bag, Record und Union ein hierarchisches Datenmodell aufgestellt wird.
Zusätzlich zu dem Datenmodell wird eine Beschreibung benötigt, mit welcher Strategie die einzelnen ADTs zu implementieren sind, verkettete Listen, binäre Bäume, ..., und welche Methoden benötigt werden, nicht alle in der library enthaltenen Methoden werden in jeder Anwendung benötigt. Aus dieser Beschreibung wird in einem Generierungsprozeß C oder C++ Quelldateien erzeugt. Arbeitet man auf C Ebene, so wird eine Header-Datei für die C Datentypdefinitionen und die Prototypen erzeugt, diese ist in das Anwendungsprogramm einzubinden. Die Implementierungsteile sind in einer C-Quellcodedatei enthalten.
Bei der Arbeit mit C++ werden ebenfalls die C-Module erzeugt, diese werden für C++ wiederverwendet, außerdem wird eine C++ Header-Datei generiert, die die C++ Klassen und Methoden definiert.
Für C++ gibt es eine sehr hilfreiche Erweiterung: die C++ Klassen können so erzeugt werden, daß die Speicherverwaltung, deren Implementierung in C++ immer sehr arbeitsintensiv und fehlerträchtig ist, vollständig in den erzeugten Klassen abläuft und vor dem Anwender vollständig verborgen bleibt.
Anregungen, Tips und Kommentare bitte an
Prof. Dr. Uwe Schmidt
zurück zur aktuellen Information