ANALIZA METOD WSTPUJC ANALIZA WSTPUJCA Dla danej gramatyki
- Slides: 52
ANALIZA METODĄ WSTĘPUJĄCĄ
ANALIZA WSTĘPUJĄCA Dla danej gramatyki G oraz S=>* , to wówczas: Ø Jeśli zawiera tylko terminale, to nazywamy zdaniem; Ø Jeśli zawiera terminale oraz nieterminale, lub same nieterminale, to nazywamy formą zdaniową; Wniosek Zdanie jest forma zdaniowa, która nie zawiera nieterminali;
ANALIZA WSTĘPUJĄCA W analizie zstępującej przetwarzanie rozpoczynamy od symbolu startowego a następnie stosujemy wyprowadzenie tak długo, aż otrzymamy zdanie wejściowe. Możliwe jest oczywiście, że zdania nie da się wygenerować. Wówczas otrzymamy taką informacje; W analizie wstępującej mamy odwrotny schemat działania. Zaczynamy tu pracę od analizowanego zdania i poprzez konsekwentne stosowanie redukcji próbujemy dojść do symbolu startowego 3 gramatyki;
ANALIZA ZSTĘPUJĄCA Sprawdźmy, w jaki sposób działa metoda wstępująca na przykładzie z wcześniejszych wykładów. Dane jest zdanie =Szybki pies przeskoczył płot 4
GRAMATYKA BEZKONTEKSTOWA gramatyka – reguły produkcji: Zdanie -> podmiot orzeczenie Podmiot -> przymiotnik rzeczownik Orzeczenie -> czasownik dopełnienie Dopełnienie -> rzeczownik Rzeczownik -> płot Przymiotnik -> szybki Czasownik -> przeskoczył Rzeczowniki -> pies 5
ANALIZA ZSTEPUJĄCA zdanie podmiot przymiotnik rzeczownik orzeczenie czasownik dopełnienie rzeczownik Szybki pies przeskoczył płot
ANALIZA WSTEPUJĄCA zdanie podmiot przymiotnik rzeczownik orzeczenie czasownik dopełnienie rzeczownik Szybki pies przeskoczył płot
Przykład Rozważmy gramatykę o następujących produkcjach: S-> a. ABe, A->Abc | b, B->d; Zastanówmy się nad zdaniem =abbcde; abbcde a. Ade a. ABe S S=>a. ABe=>a. Ade=>a. Abcde=>abbcde 8
PRAWE WYPROWADZENIE Niech G będzie gramatyką bezkontekstową. Niech 1=> 2=> 3=>. . . => k, 1, 2, . . . , k є (VU Σ)* będzie wyprowadzeniem w G. Wyprowadzenie to nazywamy prawym wyprowadzeniem, gdy każde pojedyncze wyprowadzenie i-1=> i w tym łańcuchu wyprowadzeń polega na zastosowaniu produkcji z G do pierwszej zmiennej w i-1 liczonych od prawej strony; 9
ANALIZA WSTĘPUJĄCA Uchwyt ciągu – to podciąg, który pasuje do prawej strony produkcji i którego redukcja do nieterminala po lewej stronie produkcji reprezentuje jeden krok wzdłuż odwrotności prawostronnego wyprowadzenia; 10
ANALIZA WSTĘPUJĄCA Formalnie uchwyt prawostronnej formy zdaniowej , to produkcja A-> i pozycja w , na której znajduje się ciąg symboli , który w celu otrzymania poprzedniej prawostronnej formy zdaniowej w prawostronnym wyprowadzeniu , należy zastąpić przez A; S=> Aw=> w A-> na pozycji po jest uchwytem w 11
Przykład Rozważmy gramatykę o następujących produkcjach: S-> a. ABe, A->Abc | b, B->d; abbcde a. Abcde jest prawostronną formą zdaniową, której uchwytem jest A->b na pozycji 2 jest prawostronną forma zdaniowa, której uchwytem jest A->Abc 12 na pozycji 2
PRZYCINANIE UCHWYTÓW Przycinanie uchwytów jest metodą dzięki której możemy uzyskać odwrotność prawostronnego wyprowadzenia; Załóżmy że mamy daną gramatykę i dane zdanie w, utworzone w tej gramatyce. Zatem w= n gdzie n jest n-tą prawostronną formą zdaniowa, w pewnym prawostronnym wyprowadzeniu; S= 0 => 1 => 2 =>. . . => n-1 => n =w 13
PRZYCINANIE UCHWYTÓW W celu odtworzenia tego wyprowadzenia od końca, wyszukujemy uchwyt n w n i zastępujemy go lewą stroną produkcji A-> n. W ten sposób otrzymujemy (n-1) –szą prawostronną formę zdaniową; Wyszukujemy następnie uchwyt n-1 w n-1 i redukujemy ten uchwyt i otrzymujemy prawostronną formę n-2; Jeśli po skończonej ilości powtórzeń takiej czynności otrzymamy prawostronną formę zdaniową składającą się z symbolu startowego S, to kończymy analizę; 14
Przykład Rozważmy przykład. Niech będzie dana gramatyka dana przez produkcje: Ø S -> (S); Ø S -> *; Rozważamy zdanie =(((*))) 15
Przykład Rozważmy następująca gramatykę: E>E+E, E->E*E, E->(E), E->w; P. F. Z w+w*w E+E*w E+E*E E+E E UCHWYT w w w E*E E+E PRODUKCJA E->w E->E*E E->E+E 17
IMPLEMANTACJA ANALIZY REDUKCYJNEJ Jeśli chcemy dokonywać analizy tekstów, za pomocą przycinania uchwytów, musimy pokonać dwa główne problemy: Ø Pierwszym problemem jest znalezienie podciągu w prawostronnej formie zdaniowej, który trzeba zredukować (uchwytu); Ø Gdy jest więcej niż jedna produkcja, w której po prawej stronie występuje nasz podciąg (uchwyt), należy wybrać jedną z nich, odpowiednią; 18
IMPLEMENTACJA ANALIZY REDUKCYJNEJ Kolejnym istotnym pytaniem jest pytanie o rodzaj struktur danych, które będzie wygodnie używać, przy implementacji analizatora; Wygodna metodą jest użycie stosu do pamiętania symboli gramatyki, oraz bufora wejściowego do pamiętania tekstu w, przeznaczonego do analizy; stos wejście $ w$ 19
OPIS STOSU Na starcie na wejściu jest napis w, a stos jest pusty; Analizator przesuwa symbole z wejścia na stos, aż na wierzchołku znajdzie się uchwyt ; analizator redukuje do lewej strony odpowiedniej produkcji; Powtarza ten proceder, aż do wystąpienia błędu, lub sytuacji gdy na stosie będzie symbol startowy; Gdy na stosie będzie tylko symbol startowy analizator kończy pracę; 20
Operacje Mamy cztery operacje analizatora: Przesuniecie – powoduje wstawienie kolejnego symbolu z wejścia na wierzchołek stosu; Redukcja – analizator wie, że prawy koniec uchwytu jest na wierzchołku stosu, szuka na stosie lewy koniec uchwytu, i zastępuje uchwyt odpowiednim nieterminalem (sam decyduje, którym); 21
Operacje Pozostałe operacje analizatora: Akceptowanie – pomyślne zakończenie analizy; Błąd – oznacza, że wystąpił błąd składniowy i analizator wywołuje procedurę obsługi błędu; 22
Przykład )$ S-> ( S ) $ ) S ( $ 26
Przykład $ sukces analizy-akceptacja S $ 27
Przykład Wróćmy do naszego przykładu nr 2 z produkcjami: E->E+E, E->E*E, E_>(E), E>(w) Ponownie rozważamy zdanie =w+w*w Prześledźmy sekwencje operacji wykonywanych przez analizator: 28
Przykład STOS $ $w $E $E+w $E+E WEJŚCIE w+w*w *w *w OPERACJA przesunięcie redukcja E->w przesunięcie 29
Przykład STOS WEJŚCIE OPERACJA $E+E*w $E+E*E $E+E w $ $ przesunięcie $ redukcja E->E+E $E $ Akceptacja wejścia redukcja E->w redukcja E->E*E
PROBLEMY Problemy przycinaniu uchwytów: Znalezienie odpowiedniego uchwytu (w analizatorach redukujących zawsze jest na szczycie stosu); Wybranie odpowiedniej produkcji, jeśli może być wykorzystana więcej niż jedna (konstrukcja tablicy LR); 31
ANALIZATOT LR Wydajna metodą analizy wstępującej jest analiza LR(k), gdzie „L” oznacza przeglądanie wejścia od lewej do prawej, „R” (rightmost) oznacza budowę prawostronnego wyprowadzenia od końca, a k oznacza liczbę symboli podglądanych podczas podejmowania decyzji w trakcie analizy; Gdy pominiemy (k), przyjmujemy, że k=1; 32
ANALIZATOT LR Zalety analizatorów LR: Można zbudować analizatory LR do prawie wszystkich konstrukcji języków programowania, dla których można znaleźć gramatykę bezkontekstową; Metoda LR jest najogólniejszą nie wracającą metodą analizy redukującej. Analizatory działające tą metodą można zaimplementować tak wydajnie, jak działające innymi metodami redukcyjnymi; 33
ANALIZATOT LR Zalety analizatorów LR: Klasa gramatyk które można analizować, używając metody LR jest właściwym nadzbiorem klasy gramatyk, które można analizować analizatorami przewidującymi; Analizator LR może wykrywać błędy tak wcześnie, jak jest to możliwe podczas przeglądania wejścia, od lewej do prawej strony; 34
ANALIZATOR LR wejście Sm Xm Sm-1 Xm-1 a 1. . . ai . . . an $ Program analizatora LR wyjście . . . S 0 stos akcja przejście 35
ANALIZATOR LR Działanie analizatora LR: Program sterujący jest taki sam dla wszystkich analizatorów LR, różne są jedynie tablice analizatora; Program analizatora wczytuje pojedyncze symbole z bufora wejściowego; 36
ANALIZATOR LR Używa on stosu do zapamiętywania ciągu postaci s 0 X 1 s 1 X 2 s 2. . . Xm na wierzchołku, gdzie każde Xi jest symbolem z gramatyki a si jest symbolem nazywanym stanem; Każdy symbol stanu podsumowuje informacje zawarte na stosie pod nim, a kombinacja symbolu stanu i aktualnego symbolu wejściowego jest używana do indeksowania tablicy analizatora oraz do podejmowania decyzji o przesunięciu lub redukcji; 37
TABLICA ANALIZATORA LR Tablice analizatora zawierają wytyczne dla programu sterującego. Wytyczne te dotyczą między innymi tego w jakim stanie i pod wpływem jakich symboli ma wystąpić akcja (action lub przejście (goto); Tablice analizatora można tworzyć na różne sposoby; Metody tworzenia tablic decydują o sile analizatora (tzn. o liczbę przetwarzanych gramatyk); 38
TABLICA ANALIZATORA LR Metody konstrukcji tablicy analizatorów: SLR (prosty LR) – najłatwiejsza w implementacji ale najsłabsza, dla niektórych gramatyk dla których pozostałe zadziałają ta może nie dać rezultatów; Podglądający LR (LALR) – średnia pod względem możliwości, jak i kosztów; Metoda kanoniczna LR – najskuteczniejsza, ale też najdroższa; 39
TABLICA ANALIZATORA LR Tablica analizatora składa się z dwóch części : Funkcji wyznaczającej akcje, akcja; Funkcji wyznaczającej przejście, przejście; Funkcja przejście bierze jako argument stan i symbol z gramatyki, a zwraca stan; 40
ANALIZATOR LR Program analizatora LR sprawdza stan sm, stan leżący na wierzchołku stosu oraz aktualny symbol na wejściu ai; Odczytuje następnie wartość akcja[sm, ai] w tablicy analizatora dla stanu sm i wejścia ai; Wartość akcja[sm, ai] może być: Ø przesuń s, gdzie s jest stanem; Ø redukuj zgodnie z produkcja A-> ; Ø akceptuj; Ø błąd; 41
ANALIZATOR LR Konfiguracją analizatora LR nazywamy parę, której pierwszym elementem jest zawartość stosu, a drugim niewykorzystane wejście; (s 0 X 1 s 1 X 2 s 2. . . Xm sm , ai ai+1. . . an$) Powyższa konfiguracja przedstawia formę zdaniowa: X 1 X 2. . . Xmai ai+1. . . an 42
ANALIZATOR LR Konfiguracje, które mogą wystąpić po każdym z czterech typów akcji: Ø akcja[sm, ai]=przesuń s – analizator wykonuje przesunięcie przechodząc do konfiguracji: (s 0 X 1 s 1 X 2 s 2. . . Xm smais, ai+1. . . an$) Ø akcja[sm, ai]=redukuj wg A-> - analizator wykonuje redukcje przechodząc do konfiguracji: (s 0 X 1 s 1 X 2 s 2. . . Xm-r sm-r A s, ai+1. . . an$), gdzie s=przejście[sm-r, A], a r jest długością ; 43
akcja[sm, ai]=redukuj wg A-> Analizator zdejmuje ze stosu 2 r symboli (po r symboli stanu i gramatyki), odkrywając stan s. Następnie wstawia na stos A – lewa stronę użytej produkcji i s – wartość przejście[s, A]. Aktualny symbol wejściowy w wyniku redukcji nie jest zmieniany; Ø akcja[sm, ai]=akceptuj – analiza jest zakończona; Ø akcja[sm, ai]= błąd - analizator wykrył błąd i wywołuje procedurę obsługi błędu; 44
ANALIZA LR Podsumujmy krótko algorytm analizy LR: Ø Wejście: ciąg wejściowy w i tablica analizatora LR z funkcjami akcja i przejście dla gramatyki G; Ø Wyjście jeśli w jest w L(G) –występuje wyprowadzenie dla w, w przeciwnym przypadku – informacja o błędzie; Ø Metoda: początkowo na stosie analizatora jest s 0, czyli stan początkowy, a na wejściu jest w$. Dalsze kroki analizatora zaobserwujmy na przykładzie; 45
Przykład Rozważmy następującą gramatykę bezkontekstową, daną zbiorem produkcji: E -> E+T; E->T; T->T*F; T->F; F->(E); F->id; 46
Przykład W naszym algorytmie wprowadźmy następujące oznaczenia: si oznacza przesuniecie i wstawiany na stos stan i; rj oznacza redukcję według produkcji o numerze j; akc oznacza akceptuj; Puste miejsce oznacza błąd; . . . 47
Przykład ST AN Id 0 s 5 1 2 3 4 s 5 5 6 s 5 + s 6 r 2 r 4 akcja * ( s 4 ) $ akc r 2 R 2 r 4 s 7 r 4 s 4 r 6 przejście E T F 1 2 3 r 6 8 r 6 s 4 2 3 9 3 R 6
Przykład ST AN Id 7 s 5 8 9 10 11 + s 6 r 1 r 3 r 5 akcja * ( s 4 s 7 r 3 r 5 ) s 11 r 3 r 5 $ przejście E T F 10 r 1 r 3 r 5
DZIAŁANIA ANALIZATORA Nr 1 2 3 4 5 6 7 STOS 0 0 id 5 0 F 3 0 T 2*7 0 T 2 * 7 id 5 0 T 2 * 7 F 10 WEJŚCIE id *id+id$ id+id$ AKCJA przesunięcie redukcja wg F->id redukcja wg T->F przesunięcie redukcja wg F->id redukcja wg T->T*F 50
DZIAŁANIA ANALIZATORA Nr 7 8 9 10 11 12 13 14 STOS 0 T 2 * 7 F 10 0 T 2 0 E 1+6 0 E 1 + 6 id 5 0 E 1+6 F 3 0 E 1+6 T 9 0 E 1 WEJŚCIE +id$ $ $ AKCJA redukcja wg T->T*F redukcja wg E->T przesunięcie redukcja wg F->id redukcja wg T->F redukcja wg E->E+T akceptacja
KONIEC WYKŁADU SIÓDMEGO
- Množiny bodov danej vlastnosti
- Množiny bodov danej vlastnosti priklady
- Toifalash jadvali
- Metoda supstitucije i suprotnih koeficijenata
- Uporedni metod
- Metod kengash ish rejasi
- Ta'lim metodlari va vositalari slayd
- Komparativ metod juridik
- Degresivni metod amortizacije
- Metoda kapeluszy de bono
- Metod bild
- Kvalitativ metod intervju
- Gap analys exempel
- Podział metod chromatograficznych
- Ren metod
- Ta'lim vositalari tasnifi
- Cecilia andrée löfholm
- Hzda
- Proektiv testlar
- Zadaci tautologija
- Kabinet diagnostických metod fss
- Cyril a metod 863
- Hypotetisk-deduktiv metod
- Uppsats exempel
- Metody nauczania wg okonia
- Dogmatski metod
- Konstantin a metod matus kucera
- Delfi metod
- Podział metod instrumentalnych
- Interaktiv metodlar turlari
- Taktik antrenman nedir
- Rättssociologisk metod
- Podział metod aktywizujących
- Izlanish metodi
- Oblici rada
- Triangulering kvalitativ metod
- Kroneker kapelijeva teorema
- Kramerov metod
- Fokusgrupp kvalitativ metod
- Karta przebiegu materiału przykład
- Fem varför
- Metod sociologije
- Walidacja metod analitycznych
- Triangulace
- Gausov metod
- Induktion och deduktion
- Kvantitativ metod
- Axloqiy tarbiyaning qanday usullari mavjud
- Kimyo o'qitish metodikasi
- Direct method of teaching english
- Metoda gaussa
- Fenomenografisk metod
- Testimplikation