ANALIZA SKŁADNIOWA

47
ANALIZA SKŁADNIOWA ANALIZA SKŁADNIOWA

description

ANALIZA SKŁADNIOWA. ANALIZA SKŁADNIOWA. Analiza składniowa stanowi kolejny, po analizie leksykalnej etap kompilacji; Analiza składniowa jest przeprowadzana przez analizator składniowy; Do analizatora składniowego dostarczane są dane w postaci symboli leksykalnych; - PowerPoint PPT Presentation

Transcript of ANALIZA SKŁADNIOWA

Page 1: ANALIZA SKŁADNIOWA

ANALIZA SKŁADNIOWAANALIZA SKŁADNIOWA

Page 2: ANALIZA SKŁADNIOWA

ANALIZA SKŁADNIOWAANALIZA SKŁADNIOWA

Analiza składniowa stanowi kolejny, po Analiza składniowa stanowi kolejny, po analizie leksykalnej etap kompilacji;analizie leksykalnej etap kompilacji; Analiza składniowa jest przeprowadzana Analiza składniowa jest przeprowadzana przez analizator składniowy;przez analizator składniowy;Do analizatora składniowego dostarczane Do analizatora składniowego dostarczane są dane w postaci symboli leksykalnych;są dane w postaci symboli leksykalnych;Analizator po zakończeniu pracy zwraca Analizator po zakończeniu pracy zwraca tzw. drzewo rozbioru lub jego uproszczoną tzw. drzewo rozbioru lub jego uproszczoną wersję (abstrakcyjne drzewo składniowe)wersję (abstrakcyjne drzewo składniowe)

22

Page 3: ANALIZA SKŁADNIOWA

ANALIZA SKŁADNIOWAANALIZA SKŁADNIOWA

Symbole leksykalne

Drzewo wyprowadzenia

Strumień danych wejściowych

Analizator leksykalny

Analizator składniowy

33

Page 4: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Inną metodą tworzenia języków Inną metodą tworzenia języków formalnych jest generowanie ich za formalnych jest generowanie ich za pomocą tzw. gramatyki bezkontekstowej;pomocą tzw. gramatyki bezkontekstowej;

Pierwowzorem gramatyk Pierwowzorem gramatyk bezkontekstowych były reguły bezkontekstowych były reguły powstawania zdań w językach powstawania zdań w językach naturalnych, czyli po prostu gramatyki naturalnych, czyli po prostu gramatyki języków naturalnych;języków naturalnych;

44

Page 5: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

płot szybki przeskoczył piespłot szybki przeskoczył pies

szybki pies przeskoczył płotszybki pies przeskoczył płot

Podstawowe pytanie: W jaki formalny Podstawowe pytanie: W jaki formalny sposób zweryfikować poprawność zdania?sposób zweryfikować poprawność zdania?

55

Page 6: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

zdanie

podmiot orzeczenie

przymiotnik rzeczownik czasownik dopełnienie

rzeczownik

Szybki pies przeskoczył płot

66

Page 7: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

gramatyka – reguły produkcji:gramatyka – reguły produkcji:Zdanie -> podmiot orzeczenieZdanie -> podmiot orzeczeniePodmiot -> przymiotnik rzeczownikPodmiot -> przymiotnik rzeczownikOrzeczenie -> czasownik dopełnienieOrzeczenie -> czasownik dopełnienieDopełnienie -> rzeczownikDopełnienie -> rzeczownikRzeczownik ->Rzeczownik -> płot płotPrzymiotnik ->Przymiotnik -> szybki szybkiCzasownik ->Czasownik -> przeskoczył przeskoczyłRzeczowniki ->Rzeczowniki -> pies pies

77

Page 8: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Za pomocą tych reguł możemy stworzyć Za pomocą tych reguł możemy stworzyć zdanie: szybki pies przeskoczył płot:zdanie: szybki pies przeskoczył płot:

zdaniezdanie=>podmiot orzeczenie=>podmiot orzeczenie=>przymiotnik rzeczownik orzeczenie=>przymiotnik rzeczownik orzeczenie

=>przymiotnik rzeczownik czasownik dopełnienie=>przymiotnik rzeczownik czasownik dopełnienie=>szybki rzeczownik czasownik dopełnienie=>szybki rzeczownik czasownik dopełnienie=> szybki pies czasownik dopełnienie=> szybki pies czasownik dopełnienie=>szybki pies przeskoczył dopełnienie=>szybki pies przeskoczył dopełnienie=>szybki pies przeskoczył płot=>szybki pies przeskoczył płot

88

Page 9: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Za pomocą reguł tej gramatyki można Za pomocą reguł tej gramatyki można jeszcze utworzyć trzy inne zdania:jeszcze utworzyć trzy inne zdania:

Szybki płot przeskoczył piesSzybki płot przeskoczył piesSzybki płot przeskoczył płotSzybki płot przeskoczył płotSzybki pies przeskoczył piesSzybki pies przeskoczył pies

99

Page 10: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Szybki płot przeskoczył pies:Szybki płot przeskoczył pies:

zdaniezdanie=>podmiot orzeczenie=>podmiot orzeczenie=>przymiotnik rzeczownik orzeczenie=>przymiotnik rzeczownik orzeczenie

=>przymiotnik rzeczownik czasownik dopełnienie=>przymiotnik rzeczownik czasownik dopełnienie=>szybki rzeczownik czasownik dopełnienie=>szybki rzeczownik czasownik dopełnienie=> szybki płot czasownik dopełnienie=> szybki płot czasownik dopełnienie=>szybki płot przeskoczył dopełnienie=>szybki płot przeskoczył dopełnienie=>szybki płot przeskoczył pies=>szybki płot przeskoczył pies

1010

Page 11: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Szybki płot przeskoczył płot:Szybki płot przeskoczył płot:

zdaniezdanie=>podmiot orzeczenie=>podmiot orzeczenie=>przymiotnik rzeczownik orzeczenie=>przymiotnik rzeczownik orzeczenie

=>przymiotnik rzeczownik czasownik dopełnienie=>przymiotnik rzeczownik czasownik dopełnienie=>szybki rzeczownik czasownik dopełnienie=>szybki rzeczownik czasownik dopełnienie=> szybki płot czasownik dopełnienie=> szybki płot czasownik dopełnienie=>szybki płot przeskoczył dopełnienie=>szybki płot przeskoczył dopełnienie=>szybki płot przeskoczył płot=>szybki płot przeskoczył płot

1111

Page 12: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Szybki pies przeskoczył pies:Szybki pies przeskoczył pies:

zdaniezdanie=>podmiot orzeczenie=>podmiot orzeczenie=>przymiotnik rzeczownik orzeczenie=>przymiotnik rzeczownik orzeczenie

=>przymiotnik rzeczownik czasownik dopełnienie=>przymiotnik rzeczownik czasownik dopełnienie=>szybki rzeczownik czasownik dopełnienie=>szybki rzeczownik czasownik dopełnienie=> szybki pies czasownik dopełnienie=> szybki pies czasownik dopełnienie=>szybki pies przeskoczył dopełnienie=>szybki pies przeskoczył dopełnienie=>szybki pies przeskoczył pies=>szybki pies przeskoczył pies

1212

Page 13: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Zauważmy iż zdaniaZauważmy iż zdania płot szybki przeskoczył piespłot szybki przeskoczył pies

nie można wyprowadzić za pomocą reguł nie można wyprowadzić za pomocą reguł powyższej gramatyki, gdyż nie znajdziemy powyższej gramatyki, gdyż nie znajdziemy takiego wyprowadzenia, po którym takiego wyprowadzenia, po którym rzeczownik byłby na początku zdania. Nie rzeczownik byłby na początku zdania. Nie ma produkcji:ma produkcji:

Podmiot -> rzeczownik Podmiot -> rzeczownik przymiotnikprzymiotnik

1313

Page 14: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Gramatyka bezkontekstowa, jest Gramatyka bezkontekstowa, jest przydatnym sposobem do opisania przydatnym sposobem do opisania języków programowania;języków programowania;Skonstruujmy teraz gramatykę Skonstruujmy teraz gramatykę bezkontekstową, którą będzie można bezkontekstową, którą będzie można opisać niektóre konstrukcje występujące w opisać niektóre konstrukcje występujące w językach programowania;językach programowania;Opisujemy konstrukcje: if, begin, while,Opisujemy konstrukcje: if, begin, while,Zakładamy, że I1,I2 są instrukcjami, E,D –Zakładamy, że I1,I2 są instrukcjami, E,D –wyrażeniami;wyrażeniami;

1414

Page 15: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

gramatyka – reguły produkcji:gramatyka – reguły produkcji:

Zdanie -> if zdanieZdanie -> if zdanieZdanie -> begin zdanieZdanie -> begin zdanieZdanie -> while zdanieZdanie -> while zdanieZdanie -> then zdanieZdanie -> then zdanieZdanie -> else zdanieZdanie -> else zdanieZdanie -> doZdanie -> doZdanie -> instrukcja zdanieZdanie -> instrukcja zdanie

1515

Page 16: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

gramatyka – reguły produkcji cd:gramatyka – reguły produkcji cd:

Zdanie -> wyrażenie zdanieZdanie -> wyrażenie zdanieZdanie -> instrukcjaZdanie -> instrukcjaInstrukcja -> I1Instrukcja -> I1Instrukcja -> I2Instrukcja -> I2Wyrażenie -> EWyrażenie -> EWyrażenie -> DWyrażenie -> D

1616

Page 17: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Za pomocą tych reguł możemy z łatwością Za pomocą tych reguł możemy z łatwością stworzyć instrukcję: if E then I1 else I2stworzyć instrukcję: if E then I1 else I2

zdaniezdanie=>=>ifif zdanie zdanie=>=>ifif wyrażenie zdanie wyrażenie zdanie=>=>ifif wyrażenie wyrażenie thenthen zdanie zdanie=> => ifif wyrażenie wyrażenie thenthen instrukcja zdanie instrukcja zdanie

=> => ifif wyrażenie wyrażenie thenthen instrukcja instrukcja elseelse zdanie zdanie=>=>ifif wyrażenie wyrażenie thenthen instukcja instukcja elseelse instrukcja instrukcja=>=>ifif EE thenthen instrukcja instrukcja elselse instrukcjae instrukcja

=>=>ifif EE thenthen I1I1 elseelse instrukcja instrukcja=>=>ifif EE thenthen I1I1 elseelse I2I21717

Page 18: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

while D do I2while D do I2

zdaniezdanie=>=>whilewhile zdanie zdanie=>=>whilewhile wyrażenie zdanie wyrażenie zdanie=>=>whilewhile wyrażenie wyrażenie dodo zdanie zdanie=> => whilewhile wyrażenie wyrażenie dodo instrukcja instrukcja=>=>whilewhile DD dodo instrukcja instrukcja=>=>whilewhile DD dodo I2I2

1818

Page 19: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Gramatyką bezkontekstową (GBK) - Gramatyką bezkontekstową (GBK) - nazywamy układ G=(V,nazywamy układ G=(V,ΣΣ,,P,S) składający P,S) składający się z następujących elementów:się z następujących elementów:

1.1.V – zbiór skończony, którego elementy V – zbiór skończony, którego elementy nazywamy nazywamy zmiennymi zmiennymi lub lub symbolami symbolami nieskończonyminieskończonymi;;

2.2. ΣΣ=={a{a11,…,a,…,ann} – zbiór skończony zwany } – zbiór skończony zwany alfabetemalfabetem gramatyki, którego elementy gramatyki, którego elementy nazywamy symbolami końcowymi;nazywamy symbolami końcowymi;

1919

Page 20: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

3.3. P P V x (V V x (V ΣΣ)* – skończony zbiór )* – skończony zbiór elementów zwanych elementów zwanych produkcjamiprodukcjami;;

4.4. S S єє V V – wyróżniona zmienna zwana – wyróżniona zmienna zwana zmienną początkową zmienną początkową lublub symbolem symbolem startowymstartowym. .

2020

Page 21: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Zbiór produkcji P – są to pary (X,Zbiór produkcji P – są to pary (X,αα), gdzie ), gdzie X X єє V jest pewna zmienną, a V jest pewna zmienną, a αα єє (V (VU U ΣΣ)* )* jest słowem utworzonym ze zmiennych i jest słowem utworzonym ze zmiennych i symboli końcowych (np.: symboli końcowych (np.: αα=aXYb);=aXYb); produkcja (X,produkcja (X,αα), wskazuje, że w trakcie ), wskazuje, że w trakcie konstruowania słów z konstruowania słów z ΣΣ na każdym etapie na każdym etapie możemy za zmienną X podstawić możemy za zmienną X podstawić αα;;Produkcje oznaczmy: Produkcje oznaczmy: X -> X -> αα;;Przykład: Przykład: Zdanie -> wyrażenie zdanieZdanie -> wyrażenie zdanie

