JĘZYKI FORMALNE I METODY KOMPILACJI



Podobne dokumenty
JĘZYKI FORMALNE I METODY KOMPILACJI

JĘZYKI FORMALNE I METODY KOMPILACJI

JĘZYKIFORMALNE IMETODYKOMPILACJI

Metodologie programowania

JAO - Wprowadzenie do Gramatyk bezkontekstowych

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Języki formalne i automaty Ćwiczenia 1

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

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ

Matematyczne Podstawy Informatyki

Języki formalne i automaty Ćwiczenia 2

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

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

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

Języki i gramatyki formalne

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

Hierarchia Chomsky ego Maszyna Turinga

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

GRAMATYKI BEZKONTEKSTOWE

Języki, automaty i obliczenia

JIP. Analiza składni, gramatyki

(j, k) jeśli k j w przeciwnym przypadku.

Gramatyki rekursywne

Analiza semantyczna. Gramatyka atrybutywna

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

Języki, automaty i obliczenia

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

3.4. Przekształcenia gramatyk bezkontekstowych

Jaki język zrozumie automat?

Efektywna analiza składniowa GBK

Symbol, alfabet, łańcuch

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Obliczenia inspirowane Naturą

JĘZYKI PROGRAMOWANIA

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

Dopełnienie to można wyrazić w następujący sposób:

Języki formalne i automaty Ćwiczenia 9

Języki formalne i automaty Ćwiczenia 8

Hierarchia Chomsky ego

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, δ)

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

Maszyna Turinga języki

Języki formalne i automaty Ćwiczenia 3

Zadanie analizy leksykalnej

Stefan Sokołowski JĘZYKIPROGRAMOWANIA. Inst. Informatyki UG, Gdańsk, 2012/2013

Gramatyki regularne i automaty skoczone

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

Języki formalne i automaty Ćwiczenia 4

ZAAWANSOWANE JĘZYKI PROGRAMOWANIA

Języki formalne i automaty Ćwiczenia 6

Imię, nazwisko, nr indeksu

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech

Gramatyka operatorowa

Języki formalne i gramatyki

SZTUCZNA INTELIGENCJA

Gramatyki atrybutywne

Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia)

Języki programowania zasady ich tworzenia

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

0.1 Lewostronna rekurencja

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

Obliczenia inspirowane Naturą

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

Matematyczne Podstawy Informatyki

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Stefan Sokołowski SZTUCZNAINTELIGENCJA. Inst. Informatyki UG, Gdańsk, 2009/2010

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

11 Probabilistic Context Free Grammars

Podstawy Kompilatorów

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

10. Translacja sterowana składnią i YACC

Języki, automaty i obliczenia

1.1 Definicja. 1.2 Przykład. 1.3 Definicja. Niech G oznacza dowolny, niepusty zbiór.

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

Podstawy i języki programowania

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

Matematyczne Podstawy Informatyki

Elementy Teorii Obliczeń

Lista 5 Gramatyki bezkontekstowe i automaty ze stosem

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:

Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.

Definicja 2. Twierdzenie 1. Definicja 3

Kody Tunstalla. Kodowanie arytmetyczne

TEORIA ZŁOŻONOŚCI PROBLEMY I ALGORYTMY OGRANICZENIE DOLNE I GÓRNE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

Wprowadzenie. Teoria automatów i języków formalnych. Literatura (1)

10110 =

1 Działania na zbiorach

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Składnia rachunku predykatów pierwszego rzędu

Algorytmy zwiazane z gramatykami bezkontekstowymi

Struktury formalne, czyli elementy Teorii Modeli

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Transkrypt:

Stefan Sokołowski JĘZYKI FORMALNE I METODY KOMPILACJI Inst Informatyki Stosowanej, PWSZ Elbląg, 2012/2013 JĘZYKI FORMALNE reguły gry Wykład1i2,str1 Zasadnicze informacje: http://iispwszelblagpl/ stefan/dydaktyka/jezform http://iispwszelblagpl/ ssokolowski/dydaktyka/jezform slajdy do wykładów można(należy) robić notatki ale nie warto przepisywać slajdów z ekranu szkicowy program wykładu i laboratorium zadania z laboratorium spis literatury itd Uwaga: przeczytanie tych materiałów nie wystarczy do zaliczenia!

