28.02.2014 Aufrufe

Informatik für Lehrkräfte

Informatik für Lehrkräfte

Informatik für Lehrkräfte

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.

118 S EBA STIAN F I SCH ER<br />

Beschreibung anderer Sprachen<br />

Der Formalismus BNF ist ein universeller Formalismus zur Beschreibung<br />

von Sprachen, also nicht nur zur Beschreibung arithmetischer Ausdrücke<br />

geeignet. Als weiteres Beispiel einer mit BNF beschriebenen Sprache<br />

betrachten wir die Spache der Palindrome.<br />

Ein Palindrom ist ein Wort, das von vorne und von hinten gelesen<br />

gleich ist. Beispiele sind otto, rentner, oder (wenn wir Satz- und Leerzeichen<br />

sowie Groß- und Kleinschreibung vernachlässigen) O Genie, der<br />

Herr ehre Dein Ego. Die folgende BNF beschreibt formal die Sprache<br />

der Palindrome über dem Alphabet {a,...,z}.<br />

Pali ::= ’a’ Pali ’a’ | ... | ’z’ Pali ’z’<br />

| ’a’ ... ’z’<br />

| ’’<br />

Die letzte Regel erlaubt es, das Nichttemrinalsymbol Pali zum leeren<br />

Wort, also dem Wort, das keine Zeichen enthält, abzuleiten. Dadurch<br />

wird es möglich, auch Palindrome mit gerader Anzahl Buchstaben abzuleiten.<br />

Erweiterte BNF<br />

Bei der formalen Spezifikation von Sprachen mit Hilfe der BNF fällt auf,<br />

dass häufig ähnliche Konstruktionen auftreten, wie zum Beispiel das<br />

optionale Vorkommen von Zeichen oder deren optionale Wiederholung.<br />

Um solche Konstruktionen einfacher notieren zu können, wurde die BNF<br />

um spezielle Konstrukte zur sogenannten EBNF erweitert.<br />

• Das optionale Vorkommen eines Teilwortes wird durch eckige Klammern<br />

beschrieben. Zum Beispiel können wir die Regeln <strong>für</strong> das Nichtterminalsymbol<br />

Val mit Hilfe eckiger Klammern wie folgt vereinfachen:<br />

Val ::= [’-’] Num<br />

• Die optionale Wiederholung eines Teilwortes wird durch geschweifte<br />

Klammern beschrieben. Zum Beispiel können wir die Regeln <strong>für</strong> das<br />

Nichtterminalsymbol Exps mit Hilfe geschweifter Klammern wie folgt<br />

vereinfachen: Exps ::= Exp {’,’ Exp}<br />

• Schließlich können wir in EBNF den senkrechten Strich <strong>für</strong> Alternativen<br />

auch innerhalb von durch Klammerung kenntlich gemachten Gruppierungen<br />

verwenden. Zum Beispiel ließe sich das optionale Vorkommen<br />

eines Zeichens a statt als [’a’] auch als (’a’ | ”) schreiben.<br />

Durch die genannten Erweiterungen wird die Ausdruckstärke nicht<br />

verändert: In EBNF lassen sich genau die selben Sprachen beschreiben,<br />

die sich auch durch BNF beschreiben lassen. 4<br />

Übungsaufgabe: Syntaxbeschreibung einer HTML-Liste<br />

Geben Sie eine (E)BNF zur Beschreibung ungeordneter Listen in HTML-<br />

Syntax an. Leiten Sie eine Beispielliste aus Ihrer Beschreibung ab, indem<br />

Sie den zugehörigen Ableitungsbaum angeben.<br />

4 Die Theoretische <strong>Informatik</strong> untersucht<br />

unterschiedliche Sprachklassen danach,<br />

durch welche Formalismen sie beschrieben<br />

werden können. Verschiedene Sprachklassen<br />

und zugehörige Mechanismen zu<br />

deren Beschreibung werden in der nach<br />

Noam Chomsky benannten Chomsky-<br />

Hierarchie zusammengefasst.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!