13.07.2015 Aufrufe

Diplomarbeit Ein Compiler f¨ur eine ... - Patrick Koehne

Diplomarbeit Ein Compiler f¨ur eine ... - Patrick Koehne

Diplomarbeit Ein Compiler f¨ur eine ... - Patrick Koehne

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

16 KAPITEL 3. DIE SPEZIFIKATIONSSPRACHEder Abhängigkeiten zwischen den Schemata klar sichtbar sind und nicht durch unnötige Angabenüberladen oder verdeckt werden.Es gibt in der Regel den objektorientierten und den klassischen Ansatz, um beliebige Graphstrukturenzu beschreiben. Als klassischer Ansatz ist hierbei <strong>eine</strong> Art prozedurale Beschreibung gemeint,in der jedes vorkommende Element der Struktur einfach beschrieben wird. Doppelte oder ähnlicheElemente werden hierbei nicht zuvor in Klassen zusammengefaßt und es wird deshalb auch nicht vonVererbung Gebrauch gemacht. Die dabei verwendeten Sprachmittel sind jedoch sehr stark darauf ausgelegtdie Struktur an sich zu spezifizieren und nicht die Semantik der Datenstruktur widerzugeben.Spezifikationen nach diesen Vorgehensweisen führen demnach sehr schnell zur Unlesbarkeit. Sie verbindendie Defintionen der einzelnen Objekte mit deren Verbindungen zu anderen Objekten. Späterentwickelte Sprachen [SWZ95] erweitern diese Vorgehensweisen noch um die Angabe von Zugriffsmethodenauf einzelne Komponenten, so daß die Sprache noch undurchschaubarer wird. DerartigeSprachen eignen sich für den Entwurf sehr komplexer Datenstrukturen, die sehr stark mit Funktionenbehaftet sind.In dem hier vorliegenden Fall jedoch steht die Art der Datenstruktur bereits fest. Es ist ein rechtüberschaubarer statischer Graph, der sich hauptsächlich dadurch auszeichnet, daß viele Objekte desGraphen in bestimmter Weise mittels nichtattributierter Kanten miteinander verbunden sind. <strong>Ein</strong>eSpezifikation <strong>eine</strong>s solchen Graphen ist also leicht dadurch zu beschreiben, daß zunächst die im Graphenverwendeten Objekte beschrieben werden und anschließend die Abhängigkeiten zwischen diesenObjekten beschrieben werden können. Diese Vorgehensweise hat drei bedeutende Vorteile:Sie entspricht genau der Vorgehensweise, die man bei der Generierung <strong>eine</strong>s solchen Graphenverfolgt.Sie ist auf Grund der Zweiteilung leicht zu verstehen und vor allem der Teil der Abhängigkeitenkann sehr gut als Diskussionsgrundlage bei dem Entwurf <strong>eine</strong>s FDBS verwendet werden.Es ergibt sich <strong>eine</strong> Sprache mit kl<strong>eine</strong>r, kompakter Syntax und Semantik.Für diesen Anwendungsfall ist das von großer Bedeutung. Es geht bei der Spezifikation der Graphstrukturnicht jedesmal um <strong>eine</strong> Neuschaffung <strong>eine</strong>r Graphstruktur, sondern lediglich um die Anpassung<strong>eine</strong>r vorhandenen Struktur an <strong>eine</strong>n speziellen Anwendungsfall. Dies bedeutet, daß vieles anSemantik bei der Spezifikation schon feststeht und nicht erst beschrieben werden muß. Demnach kannauch besser <strong>eine</strong> eigens dafür entwickelte Sprache Verwendung finden.Diese Spezifikationssprache teilt sich also grob in zwei Teile. Sie definiert zunächst die in dem Graphenverwendeten Objekte und anschließend werden diese Objekte miteinander verbunden.Bei der Definition der Objekte können ebenfalls unterschiedliche Strategien verfolgt werden. DerGraph besteht aus verschiedenen Schemata. Innerhalb <strong>eine</strong>s solchen Schemas werden verschiedeneTypen spezifiziert, u.a. auch Klassen. Diese enthalten letztendlich <strong>eine</strong> Menge von Attributen. DieseIneinanderschachtelung von verschiedenen Objekten deutet eigentlich sehr stark darauf hin, daß fürdie Spezifikation solcher Objekte auch ein objektorientierter Ansatz Verwendung finden sollte. Davonwird allerdings Abstand genommen. <strong>Ein</strong>e solche Vorgehensweise würde in bestimmten Fällen allerdingsunweigerlich zur Bildung von Superklassen und Vererbung führen. Dies würde sicherlich denSchreibaufwand der Spezifikation in bestimmten Fällen verringern, allerdings steht dem gegenüberdie leichte Lesbarkeit der Spezifikation. Außerdem eignen sich derartig verfaßte Spezifikationen nurrecht mühsam als Diskussionsgrundlage. Zuviele Referenzierungen würden diesen Vorgang hemmen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!