JĘZYKI FORMALNE reguły gry Kontakt ze mną: konsultacje: piątki, 17:15 18:00 w pok 322 e-mail: ssokolowski@infugedupl antyspam: unikać frikoprowajderów; najlepiej używać konta mailowego w IIS PWSZ Wymaganie wstępne: zaliczone Podstawy programowania JĘZYKI FORMALNE reguły gry Wykład1i2,str3 Zaliczenie przedmiotu: laboratorium:min56pktna100 wykład:min56pktna100(doliczamewpunktydodatkowezaaktywność w trakcie wykładu i za znalezienie błędów w slajdach) NIE MA ZWOLNIEŃ! ocenaostateczna:04 laboratorium+06 wykład Skala ocen: 2 0 55 5662 63 7273 82 83 91 92 100 3 3+ 4 4+ 5

Język formalny (nieformalny) M {a,aback,abandon,abase,,zoom} język(skończony) składający się ze słów języka angielskiego {0,1,10,11,100,101,} język(nieskończony) składający się z liczb binarnych { a n b n n 0 } ={λ,ab,aabb,aaabbb,} język(nieskończony) składający się z takich słów, w których występujątylkoliteryaib, liczbaliterajestrównaliczbieliterb, wszystkie litery a poprzedzają wszystkie litery b Język formalny Wykład1i2,str5 DEFINICJA: MΣ skończony niepusty alfabet, czyli zbiór tzw liter słowo dowolny ciąg skończonej długości o elementach z Σ Σ zbiórwszystkichsłów język dowolnyzbiórsłówl Σ nie mylić! Mλ słowopuste(ciągliterodługości0) Uwaga:toniejestlitera! def ={} język pusty(nie zawierający żadnego słowa) Λ def ={λ} język zawierający wyłącznie słowo puste M1 (2 1) (1 (2 1)) słowonadalfabetemσ def ={(,),,,1,2} {λ,a,b,ab,ba} języknadalfabetemσ def ={a,b}zawierającypięćsłów { } a n n 0 ={λ,a,aa,aaa,} jęznieskończnadalfσ def ={a}

Jak porządnie opisać język nieskończony? {λ,ab,aabb,aaabbb,} cooznaczająkropeczki? { a n b n n 0 } lepiej,alesąniepożądaneelementyobce (liczby,zmienne,relacje,) Język definiujemy na dwa sposoby Przez generator cokolwiek wyprodukuje, uważamy za należące do języka akceptor cokolwiek zatwierdzi, uważamy za należące do języka Opis języka programowania przeznaczony dla programisty powinien być generatorem ma wyjaśniać, jak pisać poprawne programy Kompilator języka programowania powinien zawierać akceptor sprawdzający, czy program na jego wejściu należy do języka Generatory: gramatyki bezkontekstowe Wykład1i2,str7 DEFINICJA: Gramatyka bezkontekstowa G M alfabetterminalnyσ; alfabet nieterminalny lub pomocniczy N(rozłączny z Σ); skończonyzbiórpprodukcjipostacia w, gdziea Niw (N Σ) ; wybrany nieterminal S N nazywany symbolem początkowym albo aksjomatem gramatyki MTerminale: a, b Nieterminale: A Produkcje: A λ A aaa A bab

