ANALIZA METODĄ WSTĘPUJĄCĄ

Slides:



Advertisements
Podobne prezentacje
Znaki informacyjne.
Advertisements

Joanna Sawicka Wydział Nauk Ekonomicznych, Uniwersytet Warszawski
Reinhard Kulessa1 Wykład Środek masy Zderzenia w układzie środka masy Sprężyste zderzenie centralne cząstek poruszających się c.d.
Obserwowalność System ciągły System dyskretny
Rozdział V - Wycena obligacji
WYKŁAD 6 ATOM WODORU W MECHANICE KWANTOWEJ (równanie Schrődingera dla atomu wodoru, separacja zmiennych, stan podstawowy 1s, stany wzbudzone 2s i 2p,
Ludwik Antal - Numeryczna analiza pól elektromagnetycznych –W10
Liczby pierwsze.
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
Analiza Składniowa Wstępująca
Lingwistyka Matematyczna
1 Stan rozwoju Systemu Analiz Samorządowych czerwiec 2009 Dr Tomasz Potkański Z-ca Dyrektora Biura Związku Miast Polskich Warszawa,
Generator analizatorów składniowych
Metoda pierwszeństwa operatorów
ALGORYTMY GEOMETRYCZNE.
PREPARATYWNA CHROMATOGRAFIA CIECZOWA.
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania.
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Klasyfikacja systemów
Transformacja Z (13.6).
Kolejność wykonywania działań
Pytania konkursowe.
Zależności funkcyjne.
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Podstawy programowania
Technika Mikroprocesorowa 1
Podstawy układów logicznych
ANALIZA LEKSYKALNA. Zadaniem analizatora leksykalnego jest przetwarzanie danych pochodzących ze strumienia wejściowego a także rozpoznawanie ciągów znaków.
Wyrażenia algebraiczne
Raport z badań termowizyjnych – RECTICEL Rys. 1a. Rozdzielnia RS14 Temperatura maksymalna 35,27 o C Rys. 1b. Rozdzielnia RS14 (wizyjny) 3.
IV OTWARTE MISTRZOSTWA OPOLA W PROGRAMOWANIU ZESPOŁOWYM
Gramatyki Lindenmayera
Obserwatory zredukowane
Podstawy automatyki 2012/2013Transmitancja widmowa i charakterystyki częstotliwościowe Mieczysław Brdyś, prof. dr hab. inż.; Kazimierz Duzinkiewicz, dr.
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
II Zadanie programowania liniowego PL
Języki i automaty część 5.
KOLEKTOR ZASOBNIK 2 ZASOBNIK 1 POMPA P2 POMPA P1 30°C Zasada działanie instalacji solarnej.
Języki i automaty część 3.
Modelowanie i Identyfikacja 2011/2012 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania 1 Warstwowe.
Dekompozycja Kalmana systemów niesterowalnych i nieobserwowalnych
1. ŁATWOŚĆ ZADANIA (umiejętności) 2. ŁATWOŚĆ ZESTAWU ZADAŃ (ARKUSZA)
Obserwowalność i odtwarzalność
„Równania są dla mnie ważniejsze, gdyż polityka jest czymś istotnym tylko dzisiaj, a równania są wieczne.” Albert Einstein.
-17 Oczekiwania gospodarcze – Europa Wrzesień 2013 Wskaźnik > +20 Wskaźnik 0 a +20 Wskaźnik 0 a -20 Wskaźnik < -20 Unia Europejska ogółem: +6 Wskaźnik.
Spis treści W świecie algortmów -Budowa algorytmu
EcoCondens Kompakt BBK 7-22 E.
II Zadanie programowania liniowego PL
User experience studio Użyteczna biblioteka Teraźniejszość i przyszłość informacji naukowej.
ZAPIS BLOKOWY ALGORYTMÓW
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Obliczalność czyli co da się policzyć i jak Model obliczeń sieci liczące dr Kamila Barylska.
Testogranie TESTOGRANIE Bogdana Berezy.
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
Gramatyki Lindenmayera
Systemy dynamiczne 2014/2015Obserwowalno ść i odtwarzalno ść  Kazimierz Duzinkiewicz, dr hab. in ż. Katedra In ż ynierii Systemów Sterowania 1 Obserwowalność.
Działania w systemie binarnym
RAR jako format kompresji bezstratnej.. RAR został stworzony przez Rosjanina Eugene Roshala. Do kompresji danych używa odmiany kompresji LZSS. Jest wolniejszym.
Współrzędnościowe maszyny pomiarowe
Algorytmy- Wprowadzenie do programowania
ANKIETA ZOSTAŁA PRZEPROWADZONA WŚRÓD UCZNIÓW GIMNAZJUM ZPO W BORONOWIE.
Elementy geometryczne i relacje
Strategia pomiaru.
ANALIZA SKŁADNIOWA.
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;
Systemy wspomagające dowodzenie twierdzeń
Wstęp do programowania Wykład 9
Gramatyki Lindenmayera Powstanie Deterministyczny L-system.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Zapis prezentacji:

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 gramatyki; 3

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 orzeczenie przymiotnik rzeczownik czasownik dopełnienie rzeczownik Szybki pies przeskoczył płot 6

ANALIZA WSTEPUJĄCA zdanie podmiot orzeczenie przymiotnik rzeczownik czasownik dopełnienie rzeczownik Szybki pies przeskoczył płot 7

Przykład Rozważmy gramatykę o następujących produkcjach: S-> aABe, A->Abc | b, B->d; Zastanówmy się nad zdaniem =abbcde; abbcde aABe aAbcde S aAde S=>aABe=>aAde=>aAbcde=>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->B 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-> aABe, A->Abc | b, B->d; abbcde jest prawostronną formą zdaniową, której uchwytem jest A->b na pozycji 2 aAbcde jest prawostronną forma zdaniowa, której uchwytem jest A->Abc na pozycji 2 12

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 =(((*))) <=(((S))) <=((S)) <=(S) <=S * S-> * 16

Przykład Rozważmy następująca gramatykę: E- >E+E, E->E*E, E->(E), E->(w); P. F. Z UCHWYT PRODUKCJA w+w*w w E->w E+w*w w E->w E+E*w w E->w E+E*E E*E E->E*E E+E 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->* $ 23

Przykład )))$ ) S ))$ S->( S ) ( ( ( $ 24

Przykład ))$ S-> ( S ) )$ ) S ( ( $ 25

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 $ w+w*w +w*w $w $E +w*w $E+ w*w $E+w *w *w $E+E STOS WEJŚCIE OPERACJA $ w+w*w przesunięcie +w*w $w redukcja E->w $E +w*w przesunięcie $E+ w*w przesunięcie $E+w *w redukcja E->w *w $E+E przesunięcie 29

Przykład $E+E* w $ $E+E*w $ $E+E*E $E+E $ $E $ STOS WEJŚCIE OPERACJA przesunięcie $ $E+E*w redukcja E->w $ $E+E*E redukcja E->E*E $E+E $ redukcja E->E+E $E $ Akceptacja wejścia

PROBLEMY Problemy przy 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 a1 ... ai ... an $ Sm Xm Program analizatora LR wyjście Xm-1 ... S0 akcja przejście 35 stos

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 s0 X1 s1 X2 s2 ...Xm na wierzchołku, gdzie każde X jest symbolem z gramatyki a s 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; (s0 X1 s1 X2 s2 ...Xm sm , ai ai+1 ...an$) Powyższa konfiguracja przedstawia formę zdaniowa: X1 X2 ...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: (s0 X1 s1 X2 s2 ...Xm smais, ai+1 ...an$) akcja[sm,ai]=redukuj wg A-> - analizator wykonuje redukcje przechodząc do konfiguracji: (s0 X1 s1 X2 s2 ...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 2r 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 s0, 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 akcja przejście Id + * ( ) $ E T F s5 s4 1 2 3 s6 akc s5 s4 1 2 3 s6 akc r2 s7 R2 r4 4 8 5 r6 R6 6 9 48

Przykład ST AN akcja przejście Id + * ( ) $ E T F 7 s5 s4 10 8 s6 s11 9 r1 s7 r3 11 r5 49

DZIAŁANIA ANALIZATORA Nr STOS WEJŚCIE AKCJA 1 2 3 4 5 6 7 id *id+id$ przesunięcie 0 id 5 *id+id$ redukcja wg F->id *id+id$ 0 F 3 redukcja wg T->F 0 T 2 *id+id$ przesunięcie 0 T 2 * 7 id+id$ przesunięcie +id$ 0 T 2 * 7 id 5 redukcja wg F->id 0 T 2 * 7 F 10 +id$ redukcja wg T->T*F 50

DZIAŁANIA ANALIZATORA Nr STOS WEJŚCIE AKCJA 7 8 9 10 11 12 13 14 0 T 2 * 7 F 10 +id$ redukcja wg T->T*F 0 T 2 +id$ redukcja wg E->T +id$ 0 E 1 przesunięcie 0 E 1 + 6 id$ przesunięcie 0 E 1 + 6 id 5 $ redukcja wg F->id $ 0 E 1 + 6 F 3 redukcja wg T->F 0 E 1 + 6 T 9 $ redukcja wg E->E+T $ 0 E 1 akceptacja 51

KONIEC KONIEC WYKŁADU SIÓDMEGO