71
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konstekstno slobodne gramatike Vežbe 07 - PPJ Nemanja Mićović [email protected] Matematički fakultet, Univerzitet u Beogradu 4. decembar 2017

Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

Embed Size (px)

Citation preview

Page 1: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Konstekstno slobodne gramatikeVežbe 07 - PPJ

Nemanja Mićović[email protected]

Matematički fakultet, Univerzitet u Beogradu

4. decembar 2017

Page 2: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Sadržaj

Konstekstno slobodne gramatikeRečenična formaRelacija izvođenjaIzvođenje u gramatici

PrimeriAritmetički izraziLista brojeva

Transformacije gramatikaČišćenje suvišnih simbolaOslobađanje jednostrukih pravilaOslobađanje leve rekurzijeOslobađanje od ε pravila

Page 3: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Sadržaj

Konstekstno slobodne gramatikeRečenična formaRelacija izvođenjaIzvođenje u gramatici

PrimeriAritmetički izraziLista brojeva

Transformacije gramatikaČišćenje suvišnih simbolaOslobađanje jednostrukih pravilaOslobađanje leve rekurzijeOslobađanje od ε pravila

Page 4: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Sintaksna analiza

▶ Omogućava nam da proverimo sintaksu/pravopis jezika▶ Želimo formalizam za opis sintakse koji je dovoljno izražajan [Aho et al., 1986]

Page 5: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Primer sintaksne analize

▶ gcc vrši sintaksnu analizu nad našim kodom▶ Prijavljuje sintaksnu grešku

#include <stdio.h>

int main(){

int i = 0 j = 0;return 0;

}

test.c: In function ’main’:test.c:5:15: error: expected ’,’ or ’;’ before ’j’int i = 0 j = 0;

^

Page 6: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Gramatike

▶ Formalizam za opis sintakse jezika▶ Izražajniji mehanizam od regularnih izraza

Page 7: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Primer gramatike

▶ Pravila:▶ 1. A → aAb▶ 2. A → ε

▶ Primer izvođenja: A ⇒1 aAb ⇒1 aaAbb ⇒1 aaaAbbb ⇒2 aaaεbbb▶ Pravila definišu jezik: L = {anbn|n ≥ 0}1

1Primetimo da navedeni jezik nije moguće opisati regularnim izrazima jer nije regularan, dokaz sapredavanja.

Page 8: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Simboli u konstekstno slobodnoj2 gramatici

Simboli mogu biti▶ završni (terminalni simboli, terminali, tokeni)▶ nezavršni (neterminalni simboli, neterminali, pomoćni simboli)

U prethodnom primeru:▶ Završni: {a, b}▶ Nezavršni: {A}

2Termin će biti objašnjen kasnije

Page 9: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Zadatak 1

▶ Opisati KS gramatikom jezik L = {anbn|n > 0}

▶ Rešenje

▶ A → aAb▶ A → ab

Page 10: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Zadatak 1

▶ Opisati KS gramatikom jezik L = {anbn|n > 0}▶ Rešenje

▶ A → aAb▶ A → ab

Page 11: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Zadatak 1

▶ Opisati KS gramatikom jezik L = {anbn|n > 0}▶ Rešenje

▶ A → aAb

▶ A → ab

Page 12: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Zadatak 1

▶ Opisati KS gramatikom jezik L = {anbn|n > 0}▶ Rešenje

▶ A → aAb▶ A → ab

Page 13: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Zadatak 2

▶ Zapisati jezik a*b* koristeći KS gramatike▶ S → AB▶ A → aA▶ A → ε▶ B → bB▶ B → ε

Page 14: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Definicija KS gramatike

KS Gramatika G je uređena četvorka (Σ,N,S,P), za koju važi▶ Σ je skup završnih simbola▶ N je skup nezavršnih simbola▶ S je aksioma (početni simbol), S ∈ N▶ P je skup pravila gramatike, P ⊆ N × (N ∪ Σ)

Page 15: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Definicija KS gramatike - primer

Gramatika:▶ A → aAb▶ A → ε

Skupovi:▶ Σ = {a, b}▶ N = {A}▶ S = A▶ P = {(A, aAb), (A, ab)}

Page 16: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Šta znači termin kontekstno oslobodna?

▶ Sa leve strane pravila, javlja se tačno jedan neterminalni simbol▶ Inače, primena pravila zavisi od konteksta

Konstekstno slobodna gramatika:▶ A → aAb▶ A → ε

