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

Podobne dokumenty
Napisy i ich znaczenia

Metodologie programowania

Języki formalne i automaty Ćwiczenia 1

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

JAO - Wprowadzenie do Gramatyk bezkontekstowych

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

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

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

JĘZYKI FORMALNE I METODY KOMPILACJI

JĘZYKI FORMALNE I METODY KOMPILACJI

Języki formalne i automaty Ćwiczenia 3

Języki formalne i automaty Ćwiczenia 6

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

Matematyczne Podstawy Informatyki

Uproszczony schemat działania kompilatora

Jaki język zrozumie automat?

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

Języki formalne i automaty Ćwiczenia 2

JĘZYKIFORMALNE IMETODYKOMPILACJI

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

3.4. Przekształcenia gramatyk bezkontekstowych

Języki formalne i automaty Ćwiczenia 4

GRAMATYKI BEZKONTEKSTOWE

Hierarchia Chomsky ego Maszyna Turinga

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Języki formalne i automaty Ćwiczenia 9

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

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Języki, automaty i obliczenia

10. Translacja sterowana składnią i YACC

Metody Kompilacji Wykład 3

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

WYRAŻENIA ALGEBRAICZNE

Języki i gramatyki formalne

Gramatyka operatorowa

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

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Gramatyki rekursywne

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)

Efektywna analiza składniowa GBK

Wyrażenie wewnątrz nawiasów jest atomem (rozpatrujemy je jako całość).

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

11 Probabilistic Context Free Grammars

JĘZYKI FORMALNE I METODY KOMPILACJI

Języki programowania zasady ich tworzenia

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

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:

0.1 Lewostronna rekurencja

JIP. Analiza składni, gramatyki

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

SED - Stream EDitor. edytor strumieniowy. Bogumił Konopka W-11/I-21 Politechnika Wrocławska

Matematyczne Podstawy Informatyki

1. Podstawy budowania wyra e regularnych (Regex)

Języki formalne i automaty Ćwiczenia 8

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

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

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

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

Temat: Algorytm kompresji plików metodą Huffmana

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych.

Zadanie analizy leksykalnej

Podstawy Kompilatorów

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}

Uproszczony schemat działania kompilatora

Prolog (Pro-Logic) Programowanie w Logice. Dr inż. Piotr Urbanek

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

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

29. Poprawność składniowa i strukturalna dokumentu XML

10110 =

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

1. Wprowadzanie danych z klawiatury funkcja scanf

Hierarchia Chomsky ego

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

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

IX. Wskaźniki.(3 godz.)

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


Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Treści programowe. Matematyka. Efekty kształcenia. Literatura. Terminy wykładów i ćwiczeń. Warunki zaliczenia. tnij.org/ktrabka

WZORU PRZEMYSŁOWEGO PL XL-TAPE-INTERNATIONAL SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ, Kielce, (PL) WUP 12/2016

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Ćwiczenia nr 11. Translatory. Wprowadzenie teoretyczne

Podstawy nauk przyrodniczych Matematyka Zbiory

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Programowanie w języku Python. Grażyna Koba

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

1. Maszyna Turinga, gramatyki formalne i ONP

Wykład 5. Jan Pustelnik

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Zadanie 1. Potęgi (14 pkt)

Wyrażenia regularne.

Program We Kompilator Wy Źródłowy

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Wykład 10. Translacja sterowana składnią

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

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

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

1 Działania na zbiorach

Podstawy Programowania Podstawowa składnia języka C++

Transkrypt:

Wykład3,str1 Definiowanie języka przez wyrażenie regularne(wr) DEFINICJA: (wyrażenia regularne) M(specjalneznakinienależącedoalfabetu:{,},, ) literyalfabetusąwr złożeniawrsąwr: jeśliw 1 iw 2 sąwr,to{w 1 W 2 }jestwr sumywrsąwr: jeśliw 1 iw 2 sąwr,to{w 1 W 2 }jestwr domkkleenego WR jest WR: jeśliwjestwr,to{w} jestwr Umowa notacyjna: opuszczamy zbędne klamry, przyjmując, że najsilniejłączy anajsłabiej, złożenieisumałącządolewej Naprzykład aba ac cb oznacza aba ac cb czyli {{{{ab}a} {a{c} }} {cb}} Wykład3,str2 Definiowanie języka przez wyrażenie regularne(wr) Każdemu wyrażeniu regularnemu odpowiada język: pojedynczej literze σ odpowiada jednowyrazowy język{σ} jeśliwyrażeniuw 1 odpowiadajęzykl 1 awyrażeniuw 2 odpowiadajęzykl 2, towyrażeniu{w 1 W 2 }odpowiadajęzykzłożeń { w1 w 2 w1 L 1 w 2 L 2 } jeśliwyrażeniuw 1 odpowiadajęzykl 1 awyrażeniuw 2 odpowiadajęzykl 2, towyrażeniu{w 1 W 2 }odpowiadasumajęzyków L 1 L 2 = { } w w L 1 w L 2 jeśli wyrażeniu W odpowiada język L, towyrażeniu{w }odpowiadanieskończonasumajęzyków {λ} L LL LLL LLLL

Wyrażenia regularne a języki regularne Wykład3,str3 TWIERDZENIE: MKażdy język regularny odpowiada jakiemuś wyrażeniu regularnemu Każdy język, który odpowiada jakiemuś wyrażeniu regularnemu, jest regularny gramatyki prawoliniowe wyrażenia regularne Czyli: Języki regularne można definiować przy pomocy gramatyk prawoliniowych, albo przy pomocy wyrażeń regularnych to wychodzi na jedno Wyrażenia regularne a języki regularne Wykład3,str4 Przykład: M S λ S abs S cs {ab c} Przykład: Ma c ba S A S ba A C A aa C λ C cc

Wyrażenia regularne Wykład3,str5 Wyrażenie regularne jest wzorcem słowa z języka: oznacza lub, oznaczapowtarzanie(0lubwięcejrazy) Przykład: M {0 1 2 3 4 5 6 7 8 9} do tego wzorca pasuje dowolna cyfra {a b} c a bc jednozesłówacibc jednozesłówaibc {a b} a b dowolne słowo napisane literami słowo z samych liter a lub aib(łączniezλ) słowozsamychliterb Wyrażenia regularne Wykład3,str6 Wyrażenie regularne jest wzorcem słowa z języka: oznacza lub, oznaczapowtarzanie(0lubwięcejrazy) Przykład: M {ab} a b słowapostaci ababab słowapostaci aaabbb {a b} słowapostaci aabaabaab {0 9}{0 9} {0 9}{0 9}{0 9} dowolny kod pocztowy(dwie cyfry, myślnik, trzy cyfry)

Wyrażenia regularne Wykład3,str7 Zastosowania wyrażeń regularnych(zwykle z trochę wzbogaconą składnią): komendy systemu operacyjnego, mające działać na więcej niż jednym pliku; np w Uniksie: rm*~ usunąć wszystkie pliki, których nazwy kończą się falką; gwiazdka dowolny napis wyszukiwanie wzorca w tekście; np w Emacsie komenda Ctr-Alt-s: [0-9]+ znaleźć liczby, czyli niepuste ciągi cyfr; nawias prostokątny z kreską zakres znaków ASCII plus powtórzenieconajmniej1raz zastępowanie; np w Emacsie komenda Alt-x replace-regexp: liczba:\([0-9]+\) zastąpić napisy ze słowem liczba: i liczbą number:\1 przez napisy z number: i tą samą liczbą jeśli po słowie liczba nie ma liczby, to zastąpienia nie będzie Wyrażenia regularne w Emacsie Wykład3,str8 AlfabetΣ wzasadzieznakiascii;dzieląsięnaznaki specjalne: $^*+-?[]\ zwykłe: wszystkie inne Znaki zwykłe można wprost używać w wyrażeniach Znaki specjalne, o ile mają być wprost użyte, muszą być poprzedzone wtyłciachem \ W przeciwnym razie są traktowane jak niżej: (kropka) dowolny pojedynczy znak, np ac opisujesłowaaac,abc,a7c,a;c,itp *(gwiazdka) powtórzenie0lubwięcejrazy,np a* opisujesłowaλ,a,aa,aaa,itp +(plus) powtórzenie1lubwięcejrazy,np a+ opisujesłowaa,aa,aaa,itp -(minus) zakres(musi by wewnątrz nawiasu prostokątnego), np [a-z] opisuje pojedyncze małe litery [](nawiasyprostok) jedenzeznaków,np [abc] opisujea,bic;[0-9a-z] opisujepojedynczecyfryiduzelitery

Wykład3,str9 Umowa notacyjna dla gramatyk bezkontekstowych ponieważ nieterminale oznaczają pojęcia sugestywne nazwy np wyrażenie, liczba nieterminale ujmujemy w nawiasy kątowe: np, liczba wszystkie produkcje z pojedynczego nieterminalu grupujemy: piszemy cyfra ::=0 1 9 zamiast cyfra 0 cyfra 1 cyfra 9 liczba ::= cyfra liczba cyfra liczba cyfra liczba liczba cyfra Drzewa wywodu Wykład3,str10 ::=l () + () ( +) (l+) (l+l) () ( +) (+l) (l+l) ( l + l )

