Benutzer-Werkzeuge

Webseiten-Werkzeuge


formalesprachen:syntaxdiagramme

Syntaxdiagramme

Eine alternative Möglichkeit, Produktionsregeln zu notieren, bieten Syntaxdiagramme. Ihren Aufbau verstehen Sie am besten, indem Sie das folgende Beispiel ansehen.

Beispiel 1: Eurobeträge

Die Grammatik G = (V, A, P, S) über dem Alphabet A = {"0", "1", …, "9", ",", " ", "€"} mit der Menge der Nichtterminale V = {Eurobetrag, Vorkommastellen, ZahlOhneVornullen, ZifferOhneNull, Ziffer}, dem Startsymbol S = Eurobetrag und den mit folgendem Syntaxdiagramm gegebenen Produktionsregeln beschreibt die Menge aller Eurobeträge.

Entsprechung EBNF <-> Syntaxdiagramm

In obigem Beispiel sind alle Kurzformen der EBNF enthalten:

R1: ZifferOhneNull = "1" | "2" | ... | "9"
R2: Ziffer = ZifferOhneNull | "0"
R3: ZahlOhneVornullen = ZifferOhneNull { Ziffer }
R4: Vorkommastellen = ZahlOhneVornullen | "0"
R5: Eurobetrag = Vorkommastellen ["," Ziffer Ziffer] " " "€"

(Regel R1: Oder-Operator; Regel R3: Wiederholung; Regel R5: Option)

Aufgabe 1:

Gegeben sei eine sehr einfache Programmiersprache, in der nur

  • Variablenbezeichner (bestehend aus den Buchstaben a bis z),
  • ganze Zahlen (ohne Vornullen, aber beliebig groß)
  • die Operatoren + und -
  • runde Klammern
  • der Zuweisungsoperator =
  • der Anweisungsende-Operator ;

vorkommen. Ein Programm ist entweder leer oder besteht aus einer Folge von Zuweisungen, die jeweils mit einem Strichpunkt enden, z.B.

alter=12+(3-4);r=3+(10-(alter+b-5));

a) Geben Sie eine Grammatik in EBNF an, die Programme dieser Programmiersprache beschreibt.
b) Übersetzen Sie die Produktionsregeln dieser Grammatik in ein Syntaxdiagramm.

Lösung

formalesprachen/syntaxdiagramme.txt · Zuletzt geändert: von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki