Teoretyczne Podstawy Informatyki

Podobne dokumenty
Wprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy

Algorytmy zwiazane z gramatykami bezkontekstowymi

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Logika dla matematyków i informatyków Wykªad 1

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Języki i gramatyki formalne

GRAMATYKI BEZKONTEKSTOWE

Gramatyki regularne i automaty skoczone

Języki formalne i automaty Ćwiczenia 1

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Podstawy Informatyki Gramatyki formalne

Matematyczne Podstawy Informatyki

JAO - Wprowadzenie do Gramatyk bezkontekstowych

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Zbiory i odwzorowania

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Podstawy matematyki dla informatyków

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]

Wykªad 4. Funkcje wielu zmiennych.

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

Indeksowane rodziny zbiorów

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Jaki język zrozumie automat?

Metody dowodzenia twierdze«

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Rachunek zda«. Relacje. 2018/2019

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

Przekroje Dedekinda 1

Symbol, alfabet, łańcuch

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Rekurencyjne struktury danych

Metodydowodzenia twierdzeń

Informatyka, matematyka i sztuczki magiczne

JIP. Analiza składni, gramatyki

x y x y x y x + y x y

1. Podstawy budowania wyra e regularnych (Regex)

Efektywna analiza składniowa GBK

Wyra»enia logicznie równowa»ne

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

Funkcje wielu zmiennych

Zadania z PM II A. Strojnowski str. 1. Zadania przygotowawcze z Podstaw Matematyki seria 2

Metoda tablic semantycznych. 1 Metoda tablic semantycznych

3.4. Przekształcenia gramatyk bezkontekstowych

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Ÿ1 Oznaczenia, poj cia wst pne

Gramatyki (1-2) Definiowanie języków programowania. Piotr Chrząstowski-Wachjtel

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Listy i operacje pytania

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, Instytut Matematyki Uniwersytetu Warszawskiego

ELEMENTARNA TEORIA LICZB. 1. Podzielno±

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Zadania z analizy matematycznej - sem. II Rachunek ró»niczkowy funkcji wielu zmiennych

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też. A = (A, Q, q I, F, δ)

Podstawy modelowania w j zyku UML

Gramatyki rekursywne

Ukªady równa«liniowych

Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań

Macierze i Wyznaczniki

Podstawy matematyki dla informatyków. Logika formalna. Skªadnia rachunku zda« Skróty i priorytety. Wykªad 10 (Klasyczny rachunek zda«) 15 grudnia 2011

Część wspólna (przekrój) A B składa się z wszystkich elementów, które należą jednocześnie do zbioru A i do zbioru B:

istnienie elementu neutralnego dodawania (zera): 0 K a K a + 0 = a, istnienie elementu neutralnego mno»enia (jedynki): 1 K a K a 1 = a,

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

Matematyka dyskretna dla informatyków

2 Liczby rzeczywiste - cz. 2

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

*** Teoria popytu konsumenta *** I. Pole preferencji konsumenta 1. Przestrze«towarów 2. Relacja preferencji konsumenta 3. Optymalny koszyk towarów

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Przeksztaªcenia liniowe

Ekstremalnie maªe zbiory

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Logika matematyczna (16) (JiNoI I)

Języki formalne i automaty Ćwiczenia 8

Macierze i Wyznaczniki

Języki formalne i automaty Ćwiczenia 2

Języki formalne i automaty Ćwiczenia 9

Podzbiory Symbol Newtona Zasada szuadkowa Dirichleta Zasada wª czania i wyª czania. Ilo± najkrótszych dróg. Kombinatoryka. Magdalena Lema«ska

Algorytmiczna teoria grafów

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

Programowanie funkcyjne. Wykªad 13

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Języki formalne i automaty Ćwiczenia 3

2 Podstawowe obiekty kombinatoryczne

Analiza semantyczna. Gramatyka atrybutywna

Definiowanie języka przez wyrażenie regularne(wr)

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wst p do informatyki

Języki formalne i automaty Ćwiczenia 6

Języki formalne i automaty Ćwiczenia 4

tylko poprawne odpowiedzi, ale nie wszystkie 2 pkt poprawne i niepoprawne odpowiedzi lub brak zaznaczenia 0 pkt

Funkcje jednej zmiennej. Granica, ci gªo±. (szkic wykªadu)

Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Informacje pomocnicze

1. Wprowadzenie do C/C++

Transkrypt:

Instytut Informatyki Stosowanej Teoretyczne Podstawy Informatyki Wykªad 2. J zyki i gramatyki formalne Zdzisªaw Spªawski Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 1

