08.10.2013 Aufrufe

Syntaxbaum, Symboltabelle und Kontextbedingungen

Syntaxbaum, Symboltabelle und Kontextbedingungen

Syntaxbaum, Symboltabelle und Kontextbedingungen

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.

BTU Cottbus, Institut für Informatik, LS Datenstrukturen <strong>und</strong> Softwarezuverlässigkeit<br />

Informatik I WS 2000/2001<br />

9. Übungsblatt<br />

Gegeben ist die folgende Grammatik für getypte Ausdrücke mit Deklarationen:<br />

DECLEXPRESSION DEFINES EXPRESSION | EXPRESSION<br />

DEFINES DEFINE | DEFINE DEFINES<br />

DEFINE ‘def’ IDENT ‘


BTU Cottbus, Institut für Informatik, LS Datenstrukturen <strong>und</strong> Softwarezuverlässigkeit<br />

Aufgabe<br />

Schreiben Sie ein Programm, das eine von der Standardeingabe einzulesende Zeichenkette<br />

dahingehend überprüft, ob es sich um einen Ausdruck mit Deklarationsteil entsprechend der<br />

umseitig angegebenen Sprache (definiert durch kontextfreie Grammatik <strong>und</strong> <strong>Kontextbedingungen</strong>)<br />

handelt. Ist dies der Fall, soll dieser Ausdruck ausgewertet <strong>und</strong> das Ergebnis<br />

ausgegeben werden.<br />

Dabei sind bei der Überprüfung der korrekten Syntax eines (Teil-) Ausdrucks die informell<br />

gegebenen Einschränkungen (<strong>Kontextbedingungen</strong>) bezüglich der Typisierung von<br />

Ausdrücken <strong>und</strong> der Verwendung von Bezeichnern zu berücksichtigen.<br />

Implementierungshinweise:<br />

Für die Überprüfung der Typkonsistenz <strong>und</strong> die anschließende Auswertung von Ausdrücken ist<br />

es notwendig, Informationen über die im Deklarationsteil festgelegten Werte <strong>und</strong> Typen der<br />

vorkommenden Bezeichner abzuspeichern. Diese Informationen werden bei der<br />

anschließenden Analyse des Ausdrucks verwendet. Die entsprechende Datenstruktur wird im<br />

Compilerbau als <strong>Symboltabelle</strong> bezeichnet. Eine solche <strong>Symboltabelle</strong> wird meist als<br />

Hashtabelle implementiert; in dieser Aufgabe soll in dieser Weise verfahren werden.<br />

Es empfiehlt sich, Informationen über die Typen von Teilausdücken ebenfalls in den Knoten<br />

des aufzubauenden <strong>Syntaxbaum</strong>s zu verwalten.<br />

Literatur: Alfred V. Aho and Jeffrey D. Ullman. The Theory of Parsing, Translation, and<br />

Compiling. Volume I: Parsing. Prentice-Hall, London, 1972.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!