05.10.2013 Aufrufe

Bericht_Nr.465_T ... - TUHH

Bericht_Nr.465_T ... - TUHH

Bericht_Nr.465_T ... - TUHH

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

daher eine große Anzahl von Konsistenzprüfungen durchführen<br />

und die Verflechtungen durch die Pointer analysieren müssen.<br />

VDA/FS hingegen definiert eine syntaktisch umfangreichere<br />

Sprache, da eine Anzahl von Kennworten Ckeywords) existieren<br />

und diesen bestimmte, jeweils in Anzahl und Anordnung<br />

unterschiedliche Parameter zugeordnet sind. Kennworte sind<br />

die Grundbestandteile einer Sprache, die bei der Grammatik-<br />

Definition auch als terminale S~mbcle bezeichnet werden.<br />

Es ist festzustellen, daß eine syntaktisch aufwendigere<br />

Sprache gleichzeitig den Vorteil besserer Lesbarkeit bietet.<br />

Andererseits erscheint eine solche Sprache ebenfalls<br />

aufwendig in der Implementation.<br />

Es gibt jedoch die Möglichkeit, eine syntaktisch<br />

umfangreiche Grammatik zu definieren und diese sogar<br />

automatisch Cd.h. durch ein Programm) in einen Parser<br />

umsetzen zu lassen, falls man einige kleinere<br />

Einschränkungen bei der Definition der Grammatik<br />

berücksichtigt IWirth8~, 5.32/. Diese Möglichkeit wird durch<br />

die Klasse der 'recursive descent' Parser Cbzw. Compiler)<br />

geboten, die z.B. für Compiler verschiedener Hochsprachen<br />

verwendet werden. Die Definition der Grammatik kann dann<br />

ebenfalls in einer gebräuchlichen Notationsweise erfolgen<br />

Cz.B. der im folgenden verwendeten erweiterten Backus-Naur-<br />

Form, abgekürzt BNF), die ein Programm Cebenfalls ein<br />

Parser) wie eine Programmiersprache sehr einfacher Art lesen<br />

kann, um daraus Datenstrukturen zu bilden, die einem bereits<br />

bestehenden Parsergerüst als Informationen dafür dienen, wie<br />

im konkreten Fall eine Analyse durchgeführt werden soll.<br />

Dieses Konzept löst in erster Linie die Frage der<br />

Programmierung des Syntaxanalysators und erlaubt daher die<br />

Definition verständlicherer Sprachen auch für Anwendungen<br />

wie den GDA. Ein wesentlicher Punkt ist allerdings, daß<br />

solche Parser nur in einer Sprache geschrieben werden<br />

können, die Rekursion zuläßt.<br />

Die semantische Analyse ist mit den Ergebnissen der<br />

syntaktischen Analyse dann relativ leicht durchführbar. Sie<br />

ist jedoch im Falle des GDA z.B. abhängig von den Anwendungsprogrammen,<br />

die die Informationen weiterverarbeiten<br />

sollen Cz.B. CAD-Systeme u.ä.).<br />

Die lexikalische Analyse ist für viele Anwendungen recht<br />

einfach, da nur Einheiten wie Zahlen CReal u. Integer),<br />

Keywords und Bezeichner vorkommen. Sie ist daher bereits im<br />

generierten Parser integriert.<br />

In IWirth8~1 wird ein sehr einfacher BNF-Parser-Generator<br />

beschrieben, der für die nachfolgenden Versuche als<br />

Ausgangspunkt verwendet wurde. Dieser Generator verarbeitet<br />

eine erweiterte BNF, die folgende Elemente enthält:<br />

52

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!