Benutzer-Werkzeuge

Webseiten-Werkzeuge


formalesprachen:ebnf

Dies ist eine alte Version des Dokuments!


Erweiterte Backus-Naur-Form (EBNF)

Neben den Metazeichen für Auswahl (|) und Gruppierung (runde Klammern), die in der BNF verwendet werden können, besitzt die EBNF (extended Backus-Naur-form) noch folgende:

  • [ A ] bedeutet, dass A an dieser Stelle 0- oder 1-mal vorkommt ("Option")
  • { A } bedeutet, dass A an dieser Stelle beliebig oft (auch 0-mal) hintereinander stehen kann ("Wiederholung").

Beispiel 1: Längenangaben mit maximal zwei Dezimalstellen

R0: Länge = Ganzzahl [ "," Nachkommastellen ];
R1: Ganzzahl = "0" | ( EinsBisNeun { NullBisNeun } );
R2: Nachkommastellen = NullBisNeun [ NullBisNeun ];
R3: EinsBisNeun = "1" | "2" | ... | "9";
R4: NullBisNeun = "0" | EinsBisNeun;

Bemerkungen:

  • R2 zeigt, wie sich ein Wortteil erzeugen lässt, der mindestens ein Mal vorkommt.
  • Es gibt leider keine allgemein anerkannte Definition von EBNF (siehe auch den Wikipedia-Artikel dazu). Daher ist auch die Operratorrangfolge (Präzendenz) nirgends wirklich eindeutig geregelt. Im Zweifelsfall (wie bei R1): Lieber Klammern setzen!

Aufgabe 1:

a)
Geben Sie die Grammatik einer Sprache in EBNF an, die alle Eurobeträge mit und ohne Nachkommastellen umfasst, also bspw. (ohne die Anführungszeichen): "125 €", "210,25 €", "32423,13€" Genauer:

  • Die Beträge können beliebig viele Vorkommastellen haben, aber keine Vornullen (z.B. nicht "0012,13 €")
  • Die Beträge haben entweder keine Nachkommastellen oder exakt zwei.
  • Zwischen den Vorkomma- und Nachkommastellen steht ein Komma.
  • Zwischen der Maßzahl und der Einheit "€" steht ein Leerzeichen.

Erinnerung: Vergessen Sie nicht, in Ihrer Lösung alle formalen Bestandteile der Grammatik zu nennen!

b)
Zeichen Sie den Ableitungsbaum zum Wort "256,17 €".

formalesprachen/ebnf.1758693165.txt.gz · Zuletzt geändert: von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki