2017-05-13 3 views
0

Szenario: Geben Sie Produktionsregeln für eine RECHTS-rekursive Grammatik, beschreibt die Menge aller nicht leeren Zeichenfolgen aus den Zeichen R und N, die beliebig viele zusammenhängende Wiederholungen von R enthalten kann, aber genau zwei oder genau drei zusammenhängende Wiederholungen von N.Gibt es eine bessere Möglichkeit, die Produktionsregeln einer rechtsrekursiven Grammatik zu schreiben?

Antwort:

A -> NB | R + A

B -> N D | N C | N ε

C -> N D | N

D -> R + D | R ε

Antwort

1

Falsch:

A -> NNB | NNNB | RA | R 
B -> R | RA | ε 

edit: die oben ist nicht richtig, falsch verstanden ich das Szenario.

Richtig:

S -> RS | A 
A -> NA | NB 
B -> RB | RC 
C -> NC | ND 
D -> RD | RE | ε 
E -> NE | NF 
F -> RF | ε 

Wie es funktioniert: Es mit S beginnt, das kann 0 oder mehr R erzeugen oder zu A bewegen, die die erste Gruppe von Ns erzeugt. Dann bewegt es sich nach B, was die Rs zwischen der ersten und der zweiten Gruppe von Ns erzeugt. Dann bewegt es sich nach C, was die zweite Gruppe von Ns erzeugt. Dann bewegt es sich zu D, das 0 oder mehr Rs erzeugen kann und entweder endet oder nach E geht, was die dritte Gruppe von Ns erzeugt. Zuletzt bewegt es sich zu F, das 0 oder mehr Rs erzeugt.

+0

Können Sie näher darauf eingehen? – EJoshuaS

+0

Sind Sie sicher, dass das richtig ist, weil es so aussieht, als ob Sie einen Satz haben könnten, der nur aus einem R (A -> R) besteht, der die 2-3 N nicht erfüllt? – Josh

+0

Oh. Ich habe wahrscheinlich missverstanden, was du willst. Ich nehme an, Sie wollen eine Grammatik, die Strings mit genau 2 oder 3 N-Gruppen generiert. –

Verwandte Themen