Gramatika koja nije kontekstno slobodna:▶ A → aBcBb▶ aB → aaB▶ Bb → Bbb

Page 17: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Rečenična forma

Rečenična forma je bilo koja rečenica iz (N ∪ Σ)∗:▶ S je rečenična forma▶ Ako je αXβ rečenična forma i X → γ ∈ P, tada je αγβ takođe rečenična forma

Tada pišemo αXβ ⇒ αγβ i kažemo da su ove dve rečenične forme u relacijiizvođenja.

Page 18: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Relacije izvođenja

▶ → koristimo za pravila gramatike▶ ⇒ koristimo za relaciju izvođenja rečeničnih formi▶ ⇒+ tranzitivno zatvorenje (izvodi se u jednom ili više koraka)▶ ⇒∗ tranzitivno i refleksivno zatvorenje (izvodi se u nula ili više koraka)

Page 19: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Jezik gramatike

Jezik gramatike G možemo definisati na sledeći način:

L(G) = {w ∈ Σ∗|S ⇒∗ w}

Page 20: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Izvođenje u gramatici

Podsetimo se gramatike G jezika L = {anbn|n ≥ N}▶ Pravila gramatike:

▶ 1. A → aAb▶ 2. A → ε

▶ Primer izvođenja: A ⇒1 aAb ⇒1 aaAbb ⇒1 aaaAbbb ⇒2 aaaεbbb ⇒ aaabbb▶ Što kraće možemo zapisati kao A ⇒∗ aaabbb ∈ L(G)

Page 21: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Izvođenje u gramatici

▶ Izvođenje u gramatici G je niz rečeničnih formi Ri gde je prva aksioma (S),poslednja reč iz jezika (w), i svake dve su u relaciji izvođenja (⇒).

▶ S ⇒ R1 ⇒ R2 ⇒ ... ⇒ Rn ⇒ w▶ Programski prevodioci pri sintaksnoj analizi izvođenjem koristeći pravila gramatike

proveravaju sintaksu programskog koda

Page 22: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Sadržaj

Konstekstno slobodne gramatikeRečenična formaRelacija izvođenjaIzvođenje u gramatici

PrimeriAritmetički izraziLista brojeva

Transformacije gramatikaČišćenje suvišnih simbolaOslobađanje jednostrukih pravilaOslobađanje leve rekurzijeOslobađanje od ε pravila

Page 23: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi

▶ Prepoznajemo aritmetičke izraze▶ 1 + 9 + 10

▶ 100 + 200 + 300

▶ Radi apstrakcije, brojeve ćemo označavati sa a

Page 24: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi - rešenje 1

Uočimo sledeću gramatiku3 G+R:▶ 1. E → a▶ 2. E → a + E

Izvedimo izraz a + a + a:

E ⇒2 a + E ⇒2 a + a + E ⇒1 a + a + a

3E potiče od engleskog naziva expression za izraz

Page 25: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi - rešenje 1

Slika: Drvo izvođenja

Slika: Drvo apstraktne sintakse

Page 26: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Izrazi - rešenje 1

▶ Gramatika G+R je desno rekurzivna▶ Primetimo da su prikazana drveta nagnuta na desno

Page 27: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi - rešenje 2

Uočimo sledeću gramatiku G+L:▶ 1. E → a▶ 2. E → E + a

Izvedimo izraz a + a + a:

E ⇒2 E + a ⇒2 E + a + a ⇒1 a + a + a

Page 28: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi - rešenje 2

Slika: Drvo izvođenja

Slika: Drvo apstraktne sintakse

Page 29: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi - rešenje 2

▶ Gramatika G+L je levo rekurzivna▶ Primetimo da su prikazana drveta nagnuta na levo

Page 30: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi - rešenje 3

Uočimo sledeću gramatiku G+LD:▶ 1. E → a▶ 2. E → E + E

Izvedimo izraz a + a + a:▶ Najlevlje izvođenje:

E ⇒2 E + E ⇒1 a + E ⇒2 a + E + E ⇒1 a + a + E ⇒1 a + a + a▶ Najdešnje izvođenje:

E ⇒2 E + E ⇒1 E + a ⇒2 E + E + a ⇒1 a + a + a ⇒1 a + a + a

Page 31: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi - rešenje 3

Slika: Drvo izvođenja za najlevlje izvođenje Slika: Drvo izvođenja za najdešnje izvođenje

Page 32: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi - rešenje 3

