kontextfreie Grammatik

Neue Frage »

Auf diesen Beitrag antworten »
gmxfor kontextfreie Grammatik

Meine Frage:
Geben Sie eine kontextfreie Grammatik an, die genau die Sprache erzeugt, die durch den regulären Ausdruck

a(b|cc)*(a|e)

dargestellt wird.

Wie muss ich vorangehen?

Meine Ideen:
...
 
Auf diesen Beitrag antworten »
eulerscheZahl

Du hast 3 Bestandteile: a, (b|cc)* und a|e.
Generieren wir die doch direkt:
S -> aAB
Der erste Teil ist damit schon angedeckt.
B -> a|e ist auch einfach.
Was wird jetzt aus A?
Auf diesen Beitrag antworten »
gmxfor

A -> (b|cc)*
Auf diesen Beitrag antworten »
eulerscheZahl

Den Stern gibt es aber in einer Grammatik nicht.
Wie könnte man den umschreiben?
 
Auf diesen Beitrag antworten »
gmxfor

ich weiß nicht genau aber vielleicht:

{0,}
Auf diesen Beitrag antworten »
eulerscheZahl

Nein.
Du erzeugst einfach ein neues A, dann kannst du die Regel erneut anwenden:
A -> Ab | Acc
Eine Sache fehlt noch. Welche?
Auf diesen Beitrag antworten »
gmxfor

leider weiß ich es nicht

A-> bA | ccA das ist ja in dem Fall das gleiche
Auf diesen Beitrag antworten »
eulerscheZahl

Aber mit den Regeln allein geht das A nie weg. Also...?
Auf diesen Beitrag antworten »
gmxfor

ja b und cc sind ja in einer unendlichen Schleife wegen dem Stern, also kann man A nicht ersetzen
Auf diesen Beitrag antworten »
eulerscheZahl

Und was muss man tun, damit man das A trotzdem wegbekommt?
Auf diesen Beitrag antworten »
gmxfor

das A mit a generieren
Auf diesen Beitrag antworten »
eulerscheZahl

An die Möglichkeit hatte ich gar nicht gedacht, das ist aber auch möglich. Daumen hoch
Ich hätte einen Epsilon Übergang verwendet.
Auf diesen Beitrag antworten »
gmxfor

dann würde es heißen

A -> Ab|Acc
A -> a
A -> ab|acc

oder

A -> Ab|Acc
A -> epsilon
A -> b|cc
Auf diesen Beitrag antworten »
eulerscheZahl

S -> Aa | Ae
A -> a | Ab | Acc
Auf diesen Beitrag antworten »
gmxfor

achso ok vielen Dank
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »