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

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

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

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

Predikátová logika 1. řádu shrnutí

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 Σ

Naproti tomu gramatika je vlastně soupis pravidel, jak

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

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

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

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

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

2 Formální jazyky a gramatiky

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

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

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

Množiny. množinové operace jsou mírně odlišné od

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

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

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

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

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

AUTOMATY A GRAMATIKY

Úvod do programovacích jazyků (Java)

0. ÚVOD - matematické symboly, značení,

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

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

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

Algoritmizace a programování

Rovnost lze vyjádřit jako predikát, např. můžeme zvolit, že P(x, y) reprezentujetvrzení xjerovnoy.

Jednoznačné a nejednoznačné gramatiky

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

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Formální jazyky. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 6. března / 48

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce

Naproti tomu gramatika je vlastně soupis pravidel, jak

V: Pro nulový prvek o lineárního prostoru L platí vlastnosti:

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

Základy maticového počtu Matice, determinant, definitnost

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

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 α

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

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že

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

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

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

Lineární algebra : Lineární prostor

Programování. Bc. Veronika Tomsová

Matematická logika. Miroslav Kolařík

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 3. PREDNÁŠKA - KOMPAKTNÍ PROSTORY.

Programovací jazyk Pascal

Operace s maticemi. 19. února 2018

Pravděpodobnost a statistika

Vlastnosti regulárních jazyků

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

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.

Algoritmizace prostorových úloh

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

4.2 Syntaxe predikátové logiky

Booleovy algebry. Irina Perfilieva. logo

Úvod do teoretické informatiky

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Úvod do informatiky. Miroslav Kolařík

LIMITA A SPOJITOST FUNKCE

Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se

Logika. 6. Axiomatický systém výrokové logiky

Množiny, základní číselné množiny, množinové operace

2. Definice pravděpodobnosti

0.1 Úvod do lineární algebry

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

Vztah jazyků Chomskeho hierarchie a jazyků TS

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

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

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

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

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

3 Množiny, Relace a Funkce

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Diskrétní matematika. DiM /01, zimní semestr 2017/2018

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

4. Kombinatorika a matice

Úvod do informatiky. Miroslav Kolařík

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

Matice. a m1 a m2... a mn

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

Množiny, relace, zobrazení

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

(Cramerovo pravidlo, determinanty, inverzní matice)

Složitost problémů. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna / 23

Programování v Pythonu

Cvičení 5 - Inverzní matice

Výroková a predikátová logika - II

Řešení. Hledaná dimenze je (podle definice) rovna hodnosti matice. a a 2 2 1

Operace s maticemi

Pravděpodobnost a její vlastnosti

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Booleova algebra Luboš Štěpánek

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35

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

Transkript:

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

Abeceda a slovo Definice Abeceda je libovolná neprázdná konečná množina symbolů(znaků). Poznámka: Abeceda se často označuje řeckým písmenem Σ(velké sigma). Definice Slovo v dané abecedě je libovolná konečná posloupnost symbolů z této abecedy. Příklad 1: Σ = {A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z} Slova v abecedě Σ: AHOJ ABRACADABRA ERROR Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 2/ 32

Abeceda a slovo Příklad 2: Σ 2 = {A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z, } Slovovabecedě Σ 2 : HELLO WORLD Příklad 3: Σ 3 = {0,1,2,3,4,5,6,7,8,9} Slovavabecedě Σ 3 : 0,31415926536,65536 Příklad 4: Slovavabecedě Σ 4 = {0,1}:011010001,111,1010101010101010 Příklad 5: Slovavabecedě Σ 5 = {a,b}: aababb, abbabbba, aaab Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 3/ 32