Slika: Drvo apstraktne sintakse za najlevljeizvođenje

Slika: Drvo apstraktne sintakse za najdešnjeizvođenje

Page 33: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi - rešenje 3

▶ Gramatika G+LD ima dva različita drveta izvođenja za isti skup pravila!▶ Takvu gramatiku nazivamo višeznačna gramatika▶ Ispitivanje da li je gramatika višeznačna je neodlučiv problem▶ Ipak, ukoliko postoji pravilo koje je i levo i desno rekurzivno, to je odličan

indikator o višeznačnosti

Page 34: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2

▶ Želimo da omogućimo i množenje▶ Analizirajmo sledeću gramatiku G+∗LD:

1. E → a2. E → E + E3. E → E ∗ E

▶ Ili kraće: E → a | E + E | E ∗ E

Page 35: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2

▶ Izvedimo a + a ∗ a▶ Ako prvo koristimo drugo pravilo:

I1 : E ⇒2 E + E ⇒1 a + E ⇒3 a + E ∗ E ⇒1 a + a ∗ E ⇒1 a + a ∗ a▶ Ako prvo koristimo treće pravilo:

I2 : E ⇒3 E ∗ E ⇒2 E + E ∗ E ⇒1 a + E ∗ E ⇒1 a + a ∗ E ⇒1 a + a ∗ a

Page 36: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - drveta

Slika: Drvo izvođenja za I1 Slika: Drvo izvođenja za I2

Page 37: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - drveta

▶ Koje od prikazanih drveta je ispravno ako se uzme u obzir da množenje ima većiprioriet od sabiranja?

Slika: Drvo apstraktne sintakse za I1 Slika: Drvo apstraktne sintakse za I2

Page 38: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka

▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 39: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva

▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 40: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 41: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T

2. E → T3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 42: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T

3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 43: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T3. T → T ∗ a

4. T → a▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 44: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 45: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a

▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 46: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost

▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 47: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija

▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 48: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

▶ Izraze posmatramo kao niz sabiraka▶ Svaki sabirak je ili broj ili proizvod brojeva▶ To nas inspiriše za gramatiku G+∗L

1. E → E + T2. E → T3. T → T ∗ a4. T → a

▶ Kraće: E → E + T | T i T → T ∗ a | a▶ Gubimo višeznačnost▶ Rešavamo problem prioriteta operacija▶ I : E ⇒1 E + T ⇒2 T + T ⇒4 a + T ⇒3 a + T ∗ a ⇒4 a + a ∗ a

Page 49: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 2 - pokušaj 2

Slika: Drvo apstraktne sintakse za ISlika: Drvo apstraktne sintakse za I

Page 50: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 3 - kompletirani

▶ Želimo da dodamo -, / i zagrade▶ Gramatika Gopz

▶ E → E + T | E − T | T▶ T → T ∗ F | T/F |F▶ F → a | (E)

▶ Izvedimo (a + a) ∗ a▶ E ⇒ T ⇒ T ∗ F ⇒ F ∗ F ⇒ (E) ∗ F ⇒ (E + T) ∗ F ⇒ (T + T) ∗ F▶ (T + T) ∗ F ⇒ (F + T) ∗ F ⇒ (a + T) ∗ F ⇒ (a + F) ∗ F ⇒ (a + a) ∗ F ⇒ (a + a) ∗ a

Page 51: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Aritmetički izrazi 3 - kompletnirani

Slika: Drvo apstraktne sintakse za I

Slika: Drvo apstraktne sintakse za I

Page 52: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Lista brojeva

▶ Konstekstno slobodnom gramatikom opisati4 liste brojeva.▶ Na primer5, 1, 8, 5, 6, 1, 9, 4, 3

▶ BROJ → 1|2|3|4|5|6|7|8|9

▶ lista → BROJ, lista▶ lista → BROJ▶ Ili kraće: lista → BROJ, lista|BROJ

4Koristićemo simbol | kako bi izbegli suvišna ponavljanja pravila koje imaju istu levu stranu.5Vidite li nešto interesantno u brojevima?

Page 53: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Lista brojeva

▶ Konstekstno slobodnom gramatikom opisati4 liste brojeva.▶ Na primer5, 1, 8, 5, 6, 1, 9, 4, 3

▶ BROJ → 1|2|3|4|5|6|7|8|9▶ lista → BROJ, lista

▶ lista → BROJ▶ Ili kraće: lista → BROJ, lista|BROJ

