Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20

Podobné dokumenty
Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března / 32

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března / 50

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Turingovy stroje. Teoretická informatika Tomáš Foltýnek

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43

Formální jazyky a automaty Petr Šimeček

Syntaxí řízený překlad

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Základy teoretické informatiky Formální jazyky a automaty

Naproti tomu gramatika je vlastně soupis pravidel, jak

/1: Teoretická informatika(ti) přednáška 4

Teoretická informatika - Úkol č.1

Úvod do informatiky. Miroslav Kolařík

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Vztah jazyků Chomskeho hierarchie a jazyků TS

Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.

Naproti tomu gramatika je vlastně soupis pravidel, jak

Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27

Bezkontextové gramatiky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května / 49

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39

Formální jazyky a gramatiky Teorie programovacích jazyků

Vlastnosti regulárních jazyků

Zásobníkový automat. SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.

Úvod do informatiky. Miroslav Kolařík

Konečný automat Teorie programovacích jazyků

Konečný automat. Jan Kybic.

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Jednoznačné a nejednoznačné gramatiky

Výroková logika. Teoretická informatika Tomáš Foltýnek

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Minimalizace KA - Úvod

5 Orientované grafy, Toky v sítích

AUTOMATY A GRAMATIKY

/01: Teoretická informatika(ti) přednáška 5

2 Formální jazyky a gramatiky

3. Algebraické systémy

Univerzální Turingův stroj a Nedeterministický Turingův stroj

1 Kardinální čísla. množin. Tvrzení: Necht X Cn. Pak: 1. X Cn a je to nejmenší prvek třídy X v uspořádání (Cn, ),

Základy matematické analýzy

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA

Automaty a gramatiky

Teoretická informatika

Martin Plicka. October 24, 2012

Numerická stabilita algoritmů

Konstruktory překladačů

Báze konečněrozměrných vektorových prostorů, lineární zobrazení vektorových prostorů

Lineární algebra : Násobení matic a inverzní matice

Cvičení 5 - Inverzní matice

Týden 11. Přednáška. Teoretická informatika průběh výuky v semestru 1. Nejprve jsme dokončili témata zapsaná u minulé přednášky.

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Lineární algebra : Násobení matic a inverzní matice

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Sémantika výrokové logiky. Alena Gollová Výroková logika 1/23

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Lineární algebra : Skalární součin a ortogonalita

Oproti definici ekvivalence jsme tedy pouze zaměnili symetričnost za antisymetričnost.

Operace s maticemi

ZÁPADOČESKÁ UNIVERZITA V PLZNI

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Poslední aktualizace: 14. října 2011

Teoretická informatika TIN 2013/2014

1-Úvod. Automaty a gramatiky(bi-aag) Plán přednášky. 8. Regulární výrazy - aplikace

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

1 Soustavy lineárních rovnic

Výroková logika - opakování

Teoretická informatika

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Svobodná chebská škola, základní škola a gymnázium s.r.o. Astaloš Dušan. frontální, fixační. samostatná práce, skupinová práce

Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

Lineární algebra : Lineární prostor

Úvod do databázových systémů

Lexikální analýza. Rozhraní lexikálního analyzátoru. Miroslav Beneš Dušan Kolář. M. Beneš, D. Kolář: Lexikální analýza 1. Lexikální analýza 2

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Cvičení ke kursu Vyčíslitelnost

Lexikální analýza. Miroslav Beneš Dušan Kolář

grupa těleso podgrupa konečné těleso polynomy komutativní generovaná prvkem, cyklická, řád prvku charakteristika tělesa

Návrh algoritmů pro sémantické akce při výstavbě interpretu metodou rekurzivního sestupu

Teoretická informatika průběh výuky v semestru 1

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA I, zimní semestr 2000/2001 Michal Marvan. 2.

TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Matematická logika. Rostislav Horčík. horcik

Lineární algebra Eva Ondráčková

Cvičení 1. Úvod do teoretické informatiky(2014/2015) cvičení 1 1

Program SMP pro kombinované studium

Výroková logika syntaxe a sémantika

Transkript:

Regulární výrazy M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 1/ 20