2121

Page 22: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Niech G=(V,Niech G=(V,ΣΣ,,P,S) będzie dowolną P,S) będzie dowolną gramatyką bezkontekstową. Jeśli gramatyką bezkontekstową. Jeśli αα1 1 єє (V (VU U

ΣΣ)* jest słowem utworzonym ze zmiennych )* jest słowem utworzonym ze zmiennych i symboli końcowych i w słowie występuje i symboli końcowych i w słowie występuje pewna zmienna X, i do P należy produkcja pewna zmienna X, i do P należy produkcja X->X->ββ, to jeśli w miejsce X podstawimy , to jeśli w miejsce X podstawimy ββ i i tak otrzymane słowo oznaczymy przez tak otrzymane słowo oznaczymy przez αα22, , tzn. tzn. αα22= = γγ1 1 ββ γγ22, to zapisujemy to w , to zapisujemy to w następujący sposób:następujący sposób:

αα11 => => αα22

2222

Page 23: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Mówimy, że słowo Mówimy, że słowo ααkk єє (V (VU U ΣΣ)* jest )* jest wyprowadzalne z wyprowadzalne z αα11 єє (V (VU U ΣΣ)*, gdy istnieje )*, gdy istnieje skończony ciąg słów skończony ciąg słów αα22,,αα33,..., ,..., ααk-1k-1 єє (V (VU U ΣΣ)* )* taki, że:taki, że:

αα11=>=>αα22=>=>αα33=>...=>=>...=>ααk-1k-1=>=>ααkk;;Piszemy wtedy: Piszemy wtedy: αα11=>*=>*ααkk;;Przyjmujemy dodatkowo, że zawsze Przyjmujemy dodatkowo, że zawsze

αα=>*=>*αα;;

2323

Page 24: ANALIZA SKŁADNIOWA

PrzykładPrzykład

Niech Niech ={a,b} i w gramatyce G mamy ={a,b} i w gramatyce G mamy produkcje: P={S=>aX, X->bYa, X->bYbZ, produkcje: P={S=>aX, X->bYa, X->bYbZ, X->bY, Y->bZa, Y->bZb, Y->bZ, Z->aW, X->bY, Y->bZa, Y->bZb, Y->bZ, Z->aW, W->b, W->a}. Czy zdanie W->b, W->a}. Czy zdanie =abbabbab =abbabbab daje się wyprowadzić ze zdania daje się wyprowadzić ze zdania =abYbz?=abYbz?

11=abbZbZ; =abbZbZ; 22=abbaWbaW;=abbaWbaW;

=>=>11=>=>22=> =>

Page 25: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Jeśli słowo Jeśli słowo α α єє (V (VU U ΣΣ)* składa się )* składa się wyłącznie z symboli końcowych i jest wyłącznie z symboli końcowych i jest wyprowadzalne z S, to wyprowadzalne z S, to α α nazywamy nazywamy słowem generowanym przez gramatykęsłowem generowanym przez gramatykę G;G;

Językiem generowanym przez Językiem generowanym przez gramatykę gramatykę G nazywamy zbiór słów L(G) G nazywamy zbiór słów L(G) generowanych przez G, tzn:generowanych przez G, tzn:

L(G):={L(G):={ єє ΣΣ* : S=>* * : S=>* }; };2525

Page 26: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Język L nazywamy Język L nazywamy językiem językiem bezkontekstowym, bezkontekstowym, gdy L=L(G) dla pewnej gdy L=L(G) dla pewnej gramatyki bezkontekstowej G;gramatyki bezkontekstowej G;

Zbiór wszystkich języków Zbiór wszystkich języków bezkontekstowych oznaczamy przezbezkontekstowych oznaczamy przez JBKJBK;;

2626

