Redukovaná gramatika

Z testwiki
Skočit na navigaci Skočit na vyhledávání

Šablona:Bez zdrojů Redukovaná gramatika je taková gramatika, která je bez nedosažitelných neterminálů a kde každý neterminál má konečný rozvoj, tj. každý neterminál A gramatiky lze přepsat na řetězec terminálních symbolů.

Definice

Gramatika G je redukovaná, pokud každý neterminální symbol A vyhovuje podmínkám

  • Sw1Aw2,
  • existuje-li xL(G), že w1Aw2x.

kde w1,w2 jsou libovolné řetězce.

Gramatiku G nazveme nejednoznačnou, pokud existuje řetězec xL(G), pro který existují dva různé způsoby odvození. Jinak nazveme gramatiku jednoznačnou.

Příklad redukované gramatiky

Mějme gramatiku G=(N,Σ,P,S) definovanou množinami

N={S,A}
T={a,b}
P={SaAa,AbAb,Aa},

potom řetězec x=abbabbaT je větou jazyka L(G), protože platí

SaAaabAbaabbAbbaabbabba a tedy Sx.

Z toho je vidět, že jazyk generovaný danou gramatikou je L(G)={x|x=abnabna,n=0,1,2...}.

Zároveň vidíme, že gramatika je redukovaná, protože všechna přepisovací pravidla jsou typu Sw1Aw2. Gramatika je jednoznačná, protože existuje pouze jeden způsob jak vygenerovat x.

Příklad neredukované gramatiky

Nechť G=(N,Σ,P,S) je gramatika definovaná množinami

N={S,A}
T={0,1}
P={S01,S0S1,SA,S1S0,SSS},

G je nejednoznačná, protože větu 0101 lze odvodit dvěma různými způsoby

  • S0S10101
  • SSS01S0101

G je neredukovaná, protože obsahuje pravidlo SA. Pokud toto pravidlo aplikujeme, nelze již vygenerovat terminální řetězec. Když toto pravidlo z gramatiky odebereme, dostaneme redukovanou gramatiku.

Související články