Regulární výrazy Jako například v aritmetice můžeme pomocí operátorů + a vytvářet výrazy jako (5+3) 4 můžemevteoriiformálníchjazykůpomocíoperátorů+, a vytvářet tzv. regulární výrazy, jako třeba které reprezentují jazyky. (0+1) 0 Jakojehodnotouaritmetickéhovýrazu(5+3) 4číslo32,jehodnotou regulárníhovýrazu(0+1) 0 jazyk ({0} {1}) {0} M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 2/ 20

Regulární výrazy Induktivní definice regulárních výrazů nad abecedou Σ:,,a(kdea Σ)jsouregulárnívýrazy:... označujeprázdnýjazyk... označujejazyk {} a... označujejazyk {a} Jestliže α, βjsouregulárnívýrazy,paki(α+β),(α β),(α )jsou regulární výrazy: (α+β)... označujesjednoceníjazykůoznačených αaβ (α β)... označujezřetězeníjazykůoznačených αaβ (α )... označujeiteracijazykaoznačeného α Neexistují žádné další regulární výrazy než ty definované podle předchozích dvou bodů. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 3/ 20

Regulární výrazy Příklad: Podledefinicejsou0i1regulárnívýrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 4/ 20

Regulární výrazy Příklad: Podledefinicejsou0i1regulárnívýrazy. Protože0i1jsouregulárnívýrazy,jei(0+1)regulárnívýraz. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 4/ 20

Regulární výrazy Příklad: Podledefinicejsou0i1regulárnívýrazy. Protože0i1jsouregulárnívýrazy,jei(0+1)regulárnívýraz. Protože0jeregulárnívýraz,jei(0 )regulárnívýraz. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 4/ 20

Regulární výrazy Příklad: Podledefinicejsou0i1regulárnívýrazy. Protože0i1jsouregulárnívýrazy,jei(0+1)regulárnívýraz. Protože0jeregulárnívýraz,jei(0 )regulárnívýraz. Protože(0+1)i(0 )jsouregulárnívýrazy,jei((0+1) (0 )) regulární výraz. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 4/ 20

Regulární výrazy Příklad: Podledefinicejsou0i1regulárnívýrazy. Protože0i1jsouregulárnívýrazy,jei(0+1)regulárnívýraz. Protože0jeregulárnívýraz,jei(0 )regulárnívýraz. Protože(0+1)i(0 )jsouregulárnívýrazy,jei((0+1) (0 )) regulární výraz. Poznámka: Jestliže α je regulární výraz, zápisem[α] označujeme jazyk definovaný regulárním výrazem α. [((0+1) (0 ))]={0,1,00,10,000,100,0000,1000,00000,... } M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 4/ 20

Regulární výrazy Aby byl zápis regulárních výrazů přehlednější a stručnější, používáme následují pravidla: Vynecháváme vnější pár závorek. Vynecháváme závorky, které jsou zbytečné vzhledem k asociativitě operací sjednocení(+) a zřetězení( ). Vynecháváme závorky, které jsou zbytečné vzhledem k prioritě operací (nejvyššíprioritumáiterace( ),menšízřetězení( )anejmenší sjednocení(+)). Nepíšeme tečku pro zřetězení. Příklad: Místo obvykle píšeme (((((0 1) ) 1) (1 1))+(((0 0)+1) )) (01) 111+(00+1) M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 5/ 20

Regulární výrazy Příklady:VevšechpřípadechΣ={0,1}. 0... jazyktvořenýjedinýmslovem0 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 6/ 20