Page 27: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Załóżmy, że mamy daną gramatykę Załóżmy, że mamy daną gramatykę bezkontekstową G oraz dowolną bezkontekstową G oraz dowolną produkcje tej gramatyki. Wówczas każdy produkcje tej gramatyki. Wówczas każdy symbol użyty po lewej stronie produkcji symbol użyty po lewej stronie produkcji nazywany jest nazywany jest nieterminalnym nieterminalnym (nieterminalem);(nieterminalem);Pozostałe symbole są symbolamiPozostałe symbole są symbolami terminalnymi (terminalami);terminalnymi (terminalami);

2727

Page 28: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

W omówionym przykładzie zaznaczamy:W omówionym przykładzie zaznaczamy:

ZdanieZdanie -> -> ifif zdaniezdanieZdanieZdanie -> -> beginbegin zdaniezdanieZdanieZdanie -> -> whilewhile zdaniezdanieZdanieZdanie -> -> thenthen zdaniezdanieZdanieZdanie -> -> elseelse zdaniezdanieZdanieZdanie -> -> dodo zdaniezdanieZdanieZdanie -> -> instrukcjainstrukcja zdaniezdanie

2828

Page 29: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

gramatyka – reguły produkcji cd:gramatyka – reguły produkcji cd:

ZdanieZdanie -> -> wyrażenie zdaniewyrażenie zdanieZdanieZdanie -> -> instrukcjainstrukcjaInstrukcjaInstrukcja -> -> I1I1InstrukcjaInstrukcja -> -> I2I2WyrażenieWyrażenie -> -> EEWyrażenieWyrażenie -> -> DDnieterminalenieterminale terminaleterminale

2929

Page 30: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Niech G będzie gramatyką Niech G będzie gramatyką bezkontekstową. Niech bezkontekstową. Niech 11=>=>22=>=>33=>...=>=>...=>kk, , 11,,22,...,,...,kk єє (V (VU U ΣΣ)* )* będzie wyprowadzeniem w G. będzie wyprowadzeniem w G. Wyprowadzenie to nazywamy Wyprowadzenie to nazywamy lewym lewym wyprowadzeniemwyprowadzeniem, gdy każde pojedyncze , gdy każde pojedyncze wyprowadzenie wyprowadzenie i-1i-1=>=>ii w tym łańcuchu w tym łańcuchu wyprowadzeń polega na zastosowaniu wyprowadzeń polega na zastosowaniu produkcji z G do pierwszej zmiennej w produkcji z G do pierwszej zmiennej w i-1 i-1 liczonych od lewej strony;liczonych od lewej strony;

3030

Page 31: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Niech G będzie gramatyką Niech G będzie gramatyką bezkontekstową. Niech bezkontekstową. Niech 11=>=>22=>=>33=>...=>=>...=>kk, , 11,,22,...,,...,kk єє (V (VU U ΣΣ)* )* będzie wyprowadzeniem w G. będzie wyprowadzeniem w G. Wyprowadzenie to nazywamy Wyprowadzenie to nazywamy prawym prawym wyprowadzeniemwyprowadzeniem, gdy każde pojedyncze , gdy każde pojedyncze wyprowadzenie wyprowadzenie i-1i-1=>=>ii w tym łańcuchu w tym łańcuchu wyprowadzeń polega na zastosowaniu wyprowadzeń polega na zastosowaniu produkcji z G do pierwszej zmiennej w produkcji z G do pierwszej zmiennej w i-1 i-1 liczonych od prawej strony;liczonych od prawej strony;

3131

Page 32: ANALIZA SKŁADNIOWA

PrzykładPrzykład

Jeśli Jeśli =abcXcaYdaXa i w G mamy =abcXcaYdaXa i w G mamy produkcję X->aYb, to:produkcję X->aYb, to:

abcXcaYdaXa => abcabcXcaYdaXa => abcaYbaYbcaYdaXa – jest caYdaXa – jest lewym wyprowadzeniem;lewym wyprowadzeniem;

abcXcaYdaXa => abcXcaYdaabcXcaYdaXa => abcXcaYdaaYbaYb – jest – jest prawym wyprowadzeniem;prawym wyprowadzeniem;

3232

Page 33: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Dla danej gramatyki G oraz S=>*Dla danej gramatyki G oraz S=>*, to , to wówczas:wówczas:

Jeśli Jeśli zawiera tylko terminale, to zawiera tylko terminale, to nazywamy nazywamy zdaniemzdaniem;;

