Eliminacija ε-pravila

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

Ukoliko gramatika poseduje ε-pravila, može se dogoditi da tokom izvođenja dužina rečeničnih formi počne da opada, a poželjno je, zbog potreba analize, izbeći ovakvu situaciju. U postupku eliminacije ε-pravila iz kontekstno slobodne gramatike podrazumeva se da je iz jezika eventualno odstranjena prazna reč ε.[1]

Algoritam eliminacije

Za zadatu gramatiku -{G}-, postupak se sastoji iz dva koraka:

  1. kostrukcije skupa A(G)N anulirajućih simbola, tj. skupa pomoćnih simbola koji se mogu prepisati kao prazna reč.
  2. transformacije pravila koja sadrže anulirajuće simbole


1. korak

Za datu KS-gramatiku -{G}- bez nekorisnih simbola, skup anulirajućih simbola -{A(G)}-, inicijalno prazan, se dobija primenom sledećih rekurzivnih pravila:

  1. XN je anulirajući ako je XϵP. Svaki takav X se dodaje u skup -{A(G)}-.
  2. XN je anulirajući postoji bar jedno pravilo XαP gde su svi pomoćni simboli u niski α anulirajući. ( αN*)


2. korak

Kada je određen skup -{A(G)}-, modifikuju se pravila gramatike -{G}- koja sadrže anulirajuće simbole tako što se u svakom pravilu XαP u niski α zamene anulirajući simboli praznom reči ε na sve moguće načine, a zatim se odstrane ε-pravila. KS-gramatika koja se dobija kao rezultat ove transformacije je ekvivalentna polaznoj gramatici do na praznu reč.

Primer

Neka je gramatika G nad Σ={(,)} N={S}, -{P}- :

SS(S)|ϵ

Jedini neterminal -{S}- je i anulirajući. U niski α = -{S(S)}- zamenjujemo simbol -{S}- sa ε na sve moguće načine što daje novo pravilo:

SS(S)|(S)|S()|()

koje opisuje isti jezik ali bez prazne reči. U skladu sa definicijom, gramatika se može modifikovati uvođenjem novog početnog simbola -{T}- umesto -{S}- i dodavanjem novog pravila:

TS|ϵ

gramatika sa novim skupom pravila opisuje isti jezik kao polazna.

Pogledajte još


Beleške

Шаблон:Reflist

Шаблон:Normativna kontrola

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