Bericht_Nr.465_T ... - TUHH
Bericht_Nr.465_T ... - TUHH
Bericht_Nr.465_T ... - TUHH
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