JĘZYKI FORMALNE I METODY KOMPILACJI



Podobne dokumenty
JĘZYKI FORMALNE I METODY KOMPILACJI

JĘZYKIFORMALNE IMETODYKOMPILACJI

JĘZYKI FORMALNE I METODY KOMPILACJI

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

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

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

Hierarchia Chomsky ego Maszyna Turinga

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

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

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

Języki, automaty i obliczenia

Języki formalne i automaty Ćwiczenia 2

JĘZYKI PROGRAMOWANIA

Symbol, alfabet, łańcuch

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

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

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

Języki i gramatyki formalne

Gramatyki regularne i automaty skoczone

GRAMATYKI BEZKONTEKSTOWE

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

Efektywna analiza składniowa GBK

Analiza semantyczna. Gramatyka atrybutywna

Matematyczne Podstawy Informatyki

Obliczenia inspirowane Naturą

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

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

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

Języki, automaty i obliczenia

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

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

Języki formalne i automaty Ćwiczenia 9

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

Gramatyki rekursywne

Zadanie analizy leksykalnej

JIP. Analiza składni, gramatyki

Maszyna Turinga języki

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

SZTUCZNA INTELIGENCJA

Jaki język zrozumie automat?

Języki formalne i automaty Ćwiczenia 6

Gramatyki atrybutywne

3.4. Przekształcenia gramatyk bezkontekstowych

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

Języki programowania zasady ich tworzenia

Obliczenia inspirowane Naturą

Języki formalne i automaty Ćwiczenia 3

ZAAWANSOWANE JĘZYKI PROGRAMOWANIA

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

Hierarchia Chomsky ego

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

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

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

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

0.1 Lewostronna rekurencja

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)

Matematyczne Podstawy Informatyki

Języki formalne i gramatyki

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

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

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

Imię, nazwisko, nr indeksu

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

Podstawy Kompilatorów

Języki, automaty i obliczenia

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

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

Języki formalne i automaty Ćwiczenia 5

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

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

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

Języki formalne i automaty Ćwiczenia 4

Języki formalne i automaty Ćwiczenia 8

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

10. Translacja sterowana składnią i YACC

Struktury formalne, czyli elementy Teorii Modeli

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S.

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

Podstawy Informatyki Maszyna Turinga

Podstawy i języki programowania

Języki, automaty i obliczenia

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Teoria układów logicznych

Składnia rachunku predykatów pierwszego rzędu

Teoria automatów i języków formalnych. Określenie relacji

. : a 1,..., a n F. . a n Wówczas (F n, F, +, ) jest przestrzenią liniową, gdzie + oraz są działaniami zdefiniowanymi wzorami:

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

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

Gramatyka operatorowa

1 Działania na zbiorach

Organizajca kursów języka angielskiego i języka niemieckiego /II etap: IX-XII 2011r/

Wykład 5. Jan Pustelnik

WSTĘP DO PROGRAMOWANIA

Podstawy Informatyki Gramatyki formalne

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:

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Transkrypt:

Stefan Sokołowski JĘZYKI FORMALNE I METODY KOMPILACJI Inst Informatyki Stosowanej, PWSZ Elbląg, 2015/2016 JĘZYKI FORMALNE reguły gry Wykład1,str1 Zasadnicze informacje: http://iispwszelblagpl/ stefan/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 Wykład1,str2 Kontakt ze mną: konsultacje: piątki, 15:15 16: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ład1,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 56 6263 727382 83 91 92 100 33+ 4 4+5

Napisy w różnych językach Wykład1,str4 chińskie przysłowie: lód o grubości trzech stóp nie bierze się z jednego mroźnego dnia preludium i fuga C-dur Bacha Napisy w różnych językach Wykład1,str5 Interesują nas napisy liniowe, w których znaki następują jeden za drugim, jednowymiarowo Nie interesują nas napisy wielowymiarowe Wetlina, Berehy i Połonina Caryńska

Język formalny Wykład1,str6 (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ład1,str7 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? Wykład1,str8 {λ,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ład1,str9 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? Wykład1,str10 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ład1,str11 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? Wykład1,str12 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ład1,str13 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)