Jeśli Jeśli zawiera terminale oraz zawiera terminale oraz nieterminale, lub same nieterminale, to nieterminale, lub same nieterminale, to nazywamy nazywamy formą zdaniowąformą zdaniową;;

WniosekWniosekZdanie jest formą zdaniową, która nie Zdanie jest formą zdaniową, która nie

zawiera nieterminali;zawiera nieterminali;3333

Page 34: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

Niech G będzie gramatyką bezkontekstową. Niech G będzie gramatyką bezkontekstową. Wówczas:Wówczas:

G jest gramatyką rekursywną (rekurencyjną), G jest gramatyką rekursywną (rekurencyjną), gdy:gdy:

X=>X=>XX;; G jest gramatyką lewostronnie rekursywną, gdy:G jest gramatyką lewostronnie rekursywną, gdy:

X=>XX=>X;; G jest gramatyką prawostronnie rekursywną, G jest gramatyką prawostronnie rekursywną,

gdy:gdy: X=>X=>X;X;

3434

Page 35: ANALIZA SKŁADNIOWA

DRZEWO WYPROWADZENIADRZEWO WYPROWADZENIANiech G=(V,Niech G=(V,,P,S) będzie dowolna ,P,S) będzie dowolna gramatyką, słowa Agramatyką, słowa A* będzie dowolnym * będzie dowolnym słowem. Wówczas A możemy słowem. Wówczas A możemy przyporządkować graf zwany przyporządkować graf zwany drzewem drzewem wyprowadzenia A w Gwyprowadzenia A w G.. Wierzchołkami drzewa wyprowadzenia są Wierzchołkami drzewa wyprowadzenia są pewne elementy zbioru Vpewne elementy zbioru V{{}. }. Zasady konstrukcji drzewa są Zasady konstrukcji drzewa są następujące:następujące:

3535

Page 36: ANALIZA SKŁADNIOWA

DRZEWO WYPROWADZENIADRZEWO WYPROWADZENIAZmienna początkowa S jest korzeniem Zmienna początkowa S jest korzeniem drzewa;drzewa;Jeśli XJeśli XVV{{} jest wierzcholkiem, to:} jest wierzcholkiem, to:

Jeśli XJeśli XV i w G mamy produkcję X-V i w G mamy produkcję X->X>X11...X...Xkk gdzie X gdzie X11...X...XkkVV{{} to nowymi } to nowymi wierzchołkami są Xwierzchołkami są X11...X...Xk k .. Od X Od X prowadzimy krawędzie skierowane do tych prowadzimy krawędzie skierowane do tych wierzchołków:wierzchołków:

XX

XX11 XX22...... XXkk

3636

Page 37: ANALIZA SKŁADNIOWA

DRZEWO WYPROWADZENIADRZEWO WYPROWADZENIA

Jeśli XJeśli X{{} (jest symbolem końcowym } (jest symbolem końcowym lub pustym) to X nie jest początkiem lub pustym) to X nie jest początkiem żadnej krawędzi skierowanej wtedy X jest żadnej krawędzi skierowanej wtedy X jest końcowym wierzchołkiem drzewakońcowym wierzchołkiem drzewa;;

Gdy wszystkie wierzchołki końcowe są Gdy wszystkie wierzchołki końcowe są oznaczone symbolami końcowymi, to oznaczone symbolami końcowymi, to słowo z nich utworzone, czytane od lewej słowo z nich utworzone, czytane od lewej do prawej, będzie słowem generowanym do prawej, będzie słowem generowanym przez tę gramatykę;przez tę gramatykę;

3737

Page 38: ANALIZA SKŁADNIOWA

DRZEWO WYPROWADZENIADRZEWO WYPROWADZENIA

W języku terminali zasady te możemy W języku terminali zasady te możemy sformułować następująco:sformułować następująco:

Każdy węzeł wewnętrzny drzewa Każdy węzeł wewnętrzny drzewa odpowiada nieterminalowi;odpowiada nieterminalowi;

Dzieci węzła drzewa są prawymi stronami Dzieci węzła drzewa są prawymi stronami produkcji;produkcji;

Liście w drzewie wyprowadzenia Liście w drzewie wyprowadzenia odpowiadają terminalom;odpowiadają terminalom;

