Gramatyki regularne i bezkontekstowe. Spis treści. Plan wykładu spotkania tydzień po tygodniu. Plan wykładu spotkania tydzień po tygodniu.



Podobne dokumenty
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

PODSTAWY BAZ DANYCH Wykład 3 2. Pojęcie Relacyjnej Bazy Danych

4.6. Gramatyki regularne

4.3. Przekształcenia automatów skończonych

Lista 4 Deterministyczne i niedeterministyczne automaty

Zbiory wyznaczone przez funkcje zdaniowe

2. FUNKCJE WYMIERNE Poziom (K) lub (P)

Matematyczne Podstawy Informatyki

Realizacje zmiennych są niezależne, co sprawia, że ciąg jest ciągiem niezależnych zmiennych losowych,

Wyznacznikiem macierzy kwadratowej A stopnia n nazywamy liczbę det A określoną następująco:

KONKURS MATEMATYCZNY dla uczniów gimnazjów w roku szkolnym 2012/13. Propozycja punktowania rozwiązań zadań

Wektor kolumnowy m wymiarowy macierz prostokątna o wymiarze n=1 Wektor wierszowy n wymiarowy macierz prostokątna o wymiarze m=1

JĘZYKI FORMALNE I AUTOMATY SKOŃCZONE

Algebra Boola i podstawy systemów liczbowych. Ćwiczenia z Teorii Układów Logicznych, dr inż. Ernest Jamro. 1. System dwójkowy reprezentacja binarna

Wykład 2. Granice, ciągłość, pochodna funkcji i jej interpretacja geometryczna

PODSTAWY BAZ DANYCH Wykład 2 2. Pojęcie Relacyjnej Bazy Danych

Wykład 2. Pojęcie całki niewłaściwej do rachunku prawdopodobieństwa

WYKŁAD 5. Typy macierzy, działania na macierzach, macierz układu równań. Podstawowe wiadomości o macierzach

Wymagania edukacyjne matematyka klasa 2 zakres podstawowy 1. SUMY ALGEBRAICZNE

Badanie regularności w słowach

Programy współbieżne

Jest błędem odwołanie się do zmiennej, której nie przypisano wcześniej żadnej wartości.

Przekształcenia automatów skończonych

Wymagania kl. 2. Uczeń:

Podstawy układów logicznych

Wymagania na ocenę dopuszczającą z matematyki klasa II Matematyka - Babiański, Chańko-Nowa Era nr prog. DKOS /02

Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych (zakres podstawowy)

Podstawy programowania obiektowego

O pewnych zgadnieniach optymalizacyjnych O pewnych zgadnieniach optymalizacyjnych

Grażyna Nowicka, Waldemar Nowicki BADANIE RÓWNOWAG KWASOWO-ZASADOWYCH W ROZTWORACH ELEKTROLITÓW AMFOTERYCZNYCH

4. RACHUNEK WEKTOROWY

Macierz. Wyznacznik macierzy. Układ równań liniowych

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć

usuwa niewymierność z mianownika wyrażenia typu

Oznaczenia: K wymagania konieczne; P wymagania podstawowe; R wymagania rozszerzające; D wymagania dopełniające; W wymagania wykraczające

Kodowanie liczb. Kodowanie stałopozycyjne liczb całkowitych. Niech liczba całkowita a ma w systemie dwójkowym postać: Kod prosty

Temat lekcji Zakres treści Osiągnięcia ucznia

Języki, automaty i obliczenia

Wykład 6 Dyfrakcja Fresnela i Fraunhofera

O RELACJACH MIĘDZY GRUPĄ OBROTÓW, A GRUPĄ PERMUTACJI

Analiza matematyczna i algebra liniowa

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY VIII w roku szkolnym 2015/2016

Wszystkim życzę Wesołych Świąt :-)

1 Ułamki zwykłe i dziesiętne

Wymagania edukacyjne matematyka klasa 2b, 2c, 2e zakres podstawowy rok szkolny 2015/ Sumy algebraiczne

