Benutzer-Werkzeuge

Webseiten-Werkzeuge


formalesprachen:aufgabe1loesung:start

Dies ist eine alte Version des Dokuments!


Lösung von Aufgabe 1:

Aufgabe:

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, d.h. ein Programm besteht aus einer Folge von Zuweisunngen, z.B.

alter=12+(3-4);
r=3+(10-(alter+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

Die Grammatik G = (A, V, P, S) mit

  • dem Alphabet A = {"0", "1", …, "9", "+", "-", ";", "="},
  • den Nichtterminalen V = {ZifferOhneNull, Ziffer, Buchstabe, Bezeichner, Term, Zuweisung, Programm}
  • dem Startsymbol S = Programm
  • und den nachfolgenden Produktionsregeln

beschreibt die gegebene Sprache.

Produktionsregeln:

R1: ZifferOhneNull = "1" | "2" | "3" | ... | "9"
R2: Ziffer = ZifferOhneNull | "0"
R3: Zahl = ([ "-" ] ZifferOhneNull { Ziffer }) | "0"
R4: Buchstabe = "a" | "b" | ... | "z"
R4: Bezeichner = Buchstabe { Buchstabe }
R5: Term = Zahl | Bezeichner | (Term "+" Term) | (Term "-" Term) | ("(" Term ")")
R6: Zuweisung = Bezeichner "=" Term ";"
R7: Programm = { Zuweisung }
formalesprachen/aufgabe1loesung/start.1758221232.txt.gz · Zuletzt geändert: von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki