Eliminacija jednostrukih pravila

Извор: testwiki
Пређи на навигацију Пређи на претрагу

Neka je data KS-gramatika G=(Σ,N,P,S). Pretpostavimo da je u gramatici -{G}- nema nekorisnih simbola, ni ε-pravila. Postupak eliminacije jednostrukih pravila se svodi na postupak traženja svih izvođenja oblika:[1]

X⇒∗Y,X,Y∈N.

Ovaj postupak se vrši rekurzivno polazeći od jednostrukih pravila. Kad god se pronađe izvođenje gornjeg oblika, pravilima koja na levoj strani imaju -{X}- dodaju se desne strane svih pravila koja nisu jednostruka, a koja na levoj strani imaju simbol -{Y}-, dok se jednostruka -{Y}--pravila uklanjaju. Ovako transformisana gramatika može imati nekorisnih simbola, koje treba eliminisati. Dobijena gramatika je ekvivalentna polaznoj gramatici, a nema nekorisnih simbola, kao ni jednostrukih ili ε-pravila.

Primer

U gramatici oslobođenoj od ε-pravila:

(1) T→S|ϵ
(2) S→S(S)|(S)|S()|()

jedino jednostruko izvođenje je T⇒S. Zamenom simbola -{S}- na desnoj strani pravila (1) dosnom stranom pravila (2), dobija se sledeća gramatika bez jednostrukih pravila:

(1) T→ϵ|S(S)|(S)|S()|()
(2) S→S(S)|(S)|S()|()

Види још

Beleške

Шаблон:Референце

Шаблон:Подножје

  1. ↑ Izvor kompletnog članka: „Prevodioci i interpretatori - uvod u teoriju i metode kompilacije programskih jezika“ - Duško Vitas.