Informatik für Lehrkräfte
Informatik für Lehrkräfte
Informatik für Lehrkräfte
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.