J zyki formalne denicje Alfabet A jest sko«czonym zbiorem symboli. Sªowem lub napisem (ªa«cuchem) nad alfabetem A nazywamy sko«czony ci g symboli z tego alfabetu. Sªowem jest równie» ci g pusty oznaczany przez ε. Dªugo±ci w sªowa w nazywamy liczb symboli w sªowie. Przez A oznaczamy zbiór wszystkich sªów nad alfabetem A, za± przez A + zbiór wszystkich niepustych sªów nad tym alfabetem. W zbiorze A deniujemy dwuargumentow relacj konkatenacji (zªo»enia) sªów: je±li x = a 1... a m oraz y = b 1... b n, gdzie a i, b j A to ich konkatenacj jest sªowo xy = a 1... a m b 1... b n. Operacja konkatenacji jest ª czna ((w 1 w 2 )w 3 = w 1 (w 2 w 3 ) i posiada element neutralny ε (wε = εw = w). J zykiem (formalnym) nad alfabetem A nazywamy dowolny zbiór sªów nad tym alfabetem, czyli dowolny podzbiór zbioru A. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 2

Denicja j zyka programowania (wymagania) Opisy j zyków programowania powinny z jednej strony uªatwia programi±cie pisanie programów (generowanie sªów nale» cych do j zyka), z drugiej za± umo»liwia automatyczne sprawdzanie (rozpoznawanie), czy program istotnie nale»y do j zyka Denicja j zyka programowania zawiera: (i) opis skªadni (syntaktyki), czyli denicj zbioru napisów, b d cych poprawnymi programami; (ii) opis semantyki, czyli znaczenia programów; (iii) ewentualnie system wnioskowania, sªu» cy do dowodzenia poprawno±ci programów, tj. ich zgodno±ci ze specykacj. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 3

Wyra»enia i zbiory regularne Niech A b dzie alfabetem i niech L, L 1, L 2 A. Konkatenacj j zyków L 1 i L 2 nazywamy zbiór L 1 L 2 = {xy A x L 1 y L 2 }. Niech L 0 = ε i L i = LL i 1 dla i 1. Domkni ciem Kleene'ego j zyka L nazywamy zbiór L wszystkich sªów otrzymanych w wyniku konkatenacji dowolnej liczby sªów z L. Wyra»enia regularne (w.r.) nad A i zbiory przez nie reprezentowane deniujemy nast pujaco: (i), ε i ka»dy symbol a A s w.r. reprezentuj cymi, odpowiednio, zbiory {}, {ε} i {a}; (ii) je±li r i s s w.r. reprezentuj cymi j zyki R i S, to (r s), (rs) i (r ) s w.r. reprezentuj cymi zbiory R S, RS i R. W celu zmniejszenia liczby nawiasów przyjmujemy nast puj ce priorytety operacji (malej co): *, konkatenacja,. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 4

Przykªady j zyków regularnych (0 1) opisuje zbiór wszystkich sªów zªo»onych z zer i jedynek; (0 1) 00(0 1) reprezentuje zbiór wszystkich sªów zªo»onych z zer i jedynek, zawieraj cych przynajmniej dwa kolejne zera; (1 10) opisuje zbiór wszystkich sªów zªo»onych z zer i jedynek, które rozpoczynaj si od jedynki i nie zawieraj dwóch kolejnych zer; (0 ε)(1 10) opisuje zbiór wszystkich sªów zªo»onych z zer i jedynek, nie zawieraj cych dwóch kolejnych zer; ((a b)a) reprezentuje zbiór {ε, aa, ba, aaaa, aaba, baaa, baba,...} sªów o parzystej dªugo±ci, w których na parzystych pozycjach wyst puje symbol a. J zyka {( n ) n n 1} nie mo»na opisa za pomoc wyra»e«regularnych! Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 5

Gramatyki bezkontekstowe motywacja i przykªad Fragment j zyka polskiego mo»na opisa za pomoc nast puj cych produkcji, w których kategorie syntaktyczne s uj te w nawiasy k towe. zdanie ::= grupa podmiotu grupa orzeczenia grupa podmiotu ::= rzeczownik przymiotnik rzeczownik grupa orzeczenia ::= czasownik rzeczownik ::= samolot chªopiec pies czasownik ::= fruwa biegnie przymiotnik ::= du»y maªy okr gªy kwadratowy Powy»sze produkcje pozwalaj generowa proste zdania: zdanie grupa podmiotu grupa orzeczenia przymiotnik rzeczownik grupa orzeczenia maªy rzeczownik grupa orzeczenia maªy chªopiec grupa orzeczenia maªy chªopiec czasownik maªy chªopiec biegnie Lecz analogicznie: zdanie... kwadratowy chªopiec fruwa. Gramatyka opisuje tylko skªadni j zyka, a nie jego semantyk! Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 6

Gramatyki formalne Gramatyk nazywamy czwórk G = (N, T, P, S), gdzie: N sko«czony zbiór symboli nieterminalnych (zmiennych syntaktycznych, kategorii syntaktycznych); T sko«czony zbiór symboli terminalnych (alfabet), rozª czny z N; P sko«czony zbiór produkcji postaci a b, gdzie a (N T ) +, b (N T ) ; S wyró»niony symbol nieterminalny, nazywany symbolem pocz tkowym. Nieformalnie: J zyk L(G), generowany przez gramatyk G jest zbiorem wszystkich sªów zbudowanych z symboli terminalnych, które da si otrzyma z symbolu pocz tkowego za pomoc przeksztaªce«, okre±lonych przez reguªy produkcji. Zasada stosowania produkcji a b : je±li a jest podsªowem ju» wygenerowanego sªowa, to a mo»na zast pi w tym sªowie przez b. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 7

J zyk generowany przez gramatyk Produkcje gramatyki G okre±laj relacj bezpo±redniego wyprowadzania na sªowach nad alfabetem N T. x y wtw, gdy istniej sªowa x 0 i x 1 oraz reguªa a b gramatyki G, takie»e x = x 0 ax 1 i y = x 0 bx 1. Wywodem (wyprowadzeniem) sªowa y ze sªowa x w gramatyce G nazywa si ka»dy taki ci g sªów x 0,..., x n (n > 0),»e x i x i+1 dla i = 0,..., n 1 oraz x 0 = x i x n = y. Relacja wyprowadzalno±ci jest zwrotnym i przechodnim domkni ciem relacji. J zyk L(G) generowany przez gramatyk G = (N, T, P, S) jest zbiorem tych wszystkich sªów nad alfabetem T, dla których istniej wywody rozpoczynaj ce si od symbolu pocz tkowego S. Czyli: L(G) = {w w T S w}. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 8

Hierarchia Chomsky'ego I Niech G = (N, T, P, S) i V = N T. Gramatyka G jest gramatyk typu 0 (bez ogranicze«), je±li ka»da produkcja jest postaci u w, u V +, w V ; typu 1 (kontekstow ), je±li ka»da produkcja jest postaci uaw uzw, u, w V, A N, z V + ; typu 2 (bezkontekstow GBK), je±li ka»da produkcja jest postaci A z, A N, z V + ; typu 3 (regularn ), je±li ka»da produkcja jest postaci A bb (gramatyka prawostronnie regularna), lub ka»da produkcja jest postaci A Bb (gramatyka lewostronnie regularna), A N, B N {ε}, b T +. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 9

Hierarchia Chomsky'ego II Gramatyki typu 1,2,3 s gramatykami nieskracaj cymi, z czego wynika ich rozstrzygalno±. Ka»da gramatyka typu i jest jednocze±nie gramatyk typu j, dla 0 j i, ale nie odwrotnie. Je±li gramatyka G generuj ca j zyk L(G) jest kontekstowa (bezkontekstowa, regularna) to j zyk L(G) te» jest nazywany kontekstowym (odpowiednio bezkontekstowym lub regularnym). Twierdzenie. J zyk L ma gramatyk regularn wtw kiedy L jest zbiorem regularnym. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 10

Przykªady gramatyk Przykªad 1. Gramatyka regularna (typu 3) Niech L 3 = {a k b l c m k, l, m 1}. G 3 = ({S, V, U}, {a, b, c}, P, S), gdzie P = {S as av, V bv bu, U cu c}. Przykªad 2. Gramatyka bezkontekstowa (typu 2) Niech L 2 = {a k b l c m k, l, m 1 k = m}. G 2 = ({S, V }, {a, b, c}, P, S), gdzie P = {S asc av c, V V b b}. Przykªad 3. Gramatyka kontekstowa (typu 1) Niech L 1 = {a k b l c m k, l, m 1 k = l = m}. G 1 = ({S, V }, {a, b, c}, P, S), gdzie P = {S abc asv c, cv V c, bv bb}. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 11

Drzewa wywodu (wyprowadzenia, rozbioru) denicja Niech G = (N, T, P, S) b dzie GBK. Drzewo jest drzewem wywodu dla G, je±li: Ka»dy w zeª drzewa ma etykiet, b d c symbolem z N T {ε}; Etykiet korzenia jest S; Je±li w zeª nie jest li±ciem i ma etykiet A, to A N; Je±li w zeª x ma etykiet A i w zªy x 1, x 2,..., x n s nast pnikami w zªa x, w kolejnosci od lewej do prawej, z etykietami A 1, A 2,..., A n to A A 1 A 2... A n musi by produkcj gramatyki G; Je±li w zeª x ma etykiet ε, to x jest li±ciem i jest jedynym nast pnikiem swego poprzednika. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 12

Drzewa wywodu dla GBK I Przykªad. G n = ({S}, {a, b, c, +,,, /, (, )}, P, S), gdzie P = {S a b c S + S S S S S S/S (S)} S S S a S a S+S a b+s a b + c wywód lewostronny S S S a S + S b c S S + S S S c a b S S + S S + c S S +c S b + c a b + c wywód prawostronny Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 13

Drzewa wywodu dla GBK II Ka»demu drzewu wywodu odpowiada dokªadnie jeden wywód lewostronny i dokªadnie jeden wywód prawostronny. Sposób generowania sªowa jest bez znaczenia z punktu widzenia j zyka jako zbioru sªów, ale jest istotny, je±li wpªywa na semantyk. Z wywodami zwi zane s zwykle okre±lone dziaªania semantyczne. Wskazane jest, aby symbole nieterminalne gramatyki odpowiadaªy konstrukcjom semantycznie znacz cym. Gramatyka bezkontekstowa dopuszczaj ca dwa lub wi cej drzew wywodu (czyli dwa lub wi cej wywodów lewostronnych) tego samego sªowa jest nazywana wieloznaczn. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 14

Drzewa wywodu dla GBK III J zyk bezkontekstowy, dla którego ka»da gramatyka jest wieloznaczna jest ±ci±le wieloznaczny. Niejednoznaczno± jest przeszkod przy ±cisªym formuªowaniu semantyki j zyka. J zyki etniczne s niejednoznaczne. Porównaj: Piotr wszedª do pokoju z pianinem. Piotr wszedª do pokoju z ide. Piotr wszedª do pokoju z lamp. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 15

Drzewa wywodu dla GBK IV Gramatyka G n dla j zyka wyra»e«z poprzedniego przykªadu jest wi c niejednoznaczna. Dla a = 3, b = 2, c = 1 warto± wyra»enia a b + c zinterpretowanego zgodnie z lewym drzewem rozbioru jest równa 3 (2 + 1) = 9, a dla prawego drzewa rozbioru jest równa (3 2) + 1 = 7. Dla tego j zyka istnieje gramatyka jednoznaczna G j pokazana w nast pnym przykªadzie, taka»e L(G n ) = L(G j ). Wyst puj w niej trzy semantycznie znacz ce symbole nieterminalne: W (wyra»enie), S (skªadnik) i C (czynnik). Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 16

Przykªad gramatyka jednoznaczna Przykªad. G j = ({W, S, C}, {a, b, c, +,,, /, (, )}, P, W ), gdzie P = {W S W + S W S, S C S C S/C, C a b c (W )} W W + S S + S S C + S C C +S a C + S a b + S a b + C a b + c wywód lewostronny W W + S S C S C c C a b W W + S W + C W + c S + c S C + c S b + c C b + c a b + c wywód prawostronny Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 17

Notacja Backusa-Naura (BNF) G = ({W, S, C}, {a, b, c, +,,, /, (, )}, P, W ), gdzie BNF P = { W S W + S W S, S C S C S/C, C a b c (W ) }. wyra»enie ::= skªadnik wyra»enie + skªadnik wyra»enie - skªadnik skªadnik ::= czynnik skªadnik * czynnik skªadnik / czynnik czynnik ::= a b c ( wyra»enie ) Istnieje wiele wariantów i rozszerze«notacji BNF. Jeden z wariantów jest u»yty do opisu skªadni j zyka C++ (patrz B.Stroustrup, J zyk C++, WNT, Warszawa 2000, Dodatek A.Gramatyka). Do opisu skªadni j zyków bezkontekstowych u»ywane s tak»e diagramy syntaktyczne (skªadniowe). Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 18

Zadania kontrolne I 1. Opisz j zyk, generowany przez gramatyk G = ({Q, X, Y, Z}, {n, o, s, w}, P, Z), gdzie P = {Z ny, Y osx, X wsq, Q osz, Q os}. Podaj najprostsz gramatyk regularn generuj c ten sam j zyk. 2. Zbuduj gramatyk bezkontekstow, generuj ca zbiór wszystkich palindromów nad alfabetem {a, n}. Palindrom jest niepustym sªowem, które czyta si jednakowo w obu kierunkach, np. anna, kajak. 3. Zbuduj gramatyki regularne dla nast puj cych j zyków: 3.1 zbiór sªów nad alfabetem {b, c}, w których wyst puj kolejno trzy litery c; 3.2 zbiór sªów nad alfabetem {b, c, d}, w których po ka»dej literze b pojawia si litera c; Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 19

Zadania kontrolne II 3.3 zbiór sªów nad alfabetem {b, c, d}, w których nie wyst puj podsªowa bc. 4. Podaj gramatyk bezkontekstow, generuj c nad alfabetem {a, b, c, d} j zyk {b n+k a n d k+m c m+1 k, m 0, n 1}. Zdzisªaw Spªawski: Teoretyczne Podstawy Informatyki, Wykªad 2. J zyki i gramatyki formalne 20