Drzewa wywodu Wykład3,str11 DEFINICJA: MDrzewo wywodu słowa w Σ w gramatyce bezkontekstowej G= Σ,N,P, S totakiedrzewo,którema: w liściach symbole terminalne składające się na słowo w, w pozostałych(wewnętrznych) węzłach nieterminale rozmieszczone wg takich zasad: jeśliwjakimśwęźleznajdujesięnieterminal A awjegodzieciach od lewej do prawej symbolea 1,a 2,,a n Σ N, to A a 1 a 2 a n musibyćprodukcjązp, w korzeniu znajduje się nieterminal początkowy S Przykład: MFragment drzewa + składnik jest legalny jeśli + składnik jest produkcją z gramatyki Drzewa wywodu Wykład3,str12 Drzewa wywodu słów w gramatyce prawoliniowej są przeważone w prawo tak, że stanowią prawie listy: E ::= a C b C C ::= λ a C b C 0 C 1 C E a C a C 1 C b C E a C aa C aa1 C aa1b C aa1b

Drzewa wywodu Wykład3,str13 Drzewa wywodu słów w gramatyce bezkontekstowej mogą być rozczapierzone we wszystkie strony zmienna ::=a b z cyfra ::=0 1 9 liczba ::= liczba cyfra cyfra atom ::= zmienna liczba () ::= składnik + składnik składnik ::= atom składnik atom Drzewa wywodu ciąg terminali: 34 (x+11) aksjomat Wykład3,str14 zmienna ::=a b z cyfra ::=0 1 9 liczba ::= liczba cyfra cyfra atom ::= zmienna liczba () ::= składnik + składnik składnik ::= atom składnik atom składnik atom składnik składnik atom atom liczba składnik liczba liczba atom liczba cyfra cyfra zmienna cyfra cyfra 3 4 * ( x + 1 1 )

Drzewo wywodu a struktura słowa 2 + 5 3 Wykład3,str15 ::=0 1 9 () + Niejednoznaczność wywodu: istnieją dwa różne drzewa wywodu danego słowa W tym przypadku sugerują one kolejność działań: drzewo górne odpowiada wykonaniu dodawania przed mnożeniem drzewo dolne odpowiada wykonaniu mnożenia przed dodawaniem Drzewo wywodu a struktura słowa Wykład3,str16 Gramatyka fragmentu języka polskiego: zdanie ::= grpodmiotu grorzeczenia grpodmiotu ::= podmiot przydawka grpodmiotu grorzeczenia ::= orzeczenie orzeczenie dopełnienie grorzeczenia okolicznik podmiot ::= Anka Basia Czesiek przydawka ::= gruby stary orzeczenie ::= bije kocha dopełnienie ::= Ankę Basię Cześka okolicznik ::= wdomu nocą

Drzewo wywodu a struktura słowa Wykład3,str17 zdanie grorzeczenia grpodmiotu grpodmiotu grorzeczenia grorzeczenia grpodmiotu przydawka przydawka podmiot orzeczenie dopełnienie okolicznik okolicznik stary gruby Czesiek bije Ankę wdomu nocą Drzewo wywodu a struktura słowa Wykład3,str18 zdanie grupa podmiotu grupa orzeczenia podmiot orzeczenie okolicznik = CZASLECI JAK STRZAŁA TIMEFLIESLIKEANARROW przydawka podmiot orzeczenie dopełnienie grupa podmiotu grupa orzeczenia = CZASOWEMUCHY LUBIĄ STRZAŁĘ zdanie Znaczenie zależy od drzewa rozbioru również w językach naturalnych

Drzewo wywodu a struktura słowa Wykład3,str19 Z punktu widzenia należenia słowa do języka postać drzewa wywodu nie ma znaczenia Z punktu widzenia przekazywanego sensu postać drzewa wywodu jest bardzo ważna Przykład: jak policzyć wartość wczytywanej liczby? M liczba ::= cyfra cyfra liczba To sugeruje, że trzeba osobno znaleźć wartość pierwszej cyfry i osobno całej resztyanastępniejakośtewartościpołączyć:3 456=3 10 3 +456 aleskądzgórywiedzieć,dojakiejpotęgipodnieść10? liczba ::= cyfra liczba cyfra To sugeruje, że trzeba osobno znaleźć wartość ostatniej cyfry i osobno całej resztyanastępniejakośtewartościpołączyć:345 6=345 10+6 tak jest łatwiej zaprogramować Rozumienie słowa oraz operacje na nim odbywają się faktycznie na jego drzewie wywodu