Forum: PC-Programmierung BNF-Syntaxdiagramm


von Andre L. (principia)


Lesenswert?

Hallo,

ich habe ein Problem mit der Überführung der BNF

X::=bX|A
A::=aa

in das dazugehörigr Syntaxdiagramm.
Für mich ist Überführung eine ODERverknüpfung in der Form

X::= bX|aa

und die syntaktisch korrekten Worte von X sind:aa und bX.

Ist aber wahrscheinlich nicht richtig, über das richtige Ergebnis wäre 
ich euch dankbar.

Gruß
A.L.

von Besserwisser (Gast)


Lesenswert?

@ Andre

Entschuldige, aber ich verstehe Dein Problem nicht ganz.

>Für mich ist Überführung eine ODERverknüpfung
Was soll das bedeuten?

Du hast aber soweit richtig erkannt, das die Syntaxen (ist das die 
Mehrzahl oder gibt es davon keine ?)

X::=bX|A
A::=aa

und

X::= bX|aa

äquivalent sind.

War das Deine Frage?

von yalu (Gast)


Lesenswert?

Hinweis: Oder-Verknüpfungen (bX|A) erscheinen im Syntaxdiagramm als
Verzweigung, Anfangs- und Endrekursionen (X::=bX) als Schleife. Damit
hast du schon fast die Lösung ;-)

von Andre L. (principia)


Lesenswert?

Also, die Frage ist eine Prüfungsfrage!
Sie lautet genau:
Geeben sie 3 syntaktisch korrekte Worte der Sprache X an und stellen sie 
a in einem Syntaxdiagramm dar!

Frage an yalu:
Wenn die Verknüpfung geklammert wird (bX|A)bekommt sie da nicht eine 
andere Bedeutung?

von yalu (Gast)


Lesenswert?

Die Klammern dienen nur zur Gruppierung der Teilausdrücke. Beispiel.:

  a|bc    liefert die Worte a und bc, da das | schwächer bindet als
          die Verkettung von b und c

  (a|b)c  liefert die Worte ac und bc

Wenn die Klammern aber ganz außen stehen (wie in (bx|A)), kann man sie
genauso gut weglassen.

von Εrnst B. (ernst)


Lesenswert?

Nochmal zum Anfang zurück:

> und die syntaktisch korrekten Worte von X sind:aa und bX.

X ist ein Nichtterminal, kann also in keinem Wort vorkommen.

Vielleicht hilft dir die Überführung in eine Regexp (b*aa), wenn du 
deren mächtig bist, die Grammatik zu verstehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.