3838

Page 39: ANALIZA SKŁADNIOWA

PrzykładPrzykład

Narysujmy drzewo wyprowadzenia słów Narysujmy drzewo wyprowadzenia słów bba, aaaba w gramatyce o produkcjach bba, aaaba w gramatyce o produkcjach P={S->aS | bS | a};P={S->aS | bS | a};

Zauważmy, że słowo bba ma Zauważmy, że słowo bba ma wyprowadzenie:wyprowadzenie:

SS =>bS=>bS =>bbS=>bbS =>bba=>bba

3939

Page 40: ANALIZA SKŁADNIOWA

PrzykładPrzykładDrzewo wyprowadzenia dla słowa bba:Drzewo wyprowadzenia dla słowa bba:

SS

bb SS

bb SS

aa

4040

Page 41: ANALIZA SKŁADNIOWA

PrzykładPrzykładSS=>aS=>aS =>aaS=>aaS=>aaaS=>aaaS =>aaabS=>aaabS=>aaaba=>aaaba

SS

aa SS

aa SS

aa SS

bb SS

aa 4141

Page 42: ANALIZA SKŁADNIOWA

PrzykładPrzykład

Niech produkcje pewnej gramatyki G, Niech produkcje pewnej gramatyki G, będą postaci:będą postaci:

P={P={ S -> S + SS -> S + SS -> S * SS -> S * S

S -> ( S )S -> ( S )S -> a }S -> a }

Wyprowadźmy wyrażenieWyprowadźmy wyrażeniea * a + aa * a + a

4242

Page 43: ANALIZA SKŁADNIOWA

PrzykładPrzykładSS=>S*S=>S*S =>S*S+S=>S*S+S=>a*S+S=>a*S+S =>a*a+S=>a*a+S=>a*a+a=>a*a+a

SS

SS SS**

SS ++ SSaa

aa aa

=>S+S=>S+SSS =>S*S+S=>S*S+S=>a*S+S=>a*S+S =>a*a+S=>a*a+S=>a*a+a=>a*a+a

SS

SS ++ SS

SS ** SS

aa aa

aa

4343

Page 44: ANALIZA SKŁADNIOWA

GRAMATYKA GRAMATYKA BEZKONTEKSTOWABEZKONTEKSTOWA

DefinicjaDefinicjaGramatyka, w której słowo ma więcej niż Gramatyka, w której słowo ma więcej niż jedno drzewo wyprowadzenia nazywamy jedno drzewo wyprowadzenia nazywamy gramatyką niejednoznacznągramatyką niejednoznaczną..

DefinicjaDefinicjaDwie gramatyki generujące ten sam język Dwie gramatyki generujące ten sam język nazywamy nazywamy gramatykami równoważnymigramatykami równoważnymi..

4444

Page 45: ANALIZA SKŁADNIOWA

PrzykładPrzykład

Zauważmy, iż dla gramatyki G, Zauważmy, iż dla gramatyki G, rozważanej w poprzednim przykładnie ze rozważanej w poprzednim przykładnie ze zbiorem produkcjizbiorem produkcji

P={S -> S + S; S -> S * S;P={S -> S + S; S -> S * S; S -> ( S );S -> ( S ); S -> a}S -> a}Możemy stworzyć gramatykę równoważną, Możemy stworzyć gramatykę równoważną,

która nie będzie już niejednoznaczna:która nie będzie już niejednoznaczna: P={ S -> S + T; S -> T; T -> T * U;P={ S -> S + T; S -> T; T -> T * U;T -> U;T -> U;

U -> ( S ); U -> a }U -> ( S ); U -> a }

4545

Page 46: ANALIZA SKŁADNIOWA

PrzykładPrzykładSS=>S*T=>S*T =>T*T=>T*T =>a*T+U=>a*T+U

=>a*a+U=>a*a+U SS

SS

TT

**

UU

aaaa

=>U*T=>U*T =>a*T=>a*T =>a*U+U=>a*U+U=>a*a+a=>a*a+a

TT

TT ++ UU

UU aa

4646

Page 47: ANALIZA SKŁADNIOWA

KONIECKONIEC

KONIEC WYKŁADU KONIEC WYKŁADU CZWARTEGOCZWARTEGO