Regulární výrazy Příklady:VevšechpřípadechΣ={0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 6/ 20

Regulární výrazy Příklady:VevšechpřípadechΣ={0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 6/ 20

Regulární výrazy Příklady:VevšechpřípadechΣ={0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy,0,00,000,... M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 6/ 20

Regulární výrazy Příklady:VevšechpřípadechΣ={0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy,0,00,000,... (01)... jazyktvořenýslovy,01,0101,010101,... M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 6/ 20

Regulární výrazy Příklady:VevšechpřípadechΣ={0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy,0,00,000,... (01)... jazyktvořenýslovy,01,0101,010101,... (0+1)... jazyktvořenývšemislovynadabecedou {0,1} M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 6/ 20

Regulární výrazy Příklady:VevšechpřípadechΣ={0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy,0,00,000,... (01)... jazyktvořenýslovy,01,0101,010101,... (0+1)... jazyktvořenývšemislovynadabecedou {0,1} (0+1) 00... jazyktvořenývšemislovykončícími00 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 6/ 20

Regulární výrazy Příklady:VevšechpřípadechΣ={0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy,0,00,000,... (01)... jazyktvořenýslovy,01,0101,010101,... (0+1)... jazyktvořenývšemislovynadabecedou {0,1} (0+1) 00... jazyktvořenývšemislovykončícími00 (01) 111(01)... jazyktvořenývšemislovyobsahujícímipodslovo111 předcházené i následované libovolným počtem slov 01 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 6/ 20

Regulární výrazy (0+1) 00+(01) 111(01)... jazyktvořenývšemislovy,kterábuď končí 00 nebo obsahují podslovo 111 předcházené i následované libovolným počtem slov 01 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 7/ 20

Regulární výrazy (0+1) 00+(01) 111(01)... jazyktvořenývšemislovy,kterábuď končí 00 nebo obsahují podslovo 111 předcházené i následované libovolným počtem slov 01 (0+1) 1(0+1)...jazyktvořenývšemislovyobsahujícímialespoň jeden symbol 1 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 7/ 20

Regulární výrazy (0+1) 00+(01) 111(01)... jazyktvořenývšemislovy,kterábuď končí 00 nebo obsahují podslovo 111 předcházené i následované libovolným počtem slov 01 (0+1) 1(0+1)...jazyktvořenývšemislovyobsahujícímialespoň jeden symbol 1 (0 10 10 )... jazyktvořenývšemislovyobsahujícímisudýpočet symbolů 1 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 7/ 20

Regulární výrazy Strukturu regulárního výrazu si můžeme znázornit jako strom: + + 1 1 1 1 0 0 0 1 (((((0 1) ) 1) (1 1))+(((0 0)+1) )) M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 8/ 20

Převod regulárního výrazu na konečný automat Tvrzení Každý jazyk, který je možné vyjádřit regulárním výrazem, je regulární (tj. rozpoznávaný nějakým konečným automatem). Důkaz: Stačí ukázat, jak k danému regulárnímu výrazu α zkonstruovat konečný automat, který rozpoznává jazyk[α]. Konstrukce je rekurzivní a postupuje podle struktury výrazu α: Pokud je α elementární výraz(tj., nebo a): Sestrojíme přímo odpovídající automat. Pokudje αtvaru(β+ γ),(β γ)nebo(β ): Rekurzivně sestrojíme automaty rozpoznávající jazyky[β] a[γ]. Z nich sestrojíme automat rozpoznávající jazyk[α]. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 9/ 20

Převod regulárního výrazu na konečný automat Automaty pro elementární výrazy: a a M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 10/ 20

Převod regulárního výrazu na konečný automat Automaty pro elementární výrazy: a Konstrukce pro sjednocení: a M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 10/ 20

Převod regulárního výrazu na konečný automat Automaty pro elementární výrazy: a Konstrukce pro sjednocení: a M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 10/ 20

Převod regulárního výrazu na konečný automat Konstrukce pro zřetězení: M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 11/ 20

Převod regulárního výrazu na konečný automat Konstrukce pro zřetězení: M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 11/ 20

Převod regulárního výrazu na konečný automat Konstrukce pro zřetězení: Konstrukce pro iteraci: M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 11/ 20

Převod regulárního výrazu na konečný automat Konstrukce pro zřetězení: Konstrukce pro iteraci: M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 11/ 20

Převod regulárního výrazu na konečný automat Příklad:Konstrukceautomatuprovýraz((0+1) 1) : M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 12/ 20

Převod regulárního výrazu na konečný automat Příklad:Konstrukceautomatuprovýraz((0+1) 1) : 0 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 12/ 20

Převod regulárního výrazu na konečný automat Příklad:Konstrukceautomatuprovýraz((0+1) 1) : 0 1 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 12/ 20

Převod regulárního výrazu na konečný automat Příklad:Konstrukceautomatuprovýraz((0+1) 1) : 0 1 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 12/ 20

Převod regulárního výrazu na konečný automat Příklad:Konstrukceautomatuprovýraz((0+1) 1) : 0 1 1 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 12/ 20

Převod regulárního výrazu na konečný automat Příklad:Konstrukceautomatuprovýraz((0+1) 1) : 0 1 1 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 12/ 20

Převod regulárního výrazu na konečný automat Příklad:Konstrukceautomatuprovýraz((0+1) 1) : 0 1 1 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 12/ 20

Převod regulárního výrazu na konečný automat Pokud se výraz α skládá z n znaků(nepočítáme-li závorky), má výsledný automat: nejvýše 2n stavů, nejvýše 4n přechodů. Poznámka: Převodem ze zobecněného nedeterministického automatu na deterministický však může počet stavů vzrůst exponenciálně, tj. výsledný automatpakmůžemítaž2 2n =4 n stavů. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 13/ 20

Převod konečného automatu na regulární výraz Tvrzení Každý regulární jazyk je možné popsat nějakým regulárním výrazem. Důkaz: Stačí ukázat, jak pro libovolný konečný automat A zkonstruovat regulární výraz α takový, že[α] = L(A). A upravíme tak, aby měl právě jeden počáteční a právě jeden koncový stav. Budeme postupně odebírat jednotlivé stavy. Přechody budou označeny regulárními výrazy. Zbude automat se dvěma stavy počátečním a koncovým, a jedním přechodem ohodnoceným výsledným regulárním výrazem. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 14/ 20

Převod konečného automatu na regulární výraz Hlavní myšlenka: Při odstraňování stavu q nahradit pro každou dvojici zbylýchstavůq j,q k cestuzq j doq k vedoucípřesq. q j α q k β q γ δ Po odstranění stavu q: q j α+βγ δ q k M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 15/ 20

Převod konečného automatu na regulární výraz Příklad: b 1 a a 2 b b a 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 16/ 20

Převod konečného automatu na regulární výraz Příklad: b a 1 2 a s b b a 3 f M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 16/ 20

Převod konečného automatu na regulární výraz Příklad: b+aa s a ab 2 a+ba f b 3 bb M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 16/ 20

Převod konečného automatu na regulární výraz Příklad: s a(b+aa) f b+a(b+aa) ab 3 +(a+ba)(b+aa) bb+(a+ba)(b+aa) ab M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 16/ 20

Převod konečného automatu na regulární výraz Příklad: s a(b+aa) + (b+a(b+aa) ab) (bb+(a+ba)(b+aa) ab) (+(a+ba)(b+aa) ) f M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 16/ 20

Ekvivalence konečných automatů a regulárních výrazů Věta Jazyk je regulární právě tehdy, když je ho možné popsat regulárním výrazem. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 17/ 20

V praxi používané regulární výrazy Regulární výrazy jsou používány v celé řadě různých nástrojů. Příklady: Knihovna regex jazyka C. Package java.util.regex v jazyce Java. Modul re v jazyce Python. Programovací jazyk Perl. Unixové utility pro zpracování textových souborů grep, sed a awk. Generátory lexikálních analyzátorů lex a flex. Textovéeditory(vi,vim,emacs,...). M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 18/ 20

V praxi používané regulární výrazy Běžně používaná syntaxe(mezi jednotlivými nástroji jsou však drobné rozdíly):.... zastupujelibovolnýznak αβ... zřetězení αaβ α β... sjednocení αaβ α{m} α{m,n} α*... iterace α α+... totéž,co αα α?... totéž,co α+... totéžcomkrát α... αminimálněmkrát,maximálněnkrát (α)... závorky M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 19/ 20

V praxi používané regulární výrazy [xyz]... libovolnýzeznakůx,y,z [^xyz]... libovolnýznak,kroměx,y,z [a-f]... libovolnýzeznakůa,b,c,d,e,f ^... začátekřádku $... konecřádku \c... znakc Příklad: správně vytvořená e-mailová adresa ^[a-za-z0-9\.\-]+@[a-za-z0-9\.\-]+\.[a-za-z]{2,4}$ Poznámka: Podrobnější informace najdete například v seriálu Regulární výrazy autorapavlasatrapyna http://www.root.cz/serialy/regularni-vyrazy/ M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 20/ 20