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

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

JAO - Wprowadzenie do Gramatyk bezkontekstowych

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

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

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

Języki formalne i automaty Ćwiczenia 1

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

Hierarchia Chomsky ego Maszyna Turinga

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

Symbol, alfabet, łańcuch

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

GRAMATYKI BEZKONTEKSTOWE

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.

Języki, automaty i obliczenia

JĘZYKI PROGRAMOWANIA

Języki formalne i automaty Ćwiczenia 2

Gramatyki regularne i automaty skoczone

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

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

Matematyczne Podstawy Informatyki

Gramatyki rekursywne

Języki formalne i automaty Ćwiczenia 9

Obliczenia inspirowane Naturą

Maszyna Turinga języki

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

Jaki język zrozumie automat?

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

Zadanie analizy leksykalnej

Analiza semantyczna. Gramatyka atrybutywna

Efektywna analiza składniowa GBK

Języki formalne i automaty Ćwiczenia 6

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

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

Gramatyki atrybutywne

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

Języki, automaty i obliczenia

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

SZTUCZNA INTELIGENCJA

Hierarchia Chomsky ego

JIP. Analiza składni, gramatyki

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

Matematyczne Podstawy Informatyki

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

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

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

Języki programowania zasady ich tworzenia

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

Obliczenia inspirowane Naturą

ZAAWANSOWANE JĘZYKI PROGRAMOWANIA

Języki formalne i automaty Ćwiczenia 3

Języki, automaty i obliczenia

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

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

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

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)

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

0.1 Lewostronna rekurencja

3.4. Przekształcenia gramatyk bezkontekstowych

Uproszczony schemat działania kompilatora

Języki formalne i gramatyki

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

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

Imię, nazwisko, nr indeksu

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

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

Podstawy Kompilatorów

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

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

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

Włączenie analizy leksykalnej do analizy składniowej jest nietrudne; po co więc jest wydzielona?

PODSTAWY LOGIKI I TEORII MNOGOŚCI

Języki formalne i automaty Ćwiczenia 5

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 automaty Ćwiczenia 4

Języki formalne i automaty Ćwiczenia 8

10. Translacja sterowana składnią i YACC

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

Podstawy i języki programowania

Struktury formalne, czyli elementy Teorii Modeli

Teoria miary. Matematyka, rok II. Wykład 1

Podstawy Informatyki Maszyna Turinga

11 Probabilistic Context Free Grammars

Języki formalne i automaty Ćwiczenia 7

Języki, automaty i obliczenia

10110 =

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}

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

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Składnia rachunku predykatów pierwszego rzędu

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

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

Obliczenia inspirowane Naturą

Transkrypt:

Stefan Sokołowski JĘZYKI FORMALNE I METODY KOMPILACJI Inst Informatyki Stosowanej, PWSZ Elbląg, 2018/2019 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: soboty, 10:45 11:30, w pok 322 poniedziałki, 11:15 12:00, w pok 322 e-mail: ssokolowski@pwszelblagpl 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 czwórka Σ, N, P, S 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

DEFINICJA: Wywodliwość uav M G uwv czyli uwv jest bezpośrednio wywodliwe z uav Wykład1,str10 def wpjestprodukcja A w w 1 Gw n czyli w n jestwywodliwezw 1 def w 1 G w 2 w 2 G w 3 w n 1 G w 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} } 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

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