4Koristićemo simbol | kako bi izbegli suvišna ponavljanja pravila koje imaju istu levu stranu.5Vidite li nešto interesantno u brojevima?

Page 54: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Lista brojeva

▶ Konstekstno slobodnom gramatikom opisati4 liste brojeva.▶ Na primer5, 1, 8, 5, 6, 1, 9, 4, 3

▶ BROJ → 1|2|3|4|5|6|7|8|9▶ lista → BROJ, lista▶ lista → BROJ

▶ Ili kraće: lista → BROJ, lista|BROJ

4Koristićemo simbol | kako bi izbegli suvišna ponavljanja pravila koje imaju istu levu stranu.5Vidite li nešto interesantno u brojevima?

Page 55: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Lista brojeva

▶ Konstekstno slobodnom gramatikom opisati4 liste brojeva.▶ Na primer5, 1, 8, 5, 6, 1, 9, 4, 3

▶ BROJ → 1|2|3|4|5|6|7|8|9▶ lista → BROJ, lista▶ lista → BROJ▶ Ili kraće: lista → BROJ, lista|BROJ

4Koristićemo simbol | kako bi izbegli suvišna ponavljanja pravila koje imaju istu levu stranu.5Vidite li nešto interesantno u brojevima?

Page 56: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Sadržaj

Konstekstno slobodne gramatikeRečenična formaRelacija izvođenjaIzvođenje u gramatici

PrimeriAritmetički izraziLista brojeva

Transformacije gramatikaČišćenje suvišnih simbolaOslobađanje jednostrukih pravilaOslobađanje leve rekurzijeOslobađanje od ε pravila

Page 57: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Čišćenje suvišnih simbola - nedostižni simboli

▶ Nedostižni simboli su svi simboli koji nisu dostižni▶ Pronalaženjem dostižnih simbola saznajemo koji su nedostižni

▶ Nivo 1: Aksioma je dostižan simbol▶ Nivo 2: Svi simboli koje se nalaze sa desne strane aksiome su dostižni▶ ...▶ Nivo n: Svi simboli koje se nalaze sa desne strane pravila iz prethodnoh nivoa su

dostižna

Page 58: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Čišćenje suvišnih simbola - nedostižni simboli

▶ A → aB | bA▶ B → cD | E▶ C → CA | Ba▶ D → a | b▶ E → eE | Ee▶ F → Ca | Fb

Dostižni simboli:1. nivo: A2. nivo: A, B3. nivo: A, B, D, E4. nivo: A, B, D, E

Nedostižni:▶ C, F (jer nisu dostižni)

Page 59: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Čišćenje suvišnih simbola - nedostižni simboli

▶ A → aB | bA▶ B → cD | E▶ C → CA | Ba▶ D → a | b▶ E → eE | Ee▶ F → Ca | Fb

Slika: Dostižni simboli

Page 60: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Čišćenje suvišnih simbola - neproduktivni simboli

▶ Neproduktivni simboli su oni koji imaju rekurzivno pravilo a nemaju izlaz izrekurzije

▶ Neproduktivne simbole ćemo naći tako što pronađemo prvo produktivne▶ Nivo 1: Simboli koji ne izvode neterminale su produktivni simboli▶ ...▶ Nivo n: Simboli koji izvode terminale i produktivne simbole iz prethodnog nivoa.

Page 61: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Čišćenje suvišnih simbola - neproduktivni simboli

▶ A → aB | bA▶ B → cD | E▶ D → a | b▶ E → eE | Ee

Produktivni simboli:1. nivo: D2. nivo: D, B3. nivo: D, B, A4. nivo: D, B, A

Neproduktivni:▶ E (jer nije produktivan)

Page 62: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Čišćenje suvišnih simbola - konačna gramatika

Polazna gramatika:▶ A → aB | bA▶ B → cD | E▶ C → CA | Ba▶ D → a | b▶ E → eE | Ee▶ F → Ca | Fb

Redukovana gramatika:▶ A → aB | bA▶ B → cD | E▶ D → a | b

Page 63: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Oslobađanje jednostrukih pravila

▶ Pravilo je jednostruko ako ima samo jedno izvođenje (samo jednu desnu stranu)▶ Oslobađamo se tako što desnu stranu jedostrukog pravila uvrstimo umesto leve

strane pravila u svim ostalim pravilimaPolazna gramatika:

▶ A → aB | bA▶ B → cD | E▶ C → CA | Ba▶ D → a | b▶ E → eE | Ee▶ F → Ca | Fb