Abeceda a slovo Příklad 6: Abeceda Σ 6 jemnožinavšechasciiznaků. Příklad slova: class HelloWorld { public static void main(string[] args) { System.out.println("Hello, world!"); } } class HelloWorld { public static void main(str Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 4/ 32

Teorie formálních jazyků motivace Jazyk množina(některých) slov tvořených symboly z dané abecedy Příklady typů problémů, při jejichž řešení se využívá poznatků z teorie formálních jazyků: Tvorba překladačů: lexikální analýza syntaktická analýza Vyhledávání v textu: hledání zadaného vzorku hledání textu zadaného regulárním výrazem Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 5/ 32

Práce s formálními jazyky Když chceme nějaký jazyk popsat, máme několik možností: Můžeme vyjmenovat všechna jeho slova(což je ale použitelné jen pro malé konečné jazyky). Příklad: L = {aab, babba, aaaaaa} Můžeme specifikovat nějakou vlastnost, kterou mají právě ta slova, která do tohoto jazyka patří: Příklad: Jazyk nad abecedou {0, 1}, obsahující všechna slova, ve kterých je počet výskytů symbolu 1 sudý. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 6/ 32

Práce s formálními jazyky V teorii formálních jazyků se používají především následující dva přístupy: Popsat(idealizovaný) stroj, zařízení, algoritmus, který rozpozná slova patřící do daného jazyka vede k použití tzv. automatů. Popsat nějaký mechanismus umožňující generovat všechna možná slovapatřícídodanéhojazyka vedektzv.gramatikáma regulárním výrazům. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 7/ 32

Některé základní pojmy Délkaslovajepočetznakůveslově. Například délka slova abaab je 5. Délkuslova woznačujeme w. Pokudtedynapř. w = abaab,pak w =5. Početvýskytůznaku aveslově woznačujeme w a. Proslovo w = ababbtedyplatí w a =2a w b =3. Prázdné slovo je slovo délky 0, tj. neobsahující žádné znaky. Prázdné slovo se označuje řeckým písmenem ε(epsilon). (Pozn.: V literatuře se pro označení prázdného slova někdy používá místo symbolu ε řecké písmeno λ(lambda).) ε =0 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 8/ 32

Zřetězení slov Se slovy je možné provádět operaci zřetězení: Například zřetězením slov OST a RAVA vznikne slovo OSTRAVA. Operace zřetězení se označuje symbolem (podobně jako násobení). Tento symbol je možné vypouštět. OST RAVA =OSTRAVA Zřetězeníjeasociativní,tj.prolibovolnátřislova u, va wplatí (u v) w = u (v w) což znamená, že při zápisu více zřetězení můžeme vypouštět závorky a psátnapříklad w 1 w 2 w 3 w 4 w 5 místo (w 1 (w 2 w 3 )) (w 4 w 5 ). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 9/ 32

Zřetězení slov Zřetězení není komutativní, tj. obecně pro dvojici slov u a v neplatí rovnost u v = v u Příklad: OST RAVA RAVA OST Zjevněprolibovolnáslova va wplatí: v w = v + w Pro libovolné slovo w také platí: ε w = w ε = w Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 10/ 32

Prefixy, sufixy a podslova Definice Slovo xjeprefixemslova y,jestližeexistujeslovo vtakové,že y = xv. Slovo xjesufixemslova y,jestližeexistujeslovo utakové,že y = ux. Slovo xjepodslovemslova y,jestližeexistujíslova ua vtaková,že y = uxv. Příklad: Prefixyslovaabaabjsou ε,a,ab,aba,abaa,abaab. Sufixyslovaabaabjsou ε,b,ab,aab,baab,abaab. Podslovaslovaabaabjsou ε,a,b,ab,ba,aa,aba,baa,aab,abaa, baab, abaab. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 11/ 32

Jazyk Množinuvšechslovtvořenýchsymbolyzabecedy Σoznačujeme Σ. Definice (Formální) jazyk L v abecedě Σ je nějaká libovolná podmnožina množiny Σ,tj. L Σ. Příklad1:Množina {00,01001,1101}jejazykvabecedě {0,1}. Příklad 2: Množina všech syntakticky správných programů v jazyce C je jazyk v abecedě tvořené množinou všech ASCII znaků. Příklad 3: Množina všech textů obsahujících sekvenci znaků ahoj je jazyk v abecedě tvořené množinou všech ASCII znaků. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 12/ 32

Množinové operace na jazycích Vzhledem k tomu, že jazyky jsou množiny, můžeme s nimi provádět množinové operace: Sjednocení L 1 L 2 jejazyktvořenýslovy,kterápatříbuďdojazyka L 1 nebodojazyka L 2 (nebodoobou). Průnik L 1 L 2 jejazyktvořenýslovy,kterápatřísoučasnědojazyka L 1 idojazyka L 2. Doplněk L 1 jejazyktvořenýtěmislovyze Σ,kteránepatřído L 1. Rozdíl L 1 L 2 jejazyktvořenýslovy,kterápatřído L 1,alenepatří do L 2. Poznámka: Při operacích nad jazyky předpokládáme, že jazyky, se kterými operaci provádíme, používají tutéž abecedu Σ. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 13/ 32

Množinové operace na jazycích Formálně: Sjednocení: L 1 L 2 = {w Σ w L 1 w L 2 } Průnik: L 1 L 2 = {w Σ w L 1 w L 2 } Doplněk: L 1 = {w Σ w L 1 } Rozdíl: L 1 L 2 = {w Σ w L 1 w L 2 } Poznámka:Předpokládáme,že L 1,L 2 Σ pronějakoudanouabecedu Σ. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 14/ 32

Množinové operace na jazycích Příklad: Uvažujme jazyky nad abecedou {a, b}. Pak L 1 množinavšechslovobsahujícíchpodslovobaa L 2 množinavšechslovsesudýmpočtemvýskytůsymbolub L 1 L 2 množinavšechslovobsahujícíchpodslovobaanebosudý počet symbolů b L 1 L 2 množinavšechslovobsahujícíchpodslovobaaasudý počet symbolů b L 1 množinavšechslov,kteráneobsahujípodslovobaa L 1 L 2 množinavšechslov,vekterýchsevyskytujepodslovobaa, alekdepočetsymbolůbnenísudý Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 15/ 32

Zřetězení jazyků Definice Zřetězeníjazyků L 1 a L 2,kde L 1,L 2 Σ,jejazyk L Σ takový,žepro každé w Σ platí w L ( u L 1 )( v L 2 )(w = u v) Zřetězeníjazyků L 1 a L 2 označujeme L 1 L 2. Příklad: L 1 = {abb,ba} L 2 = {a,ab,bbb} Jazyk L 1 L 2 obsahujeslova: abba abbab abbbbb baa baab babbb Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 16/ 32

Iterace jazyka Definice Iteracejazyka L,označovanázápisem L,jejazyktvořenýslovyvzniklými zřetězením libovolného počtu slov z jazyka L. Tj. w L právětehdy,když n N : w 1,w 2,...,w n L : w = w 1 w 2 w n Příklad: L = {aa,b} L = {ε,aa,b,aaaa,aab,baa,bb,aaaaaa,aaaab,aabaa,aabb,...} Poznámka: Počet slov, která zřetězujeme, může být i 0, což znamená, že vždyplatí ε L (bezohledunato,zda ε Lnebone). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 17/ 32

Iterace jazyka alternativní definice Nejprvedefinujemeprojazyk Lačíslo k Njazyk L k : L 0 = {ε}, L k = L k 1 L pro k 1 To znamená L 0 = {ε} L 1 = L L 2 = L L L 3 = L L L L 4 = L L L L L 5 = L L L L L... Příklad:Pro L = {aa,b}jazyk L 3 obsahujenásledujícíslova: aaaaaa aaaab aabaa aabb baaaa baab bbaa bbb Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 18/ 32

Iterace jazyka alternativní definice Alternativní definice Iterace jazyka L je jazyk L = k 0 L k Poznámka: L k = L 0 L 1 L 2 L 3 k 0 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 19/ 32

Iterace jazyka Poznámka:Používásetakézápis L + jakozkratkaza L L,tj. L + = k 1 L k Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 20/ 32

Zrcadlový obraz Zrcadlovýobrazslova wjeslovo wzapsané pozpátku. Zrcadlovýobrazslova wznačíme w R. Příklad: w =AHOJ w R =JOHA Formálněmůžemedefinovat,žepro w = a 1 a 2 a n (kde a i Σ)je w R = a n a n 1 a 1. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 21/ 32

Zrcadlový obraz Zrcadlový obraz jazyka L je jazyk tvořený zrcadlovými obrazy všech slov zjazyka L. Zrcadlovýobrazjazyka Lznačíme L R. L R = {w R w L} Příklad: L = {ab, baaba, aaab} L R = {ba, abaab, baaa} Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 22/ 32

Uspořádání na slovech Předpokládejme určité(lineární) uspořádání < symbolů abecedy Σ, tj.pokud Σ = {a 1,a 2,...,a n },takplatí a 1 < a 2 <... < a n. Příklad: Σ = {a,b,c},přičemž a < b < c. Namnožině Σ můžemedefinovatnásledující(lineární)uspořádání < L : x < L yprávětehdy,když: x < y,nebo x = y aexistujíslova u,v,w Σ asymboly a,b Σtakové,že platí x = uav y = ubw a < b Neformálněmůžemeříctvuspořádání < L řadímeslovapodledélkya v rámci stejné délky lexikograficky(podle abecedy). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 23/ 32

Uspořádání na slovech Všechnaslovanadabecedou Σmůžemepomocíuspořádání < L seřaditdo posloupnosti w 0,w 1,w 2,... vekterésekaždéslovo w Σ vyskytujeprávějednouakdeprolibovolná i,j Nplatí,že w i < L w j právětehdy,když i < j. Příklad:Proabecedu Σ = {a,b,c}(kde a < b < c)budezačátek posloupnosti vypadat následovně: ε,a,b,c,aa,ab,ac,ba,bb,bc,ca,cb,cc,aaa,aab,aac,aba,abb,abc,... Pokudbudememluvitnapříkladoprvníchdesetislovechjazyka L Σ, mámetímnamyslidesetslov,kterápatřídojazyka Lajsoumezivšemi slovyzjazyka Lnejmenšívzhledemkuspořádání < L. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 24/ 32

Regulární výrazy Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 25/ 32

Regulární výrazy Regulární výrazy popisující jazyky nad abecedou Σ:, ε, a(kde a Σ)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ů. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 26/ 32

Regulární výrazy Příklad: abeceda Σ = {0,1} Podledefinicejsou0i1regulárnívýrazy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 27/ 32

Regulární výrazy Příklad: abeceda Σ = {0,1} Podledefinicejsou0i1regulárnívýrazy. Protože0i1jsouregulárnívýrazy,jei(0+1)regulárnívýraz. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 27/ 32

Regulární výrazy Příklad: abeceda Σ = {0,1} 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. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 27/ 32

Regulární výrazy Příklad: abeceda Σ = {0,1} 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. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 27/ 32

Regulární výrazy Příklad: abeceda Σ = {0,1} 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,...} Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 27/ 32

Regulární výrazy Strukturu regulárního výrazu si můžeme znázornit abstraktním syntaktickým stromem: + + 1 1 1 1 0 0 0 1 (((((0 1) ) 1) (1 1))+(((0 0)+1) )) Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 28/ 32

Regulární výrazy Formální definice sémantiky regulárních výrazů: [ ] = [ε] = {ε} [a] = {a} [α ] = [α] [α β] = [α] [β] [α+β] = [α] [β] Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 29/ 32

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) Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 30/ 32

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 31/ 32

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 31/ 32

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 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 31/ 32

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,... Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 31/ 32

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,... Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 31/ 32

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} Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 31/ 32

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 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 31/ 32

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 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 31/ 32

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 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 32/ 32

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 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 32/ 32

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 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března 2017 32/ 32