Jak gramatyka definiuje język? DEFINICJA: Wywodliwość M jeśliwpjestprodukcjaa w,todladowolnychsłów u,v (N Σ),słowouwvnazywamybezpośredniowywodliwymze słowauav,cooznaczamyuav G uwv; jesliw 1 G w 2,w 2 G w 3,,w n 1 G w n,tosłowow n nazywamy wywodliwymzesłowaw 1,cooznaczamyw 1 Gw n DEFINICJA: Język L(G) generowany przez gramatykę G Mskłada się z tych słów{ wywodliwych z aksjomatu, które już nie zawierają nieterminali:l(g) def = w Σ S G w } MGramatyka: A λ A aaa A bab A bab bbabb bbaaabb bbaabb qq A bbaabb L(G) Fakt: ML(G)= { ww R w {a,b} } Jak gramatyka definiuje język? NIE MYLIĆ: Wykład1i2,str9 A λ A 0A1 formalny symbol w produkcji w gramatyce relacja bezpośredniej wywodliwości: jeślia wtoa w alenp0a1 00A11 anieprawda,że0a1 00A11 relacjawywodliwości: jeśliw 1 w 2 tow 1 w 2 alenpa 0011 anieprawda,żea 0011

Jak gramatyka definiuje język? MGramatykaG: E T E E+T T F T T F F a F (E) E E+T T+T F+T a+t a+t F a+f F a+a F a+a a F+T F F+F F Jak gramatyka definiuje język? Wykład1i2,str11 MGramatykaG: E T E E+T T F T T F F a F (E) E T F (E) (E+T) (T+T) (F+T) (a+t) (a+f) (a+a) F+T F F+F F L(G)=wyrażeniaarytmetycznezbudowaneza,+,,(i)

Gramatyki prawoliniowe DEFINICJA: MGramatyka bezkontekstowa G = Σ, N, P, S jest prawostronnie liniowa jeślikażdaprodukcjawpmapostać: albo A x (czyli: żadnych nieterminali) albo A xb (czyli: tylko jeden nieterminal po prawej) gdziex Σ aa,b N Mabc E ac E bc C λ C ac C bc C 0C C 1C prawoliniowa E a E (E) E E+E bezkontekstowa ale nie prawoliniowa Rodzaje gramatyk Wykład1i2,str13 G 1 : E ac E bc C λ C ac C bc C 0C C 1C G 2 : I a I b I Ia I Ib I I0 I I1 L(G 1 )=językidentyfikatorów=l(g 2 ) G 1 jestprawostronnieliniowa G 2 jestbezkontekstowa ale nie prawostronnie liniowa dwie gramatyki różnych typów mogą określać ten sam język DEFINICJA: MJęzyk L jest regularnyjeśliistgramprawostronnieliniowagtaka,żel=l(g); bezkontekstowy jeśli ist gram bezkontekstowa G taka, że L = L(G) JęzykidentyfikatorówL(G 2 )jestregularny

Hierarchia języków(n Chomsky) języki { ww w Σ } { a n b n c n n 0 } j bezkontekstowe j regularne IDENTYFIKATORY E ac E bc C λ C ac C bc C 0C C 1C LICZBY NATURALNE { a n b n n 0 } WYRAŻENIA E λ E aeb E a E (E) E E+E Wykład1i2,str15 Czy dany język jest bezkontekstowy lub regularny? Żeby dowieść, że język jest bezkontekstowy[ew regularny], należy znaleźć dla niego gramatykę bezkontekstową[prawoliniową] Żeby dowieść, że język nie jest bezkontekstowy[regularny], należy udowodnić, że nie posiada gramatyki bezkontekstowej[prawoliniowej] to jest na ogół trudne Bardzo nieformalne kryteria negatywne: 1 Rozpoznanie słowa języka regularnego nie wymaga porównywania liczby liter Npjęzyk { a n b n n 0 } niejestregularny 2 Rozpoznanie słowa języka bezkontekstowego może wymagać porównania liczby liter ale tylko w dwóch blokach Np { a n b n n 0 } jesta { a n b n a n n 0 } niejestbezkontekstowy 3 Rozpoznanie słowa języka bezkontekstowego może wymagać porównania liczby liter{ jw, ale nie może wymagać obliczeń arytmetycznych } Np a n b n2 n 0 nie jest bezkontekstowy 4 Rozpoznanie słowa języka bezkontekstowego nie może wymagać pamiętania słów bez ograniczenia długości Np { ww R w Σ } jesta { ww w Σ } niejestbezkontekstowy