Redukovana gramatika:▶ A → aB | bA▶ B → cD▶ D → a | b

Nakon oslobađanja jednostrukih pravila:▶ A → acD | bA▶ D → a | b

Page 64: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Oslobađanje jednostrukih pravila

▶ Gramatiku možemo još dodatno skratiti (ovaj put više iz zabave)▶ Koji jezik opisuje gramatika? (Napisati regularni izraz)

Polazna gramatika:▶ A → aB | bA▶ B → cD | E▶ C → CA | Ba▶ D → a | b▶ E → eE | Ee▶ F → Ca | Fb

Izuzetno redukovana gramatika:▶ A → aca | acb | bA

Page 65: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Oslobađanje leve rekurzije

▶ Pravilo je levo-rekurzivno ako je neterminal sa leve strane prvi simbol sa desnestrane pravila

▶ Jezik βα∗ opisan je sledećom gramatikom: A → Aα | β▶ Leve rekurzije se oslobađamo uvođenjem novog neterminala:

▶ A → βA′

▶ A′ → αA′ | ε▶ Eliminišemo epsilon:

▶ A → βA′ | β▶ A′ → αA′ | α

Page 66: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Oslobađanje leve rekurzije - opšti postupak

▶ Jezik (β1|β2|...|βm)(α1|α2|...|αn)∗▶ Gramatika: A → Aα1 | Aα2 | ... | Aαn | β1 | β2 | ... |βm▶ Nakon oslobađanja:

▶ A → β1A′ |β2A′ | ... |βmA′

▶ A′ → α1A′ |α2A′ | ... |αnA′ | ε▶ Nakon eliminisanja ε pravila:

▶ A → β1A′ |β2A′ | ... |βmA′ | β1 | β2 | ... | βm▶ A′ → α1A′ | α2A′ | ... |αnA′ | α1 | α2 | ... | αn

Page 67: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Oslobađanje od ε pravila

Gramatika je ε slobodna▶ ako nema ε pravilo ili ako se ono javlja samo u aksiomi, pri čemu aksioma ne sme

da se javlja sa desne strane pravilaAnulirajući simboli su oni simboli koji mogu da izvedu ε u nula ili više koraka(A ⇒∗ ε)

Page 68: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Oslobađanje od ε pravila

Polazna gramatika:▶ S → Aa | Bba▶ A → aBB | CC | aD▶ B → aB | b▶ C → CD | DE | a▶ D → aB | bBa | ε▶ E → aD | DD

Tražimo simbole koji izvode ε, a potom isimbole koji izvode pronađene anulirajućesimbole

1. A0 = {D}2. A1 = {D,E}3. A2 = {D,E,C}4. A3 = {D,E,C,A}5. A4 = {D,E,C,A}

Page 69: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Oslobađanje od ε pravila

Svaka desna strana se piše više puta uzimajući u obzir da li anulirajući simbol može dase javi ili ne:

▶ pravilo S: A je anulirajući simbol pa možemo izvesti a (ako A izvede ε) ili Aa (akoA ne izvede ε)

▶ pravilo A:▶ –C je anulirajući simbol pa možemo izvesti C ili CC▶ –D je anulirajući simbol pa možemo izvesti a ili aD

▶ pravilo B: nema anulirajućih simbola pa ga prepisujemo▶ pravilo C:

▶ C i D su anulirajući pa možemo izvesti D, C, CD i εC i D su anulirajući pa možemoizvesti D, C, CD i ε (nećemo pisati ε)

▶ D i E su anulirajući pa možemo izvesti D, E ili DE▶ pravilo E: D je anulirajući pa možemo da izvedemo a, aD, D ili DD

Page 70: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Oslobađanje od ε pravila

Dobija se sledeća gramatika:▶ S → a | Aa | Bba▶ A → aBB | C | CC | a | aD▶ B → ab | b▶ C → D | CD | E | DE | a▶ D → aB | bBa▶ E → a | aD | D | DD

Page 71: Konstekstno slobodne gramatike - Vežbe 07 - PPJpoincare.matf.bg.ac.rs/~nemanja_micovic/materijali/ppj/2016.2017/... · Transformacije gramatika ... Podsetimo se gramatike G jezika

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Literatura IAho, A. V., Sethi, R., and Ullman, J. D. (1986).Compilers principles, techniques, and tools.Addison-Wesley, Reading, MA.