Maciej Grzesiak. Iloczyn skalarny. 1. Iloczyn skalarny wektorów na płaszczyźnie i w przestrzeni. a b = a b cos ϕ. j) (b x. i + b y

MATeMAtyka 3 inf. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony. Dorota Ponczek, Karolina Wej

Wprowadzenie: Do czego służą wektory?

ZADANIA OTWARTE. Są więc takie same. Trzeba jeszcze pokazać, że wynoszą one 2b, gdyż taka jest długość krawędzi dwudziestościanu.

Jest błędem odwołanie się do zmiennej, której nie przypisano wcześniej żadnej wartości.

Nauki ścisłe priorytetem społeczeństwa opartego na wiedzy Zbiór scenariuszy Mój przedmiot matematyka

WYMAGANIA I KRYTERIA OCENIANIA Z MATEMATYKI W 3 LETNIM LICEUM OGÓLNOKSZTAŁCĄCYM

Od lewej: piramida Chefrena, Wielki Sfinks, piramida Cheopsa.

Zadania. I. Podzielność liczb całkowitych

STYLE. TWORZENIE SPISÓW TREŚCI

PRZEDMIOTOWY SYSTEM OCENIANIA Z JĘZYKÓW OBCYCH w Gimnazjum nr 2 im. ks. Stanisława Konarskiego nr 2 w Łukowie

Wyk lad 1 Podstawowe wiadomości o macierzach

symbol dodatkowy element graficzny kolorystyka typografia

Macierz. Wyznacznik macierzy. Układ równań liniowych

KOMPENDIUM MATURZYSTY Matematyka poziom podstawowy

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE IIc ZAKRES PODSTAWOWY I ROZSZERZONY

RBD Relacyjne Bazy Danych

WYZNACZANIE OGNISKOWEJ SOCZEWEK CIENKICH ZA POMOCĄ ŁAWY OPTYCZNEJ

Notatki z Analizy Matematycznej 4. Jacek M. Jędrzejewski

Zastosowanie multimetrów cyfrowych do pomiaru podstawowych wielkości elektrycznych

Szczegółowe wymagania edukacyjne z matematyki, klasa 2C, poziom podstawowy

Równania i nierówności kwadratowe z jedną niewiadomą

RACHUNEK CAŁKOWY. Funkcja F jest funkcją pierwotną funkcji f na przedziale I R, jeżeli. F (x) = f (x), dla każdego x I.

ZADANIA AUTOMATY I JĘZYKI FORMALNE AUTOMATY SKOŃCZONE

WYMAGANIA I KRYTERIA OCENIANIA DO EGZAMINU POPRAWKOWEGO MATEMATYKA. Zakresie podstawowym i rozszerzonym. Klasa II rok szkolny 2011/2012

EGZAMIN MATURALNY OD ROKU SZKOLNEGO 2014/2015 MATEMATYKA POZIOM ROZSZERZONY ROZWIĄZANIA ZADAŃ I SCHEMATY PUNKTOWANIA (A1, A2, A3, A4, A6, A7)

zestaw DO ĆWICZEŃ z matematyki

WYMAGANIA EDUKACYJNE NIEZBĘDNE DO UZYSKANIA POSZCZEGÓLNYCH ŚRÓDROCZNYCH I ROCZNYCH OCEN KLASYFIKACYJNYCH Z MATEMATYKI POZIOM PODSTAWOWY KLASA 2

2. PODSTAWY STATYKI NA PŁASZCZYŹNIE

PEWNIK DEDEKINDA i jego najprostsze konsekwencje

Wymagania edukacyjne z matematyki Klasa IIB. Rok szkolny 2013/2014 Poziom podstawowy

SZTUCZNA INTELIGENCJA

Analiza Matematyczna (część II)

Gramatyki regularne. Teoria automatów i języków formalnych. Dr inż. Janusz Majewski Katedra Informatyki

Wartość bezwzględna. Proste równania i nierówności.

4.2. Automat skończony

bezkontekstowa generujac X 010 0X0.

Wykład 2. Funkcja logarytmiczna. Definicja logarytmu: Własności logarytmu: Logarytm naturalny: Funkcje trygonometryczne

Zaokrąglanie i zapisywanie wyników obliczeń przybliżonych

Dorota Ponczek, Karolina Wej. MATeMAtyka 2. Plan wynikowy. Zakres podstawowy

Algorytmy graficzne. Filtry wektorowe. Filtracja obrazów kolorowych

VI. Rachunek całkowy. 1. Całka nieoznaczona

Laboratorium z metod numerycznych. = ewaluacja (wyliczenie) wyrażenia - wyświetlenie wyniku

1 Wprowadzenie do automatów

Wymagania na poszczególne oceny z matematyki w Zespole Szkół im. St. Staszica w Pile. Kl. II poziom podstawowy

f(x)dx (1.7) b f(x)dx = F (x) = F (b) F (a) (1.2)

Laboratorium z metod numerycznych.

Przedmiotowy system oceniania z matematyki wraz z określeniem wymagań edukacyjnych (zakres podstawowy) Klasa II LO

DZIAŁ 2. Figury geometryczne

Legenda. Optymalizacja wielopoziomowa Inne typy bramek logicznych System funkcjonalnie pełny

Kombinowanie o nieskończoności. 4. Jak zmierzyć?

WYMAGANIA DLA UCZNIÓW KLAS DRUGICH LICEUM OGÓLNOKSZTAŁCĄCEGO

Weryfikacja modelowa jest analizą statyczną logiki modalnej

Wspomaganie obliczeń za pomocą programu MathCad

Hierarchia Chomsky ego

Transkrypt:

Osob prowdząc wykłd i ćwiczeni: dr inż. Mrek werwin Instytut terowni i ystemów Informtycznych Uniwersytet Zielonogórski e-mil : M.werwin@issi.uz.zgor.pl tel. (prc) : 68 328 2321, pok. 328 A-2, ul. prof. Z.zfrn 2, 65-246 Zielon Gór Osttni zmin: 10.12.2012 V1.0 1/ 45 pis treści Wprowdzenie Pln wykłdu ystem przepisywni Definicj Wyprowdznie ystem przepisywni język Klsyfikcj Chomsky ego Grmtyk bezkontekstow Drzew wyprowdzeń Jednoznczność grmtyki Notcj BNF Grmtyk regulrn Prktyk A z tydzień n wykłdzie V1.0 2/ 45 Wprowdzenie Pln wykłdu Pln wykłdu spotkni tydzień po tygodniu (1) Informcje o wykłdzie, poprwność lgorytmów (2) Poprwność lgorytmów logik Horego (3) Anliz złożoności kodu wysokiego i niskiego poziomu (4) Modele lgorytmiczne mszyny proste, obwody logiczne (5) Modele lgorytmiczne mszyn Turing orz rchunek-λ (6) Automty (nie)deterministyczne część I (7) Automty (nie)deterministyczne część II (8) V1.0 3/ 45 Wprowdzenie Pln wykłdu Pln wykłdu spotkni tydzień po tygodniu (9) i utomty ze stosem (10) Algorytmy równoległe (11) Klsy złożoności obliczeniowej (12) Pmięć logrytmiczn i wielominow (13) Problemy NP-zupełne (14) Wstęp do obliczeń kwntowych (15) Wybrne lgorytmy kwntowe V1.0 4/ 45

Wprowdzenie Pln wykłdu Pln wykłdu 1. system przepisywni 1.1 definicj 1.2 przykłd 1.3 język 2. grmtyki 2.1 ogóln definicj grmtyki, 2.2 definicj formln, 2.3 równowżność grmtyk, 2.4 klsyfikcj Chomskiego, 2.5 grmtyk bezkontekstow 3. klkultor RPN i normlny V1.0 5/ 45 Wprowdzenie Pln wykłdu Mteriły wykorzystne podczs tworzeni tego wykłdu, tkże przydtne do dlszych studiów: 1. John E.Hopcroft, Jeffrey D.Ullmn: Wprowdzenie do teorii utomtów, języków i obliczeń, Wydwnictwo Nukowe PWN 2003 Wydnie 1 orz Wydnie 2 z roku 2006, 2. przedmiot Języki utomty i obliczeni z Wżnik, 3. dokumentcj progrmów Flex orz Bison, 4. wykłd M.Kubicy, Języki formlne i utomty, http://www.mimuw.edu.pl/~kubic/ug/index-frmes.html V1.0 6/ 45 ystem przepisywni ystem przepisywni V1.0 7/ 45 ystem przepisywni Definicj ystem przepisywni definicj ystem przepisywni (ng. rewrite system R): ystem przepisujący definicj ystem przepisujący jest to pr R = (A, P), gdzie A jest dowolnym skończonym lfbetem, P A A - skończoną relcją inczej zbiorem prw. Ogólnie fkt, że pr (u, v) P, będzie zpisywne jko u v P i nzywć to będziemy prwem przepisywni lub produkcją w systemie R. Jeśli R = (A, P) jest dowolnym systemem przepisującym, x, y A dowolnymi słowmi, to system R przepisuje słowo x n słowo y (generuje y ze słow x) bezpośrednio, co ozncz się symbolem x y, jeśli istnieją tkie słow x 1, x 2 A orz prwo u v P tkie, że x = x 1 ux 2, y = x 1 vx 2. V1.0 8/ 45

ystem przepisywni Wyprowdznie ystem przepisywni wyprowdznie Przepisnie słow pośrednie (symbol reprezentuje relcję, ntomist, domknięcie przechodnio-zwrotne tej relcji): ystem R przepisuje słowo x n słowo y (generuje y ze słow x), co ozncz się symbolem x y, jeśli istnieją słow w 0, w 1,..., w k A orz k 0 tkie, że w 0 = x, w k = y, w i w i+1 dl i = 0, 1,..., k 1. Ciąg (w 0, w 1,..., w k ) nzyw się wyprowdzeniem w systemie R. Liczb k określ długość wyprowdzeni. Wyprowdzenie możn również oznczyć w nstępujący sposób: w 0 w 1... w k Dl R = ({, b, c}, {(b, b), (c, c), (cb, bc)}) możn wyprowdzić ze słow cbbc słowo bbcc: cbbc (c,c) cbbc (cb,bc) bcbc (cb,bc) bbcc (c,c) bbcc (b,b) bbcc (b,b) bbcc V1.0 9/ 45 ystem przepisywni ystem przepisywni język ystem przepisywni język Niech R = (A, P) będzie dowolnym systemem przepisującym, B dowolnym, ustlonym podzbiorem A. językiem generownym przez R nzywmy zbiór L gen (R, B) = {w A : x w, x B}, językiem rozpoznwnym przez R nzywmy zbiór: L cc (R, B) = {w A : w x, x B}. Dl poprzedniego przykłd, gdy B = {cb}, to otrzymuje się L gen (R, B) = {bc, cb, cb} L cc (R, B) = {cb, cb} V1.0 10/ 45 Grmtyk V1.0 11/ 45 Grmtyk Grmtyczny opis język L zwier cztery wżne skłdowe: 1. Istnieje skończony zbiór symboli tworzących łńcuchy definiownego język. ymbole te nzywmy terminlmi lub symbolmi końcowymi. 2. Istnieje skończony zbiór zmiennych, nzywnych nieterminlmi lub ktegorimi syntktycznymi. Kżd ze zmiennych przedstwi język, tj. zbiór łńcuchów. 3. Jednk ze zmiennych reprezentuje definiowny język i zwn jest on symbolem początkowym. Inne zmienne reprezentują pomocnicze klsy łńcuchów używne przy definiowniu język symbolu początkowego. V1.0 12/ 45

Grmtyk 4. Istnieje skończony zbiór produkcji lub reguł, przedstwijących rekurencyjną definicję język. Kżd produkcj skłd się z: 4.1 zmiennej (częściowo) definiownej przez tę produkcję. Zmienn t jest często nzywn głową produkcji. 4.2 symbolu produkcji np.: 4.3 Łńcuch złożonego z zer lub więcej terminli i zmiennych. Łńcuch ten, zwny jest ciłem produkcji, przedstwi jeden ze sposobów tworzeni łńcuchów w języku zmiennej będącej głową produkcji. W trkcie tego pozostwimy terminle bez zmin i podstwimy z kżdą zmienną cił produkcji dowolny łńcych, o którym widomo, że nleży do jezyk tej zmiennej. (wg. J.E. Hopcroft, R.Motwni, J.D. Ullmn, Wprowdzenie do teorii utomtów, języków i obliczeń, PWN 2005) V1.0 13/ 45 Grmtyk definicj Grmtyk jest to system G = (V, T, P, ), w którym V - skończony zbiór symboli nieterminlnych (lfbet nieterminlny), T - skończony zbiór symboli terminlnych (lfbet terminlny), P (V T ) + (V T ) - skończon relcj, zbiór produkcji (prw), V - symbol początkowy (strtowy). Alfbet terminlny orz lfbet nieterminlny są rozłącznymi zbiormi, słowo u występujące po lewej stronie produkcji zwier co njmniej jeden symbol nieterminlny. Fkt, że pr (u, v) P, zpisujemy: u v P lub u G v. Definicj język Językiem generownym przez grmtykę G = (V, V, P, ) nzywmy zbiór: L(G) = {x V T : G x}. V1.0 14/ 45 Równowżność grmtyk Niestety, pomiędzy językiem generującą go grmtyką nie możn wskzć wzjemnie jednozncznej odpowiedniości. Dny język może być generowny przez wiele różnych grmtyk (dość często o brdzo różnej strukturze i włsnościch). Dltego, nleży wprowdzić i określić pojęci równowżności językowej dl wskznych grmtyk. G 1 i G 2 są równowżne językowo wtedy i tylko wtedy, gdy L(G 1 ) = L(G 2 ). Przykłdy równowżnych grmtyk: 1. grmtyk o postci G 1 = (V, T, P, ), w której V = {}, T = {}, P = {, }, generuje język określony jko: L(G 1 ) = { n : n = 1, 2,...}, 2. Grmtyk G 2 = (V, T, P, ), w której V = {}, T = {}, P = {, }, generuje język określony jko: L(G 2 ) = { n : n = 1, 2,...}, V1.0 15/ 45 Równowżność grmtyk 3. Grmtyk G 3 = (V, T, P, v 0 ), w której V = {v 0, v 1, w, w 1, w 2, z, z 1, z 2, z 3 }, T = {, b, c}, P = {v 0 v 0 z 1, v 0 v 1 z 1, v 1 w 1, v 1 v 1 w 1, w 1 z 1 w 1 z 3, w 1 z 3 wz 3, wz 3 wz, w 1 w w 1 w 2, w 1 w 2 ww 2, z 2 z z 1 z, ww 2 ww 1, zz 1 z 2 z 1, z 2 z 1 z 2 z, w b, z c} generuje język L(G 3 ) = { n b n c n : n = 1, 2,...}. 4. Grmtyk G 4 = (V, T, P, v 0 ), w której V = {v 0, v 1, v 2 }, T = {, b, c}, P = {v 0 bc, v 0 v 1 bc, v 1 b bv 1, v 1 c v 2 bcc, bv 2 v 2 b, v 2 v 1, v 2 } generuje język L(G 4 ) = { n b n c n : n = 1, 2,...}. V1.0 16/ 45

Klsyfikcj Chomsky ego Możn wskzć cztery typy grmtyk określonych przez Nom Chomsky ego. Hierrchi Chomsky ego Grmtyk G = (V, T, P, ) jest typu (i) dl i = 0, 1, 2, 3 wtedy i tylko wtedy, gdy spełnione są nstępujące wrunki: typ(0): kżd grmtyk, spełnijąc definicję umieszczoną n sljdzie (14), typ(1): tzw. grmtyk kontekstow, czyli grmtyk, w której kżde prwo ze zbioru P m postć u 1 vu 2 u 1 xu 2, gdzie u 1, u 2 (V T ), v V, x (V T ) + lub v 0 1, przy czym, jeśli v 0 1 P, to v 0 nie występuje po prwej stronie w żdnym prwie produkcji określonym w P, typ(2): bezkontekstow, czyli grmtyk, w której kżde prwo ze zbioru P m postć v x, gdzie v V, x (V T ), typ(3): regulrn, czyli grmtyk, w której kżde prwo ze zbioru P m postć v v x lub v x, gdzie v, v V, x T. V1.0 17/ 45 Klsyfikcj Chomsky ego W oprciu o wprowdzone klsyfikcję typu grmtyk możn określić odpowidjące im rodziny (lbo klsy) języków: L 0 rodzinę wszystkich języków typu 0, L 1 rodzinę wszystkich języków typu 1, czyli języków kontekstowych, L 2 rodzinę wszystkich języków typu 2, czyli języków bezkontekstowych, L 3 rodzinę wszystkich języków typu 3, czyli języków regulrnych. Pomiędzy wprowdzonymi klsmi języków zchodzą nstępujące zleżności: L 3 L 2 L 1 L 0. Język L jest typu (i) dl i = 0, 1, 2, 3 wtedy i tylko wtedy, gdy jest rozpoznwny przez utomt z odpowiedniej rodziny. V1.0 18/ 45 Klsyfikcj Chomsky ego Przykłdy równowżnych grmtyk i ich przynleżność do odpowiednich typów: 1. grmtyk o postci G 1 = (V, T, P, ), w której V = {}, T = {}, P = {, }, generuje język określony jko: L(G 1 ) = { n : n = 1, 2,...}, grmtyk typu (3), 2. grmtyk G 2 = (V, T, P, ), w której V = {}, T = {}, P = {, }, generuje język określony jko: L(G 2 ) = { n : n = 1, 2,...}, grmtyk typu (2), 3. grmtyk G 3 = (V, T, P, v 0 ), w której V = {v 0, v 1, w, w 1, w 2, z, z 1, z 2, z 3 }, T = {, b, c}, P = {v 0 v 0 z 1, v 0 v 1 z 1, v 1 w 1, v 1 v 1 w 1, w 1 z 1 w 1 z 3, w 1 z 3 wz 3, wz 3 wz, w 1 w w 1 w 2, w 1 w 2 ww 2, z 2 z z 1 z, ww 2 ww 1, zz 1 z 2 z 1, z 2 z 1 z 2 z, w b, z c} generuje język L(G 3 ) = { n b n c n : n = 1, 2,...}, grmtyk typu (1), 4. grmtyk G 4 = (V, T, P, v 0 ), w której V = {v 0, v 1, v 2 }, T = {, b, c}, P = {v 0 bc, v 0 v 1 bc, v 1 b bv 1, v 1 c v 2 bcc, bv 2 v 2 b, v 2 v 1, v 2 } generuje język L(G 4 ) = { n b n c n : n = 1, 2,...}, grmtyk typu (0). V1.0 19/ 45 Grmtyk bezkontekstow Grmtyk bezkontekstow V1.0 20/ 45

Grmtyk bezkontekstow Grmtyk bezkontekstow definicj Grmtyk bezkontekstow (GBK), to dowoln tk czwórk G = (V, T, P, ), gdzie: V to (skończony) lfbet symboli nieterminlnych, T to (skończony) lfbet symboli terminlnych, V T =, P to skończony zbiór produkcji, reguły posidją nstępującą postć A α dl A V, α (V T ), V to wyróżniony symbol nieterminlny, symbol strtowy. Zzwyczj podje się tylko zbiór produkcji. Gdyż, w sposób niejwny z produkcji wynik zbiór nieterminli i terminli. Jeżeli nie będzie to oczywiste, jki nieterminl jest symbolem strtowym, będzie to dodtkowo zznczone. V1.0 21/ 45 Grmtyk bezkontekstow Grmtyk bezkontekstow przykłdy Przykłd grmtyki dl plindromów, przy wykorzystniu indukcyjnej definicji: podstw: λ, 0, 1 są plindrommi, krok indukcyjny: jeśli w jest plindromem, to 0w0, 1w1 są też plindrommi. Żden inny łńcuch nie jest plindromem zbudownym z zer orz jedynek, jeśli nie wynik to z podstwy i kroku indukcyjnego. Grmtyk o postci G m postć: G = ({P}, {0, 1}, A, P) Postć produkcji: P λ P 0 P 1 P 0P0 P 1P1 V1.0 22/ 45 Grmtyk bezkontekstow Grmtyk bezkontekstow przykłdy Grmtyk generując słow dl język: { n b n : n 0}: A Ab λ łowo bbb jest generowne w nstępujący sposób: A Ab Abb Abbb bbb Grmtyk generując plindromy nd lfbetem, b, c: bb cc b c λ łowo bbcbb jest generowne w nstępujący sposób: bb bbbb bbcbb V1.0 23/ 45 Grmtyk bezkontekstow Grmtyk bezkontekstow włsności Niech G = (V, T, P, ) będzie ustloną grmtyką bezkontekstową. Przez będziemy oznczć zbiór produkcji P trktowny jko relcj,? V (V T ). Znczenie możn rozszerzyć n npisy: (V T ) (V T ) A β αaγ αβγ Domknięcie przechodnio-zwrotne będzie relcji będzie oznczne przez, i nturlnie (V T ) (V T ). Relcj opisuje pojedyncze zstosownie produkcji, czyli jko relcję między nieterminlem, zstępującym go słowem. Relcj opisuje co możn zrobić stosując dowolną liczbę (łącznie z zerem) dowolnych produkcji. Inczej mówiąc relcj to wielokrotnego iterowni relcji. Jeśli x y, to istnieje ciąg słów (z i ) tki, iż: x = z 0 z 1... z k = y. V1.0 24/ 45

Grmtyk bezkontekstow Grmtyk bezkontekstow włsności Grmtyk opisuje język złożony ze wszystkich słów (nd lfbetem terminlnym), które możemy uzyskć stosując produkcje począwszy od symbolu strtowego: Język generowny przez GBK Niech G = (V, T, P, ) będzie ustloną grmtyką bezkontekstową. Język L generowny przez grmtykę G, to: L(G) = {x T : x} Nieco inczej, możn powiedzieć że L(G) to zbiór tkich słów x T, dl których istnieją ciągi słów (z i ) orz z i (V T ) tki, iż: = z 0 z 1... z k = x. O ciągu (z i ) powiemy, iż jest to wyprowdzenie słow x w grmtyce G. Język L jest bezkontekstowy, jeżeli istnieje generując go grmtyk G. V1.0 25/ 45 Drzew wyprowdzeń Drzew wyprowdzeń Drzewo wyprowdzeni, to ilustrcj jk określone słowo może być wyprowdzone w dnej grmtyce, w postci drzew. Drzewo wyprowdzeni spełni nstępujące wrunki: w korzeniu drzew znjduje się symbol strtowy, w węzłch wewnętrznych drzew znjdują się nieterminle, w liścich terminle lub słow puste λ, jeśli w dnym węźle mmy nieterminl X, w jego kolejnych pod węzłch mmy x 1, x 2,..., x k, to musi zchodzić: X x 1x 2... x k, terminle umieszczone w liścich, czytne od lewej do prwej, tworzą wyprowdzone słowo. Język { n b n : n 0}, b λ, dl słow bbb, wyprowdzenie jest nstępujące: A Ab Abb Abbb bbbb A A A A b b b λ V1.0 26/ 45 Drzew wyprowdzeń Drzew wyprowdzeń Język dl npisów zbudownych z nwisów. Poprwne wyrżeni nwisowe, to tkie ciągi nwisów, w których: 1. łączn liczb nwisów otwierjących orz zmykjących jest tk sm, 2. kżdy prefiks wyrżeni nwisowego zwier przynjmniej tyle smo nwisów otwierjących, co zmykjących. Grmtyk m nstępującą postć: () λ Drzewo wyprowdzeń dl słow (()(())): ( ) ( ) λ ( ) ( ) λ V1.0 27/ 45 Jednoznczność grmtyki Jednoznczność grmtyki Grmtyk G jest jednoznczn, gdy dl kżdego słow x L(G) istnieje tylko jedno drzewo wyprowdzeni słow x w rmch grmtyki G. Jeśli grmtyk G jest grmtyką jednoznczn, to drzew wyprowdzeń określją strukturę (skłdniową) słów z język w sposób jednoznczny. Co prwd słow mogą mieć wiele wyprowdzeń, le różnią się one tylko kolejnością stosownych produkcji, nie strukturą wyprowdzonego słow. Poniższ grmtyk tworząc wyrżeni rytmetyczne niestety nie jest jednoznczn: + / L () L C CL C 0 1 2 3 4 5 6 7 8 9 V1.0 28/ 45

Jednoznczność grmtyki Dw drzew wyprowdzeń dl wyrżeni 42 + 5 2: V1.0 29/ 45 Jednoznczność grmtyki Poniższ grmtyk tworząc wyrżeni rytmetyczne jest już jednoznczn: E E + E F /F F F L (E) L C CL C 0 1 2 3 4 5 6 7 8 9 V1.0 30/ 45 Notcj BNF BNF definicj Poszczególne konstrukcje skłdniowe w notcji BNF są definiowne w nstępujący sposób: < nzw konstrukcji >::= wyrżenie opisujące konstrukcję ymbole ujęte w nwisy ostre reprezentują symbole nieterminlne, czyli zmienne leksykogrficzne. Wyrżenie po znku przypisni ::= może zwierć sekwencje innych symboli zwierjących zrówno symbole nieterminlne orz terminlne. Do kżdej zmiennej możn przypisć kilk wyrżeń rozdzielonych z pomocą pionowej kreski. A dokłdnej podstwowe elementy w definicji są nstępujące: < konstrukcj > - nzwy konstrukcji, w tym również definiownej, co ozncz że zleżności rekurencyjne są dozwolone, tekst, ujęty w cudzysłów, to tekst który pojwi się dosłownie w dnej konstrukcji,...... - oddziel różne lterntywne postci dnej konstrukcji, [...] - frgment ujęty w kwdrtowe nwisy jest opcjonlny. V1.0 31/ 45 Notcj BNF Przykłdem zstosowni notcji BNF może być np.: poniższy opis grmtyki dresu domu/mieszkni jki jest stosowny w tnch Zjednoczonych: <postl ddr> ::= <nme prt><street ddr ><zip prt > <personl prt> ::= <first nme> <initil >. <nme prt> ::= <personl prt><lst nme > [<jr prt >] <EOL > <personl prt><nme prt > <street ddr> ::= [<pt>] <house num ><street nme >< EOL > <zip prt> ::= <town nme>, <stte code ><ZIP code ><EOL > Jeszcze jeden opis grmtyki dresu zmieszkni: <dres> ::= <drest> <dres loklu> <dres mist> <dres krju> <drest> ::= ["W.P." "z.pn."] <npis> "," <dres loklu>::=<ulic> <numer> ["/" <numer> ] ["m" <numer> "/" <numer> ]"," <dres mist>::=[ <kod> ] <npis> <dres krju>::=["," <npis> ] <kod>::=<cyfr> <cyfr> " " <cyfr> <cyfr> <cyfr> <cyfr>::="0" "1" "2" "3" "4" "5" "6" "7" "8" "9" <numer>::=<cyfr> [ <numer> ] V1.0 32/ 45

Notcj BNF Zsdy notcji BNF możn zpisć z pomocą smej notcji BNF, co przedstwi się nstępująco: <syntx> ::= < rule > [< syntx >] <rule> ::= < whitespce > < < rule nme > > < whitespce > ::= < expr ><whitespce>< line end > <expr> ::= < whitespce >< or expr > <or expr> ::= < whitespce >< list expr > [ < or expr >] <list expr> ::= < whitespce > ( < < rule nme > > < QUOTE >< text ><QUOTE> ( < expr > ) [ < expr > ] )[<list expr>] <whitespce> ::= [ _ < whitespce >] <line end> ::= [< whitespce >] < EOL > [< line end >] Istnieją tkże inne wrinty zpisu notcji BNF, gdzie stosowne są oznczeni krotności orz +. Jednkże, zprezentown powyżej notcj jest njczęściej spotykn i bezpośrednio odnosi się do grmtyki bezkontekstowej. V1.0 33/ 45 Grmtyk regulrn Język regulrny i grmtyk bezkontekstow Wszystkie języki regulrne, są tkże językmi bezkontekstowmi, jednk stwierdzenie odwrotne nie jest prwdziwe np.: L : n b n język jest bezkontekstowy le nie jest regulrny. Grmtyk liniow Grmtyk (prwostronnie) liniow, to tk, w której wszystkie produkcje mją postć: A αb lub A λ, dl A, B V orz α T. Grmtyk silnie liniow Grmtyk silnie (prwostronnie) liniow, to tk, w której wszystkie produkcje mją postć: A αb lub A λ, dl A, B V orz α T. Twierdzenie (silnie) liniowe opisują klsę języków regulrnych. V1.0 34/ 45 Grmtyk regulrn Przeksztłcenie grmtyki liniowej n silnie liniową Reguły przeksztłcni: Nleży zstąpić produkcje postci A 1... k B (dl k > 1) orz produkcje postci A B, równowżnymi produkcjmi odpowiednimi dl grmtyki silnie liniowej. Jeśli mmy w grmtyce produkcję postci A B, to dl kżdej produkcji o postci B α dodjemy do grmtyki produkcję A α. Krok ten powtrzmy tk długo, jk długo wprowdz on nowe produkcje. Nstępnie usuwmy wszystkie produkcje postci A B. W ten sposób uzyskujemy grmtykę generującą ten sm język, le nie zwierjącą produkcji postci A B. Dl kżdej produkcji postci: A 1... k B, dl (k > 1), dodje się nowe symbole terminlne A 1,..., A k 1 w nstępujący sposób: A 1 A 1 A 1 2 A 2. A k 1 k B V1.0 35/ 45 Grmtyk regulrn Przeksztłcenie grmtyki liniowej n silnie liniową Reguły przeksztłcni, cd: Podobnie postępuje się dl kżdej produkcji postci: A 1... k, dl (k > 1): A 1 A 1 A 1 2 A 2 Ogólnie, zwsze możn:. A k 1 k A k A k λ 1. grmtykę liniową przeksztłcić do silnie liniowej, 2. grmtykę silnie liniową przeksztłcić n utomt niedeterministyczny, 3. utomt niedeterministyczny przeksztłcić n grmtykę silnie liniową. V1.0 36/ 45

Grmtyk regulrn Automt niedeterministyczny kceptujący język (b) () : P b Q R T Grmtyk liniow: bq T λ Q bq λ T T λ Wyprowdzenie: bq bbq bb. Grmtyk silnie liniow: P R λ P bq Q P λ R T T R λ Wyprowdzenie: P bq bp bbq bb. V1.0 37/ 45 Prktyk Czs n trochę prktyki: YACC lbo BION Bison, to nrzędzie do tworzeni prser ów, nliztorów skłdniowych oprtych o grmtykę bezkontekstową. Ogóln postć jest podobn do progrmy LEX/FLEX: %{ %} Prologue Bison declrtions %% %% Grmmr rules Epilogue V1.0 38/ 45 Prktyk Klkultor RPN Przykłdy w RPN dl pkietu Bison: 4 9 + 13 3 7 + 3 4 5 * + - -13 3 7 + 3 4 5 * + - n Note the unry minus, n 13 5 6 / 4 n + -3.166666667 3 4 ^ Exponentition 81 ^D End-of-file indictor V1.0 39/ 45 Prktyk Progrm dl Bison Początek pliku dl Bison: %{ #include <stdio.h> #include <mth.h> #include <ctype.h> #define YYTYPE double int yylex (void); void yyerror (chr const *); %} %token NUM V1.0 40/ 45

Prktyk Grmtyk dl Bison Grmtyk dl wyrżeń w odwrotnej notcji polskiej (ng. reverse polish nottion RPN): input: /* empty */ input line ; line: \n exp \n { printf ("%.10g\n", $1); } ; exp: NUM { $$ = $1; } exp exp + { $$ = $1 + $2; } exp exp - { $$ = $1 - $2; } exp exp * { $$ = $1 * $2; } exp exp / { $$ = $1 / $2; } exp exp ^ { $$ = pow ($1, $2); } exp n { $$ = -$1; } ; V1.0 41/ 45 Prktyk Anliz leksykln Anliz leksykln z pomocą włsnej funkcji yylex: int yylex (void) { int c; while ((c = getchr ()) == c == \t ) continue; if (c ==. isdigit (c)) { ungetc (c, stdin); scnf ("%lf", &yylvl); return NUM; } if (c == EOF) return 0; } return c; V1.0 42/ 45 Prktyk Normlny klkultor Początek pliku dl Bison w klkultorze infinixowym : %{ #define YYTYPE double #include <mth.h> #include <stdio.h> int yylex (void); void yyerror (chr const *); %} %token NUM %left - + %left * / %left NEG /* negtion--unry minus */ %right ^ /* exponentition */ V1.0 43/ 45 Prktyk Grmtyk normlnego klkultor 2 + 3 = 5 input: /* empty */ input line ; line: \n exp \n { printf ("\t%.10g\n", $1); } ; exp: NUM { $$ = $1; } exp + exp { $$ = $1 + $3; } exp - exp { $$ = $1 - $3; } exp * exp { $$ = $1 * $3; } exp / exp { $$ = $1 / $3; } - exp %prec NEG { $$ = -$2; } exp ^ exp { $$ = pow ($1, $3); } ( exp ) { $$ = $2; } ; V1.0 44/ 45

A z tydzień n wykłdzie W nstępnym tygodniu między innymi 1. postć normln Chomsky ego, 2. lgorytm CYK, 3. utomty stosowe, 4. interpreter język. Dziękuje z uwgę!!! V1.0 45/ 45