abeceda a formální jazyk

16
Abeceda a formální jazyk U přirozeného jazyka je nutné znát nejprve písmena, z nichž se tvoří slova a potom věty Stejně je tomu i u formálních jazyků DEF: Abeceda je konečná množina prvků, které nazýváme symboly. Příklad: A = {a,b,c, …,x,y,z} B = {0,1} C = {0,1,2,…,9} D = {.,0,1,2,…,9}

Upload: nikkos

Post on 22-Jan-2016

62 views

Category:

Documents


0 download

DESCRIPTION

Abeceda a formální jazyk. U přirozeného jazyka je nutné znát nejprve písmena, z nichž se tvoří slova a potom věty Stejně je tomu i u formálních jazyků DEF: Abeceda je konečná množina prvků, které nazýváme symboly. Příklad: A = {a,b,c, …,x,y,z}B = {0,1} - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Abeceda a formální jazyk

Abeceda a formální jazyk

U přirozeného jazyka je nutné znát nejprve písmena, z nichž se tvoří slova a potom věty

Stejně je tomu i u formálních jazyků

DEF: Abeceda je konečná množina prvků, které nazýváme symboly.

Příklad: A = {a,b,c, …,x,y,z} B = {0,1} C = {0,1,2,…,9} D = {.,0,1,2,…,9}

Page 2: Abeceda a formální jazyk

Řetězce nad danou abecedou

DEF: Řetězec nad abecedou A je libovolná konečná posloupnost symbolů z abecedy A.

x = a1a2…..ak-1ak je řetězec nad A {ai A | i=1,..,k}

Příklad: 0101011 je řetězec nad abecedou A = {0,1} 4.573.3 je řetězec nad abecedou B = {.,0,1,2,…,9} 0.A567 není řetězec nad abecedou B = {.,0,1,2,…,9}

DEF: Délka řetězce je rovna počtu symbolů v řetězci. x = a1a2…..ak-1ak & ai A pro i=1,..,k, potom |x| = k

Page 3: Abeceda a formální jazyk

Řetězce nad danou abecedou

DEF: Řetězec s nulovou délkou se nazývá prázdný řetězec a značí se e.

DEF Obrácený řetězec. Jestliže x = a1a2…..ak-

1ak je řetězec nad abecedou A potom xR= akak-

1…..a2a1 je obrácený řetězec k řetězci xPříklad:

x = abcde xR= edcba

Tvrzení: (xR) R= x

Page 4: Abeceda a formální jazyk

Operace zřetězení

DEF: Jestliže x = a1a2…ak-1ak a y = b1b2…bl-1bl ,

potom řetězec xy = a1a2…akb1b2…bl-1bl nazýváme zřetězením řetězců x a y (značíme x•y)

Tvrzení: Množina všech řetězců nad danou abecedou je uzavřená vzhledem k operaci zřetězení.

Důkaz: Nechť x = a1a2…ak-1ak {ai A, i=1,..,k}

y = b1b2…bl-1bl , {bi A, i=1,..,l}

potom xy = a1a2…akb1b2…bl-1bl = c1…ckck+1…ck+l

a současně {ci A, i=1,..,k+l}

Page 5: Abeceda a formální jazyk

Prefix, postfix a podřetězec

DEF: Jestliže x = a1a2…ai…aj ….am,

potom libovolný řetězec u = a1a2…ai nazýváme prefixem řetězce x

v = ai+1…aj nazýváme podřetězcem řetězce x

w = aj+1…am nazýváme postfixem řetězce x

Napíšeme-li řetězec ve tvaru x=uvw, potom u je prefix, v je podřetězec a w je postfix

Page 6: Abeceda a formální jazyk

Prefix, postfix a podřetězec

Příklad: Nechť x = 0101

potom prefixy: e, 0, 01, 010, 0101 podřetězce: e, 0, 1, 01, 10, 010, 101, 0101 postfixy: e, 1, 01, 101, 0101

(prefixem není 1, 10 atd.; podřetězcem není 11, 00 atd.)

(e je prefixem, postfixem i podřetězcem lib. řetězce)

Úloha: x = hradec ??? prefixy, podřetězce, postfixy

Page 7: Abeceda a formální jazyk

Množina řetězců nad abecedou

DEF: Nechť A je libovolná abeceda. Množina všech řetězců nad abecedou A se označuje A*.

DEF: Množina všech neprázdných řetězců nad abecedou A se označuje A+.

Platí A+ = A* – {e}

Příklad: Nechť A = {0,1}, potomA* = {e, 0, 1, 00, 01, 10, 11, 000, 001, 010, …}A+ = {0, 1, 00, 01, 10, 11, 000, 001, 010, …}

Page 8: Abeceda a formální jazyk

Formální jazyky

DEF: Nechť A je daná abeceda. Potom libovolná podmnožina L A* je formální jazyk nad abecedou  A.

Je-li L konečná (respektive nekonečná), je příslušný jazyk konečný (respektive nekonečný)

Jazyk může být i prázdný.

Příklad: Nechť L je český jazyk, potom: x L: Ahoj , čau, dobré, ráno, dobrý, den, dobrou, noc, …

x L: Axoj, čaw, dibré, morning, bnon, jour, ….

Page 9: Abeceda a formální jazyk

Formální jazyky

Jazyk je množina a z toho plyne, že jej umíme popsat: - vyjmenováním všech prvků - definováním vlastnosti, kterou musí všechny prvky

množiny splňovat

Příklad: A = {a}, potom L1= {e, a, aa, aaa} = {ai| i = 0, 1, 2, 3} …

konečnýL2= {a, aa, aaa, …} = {ai| i > 0} = A+ …

nekonečný L3= Ø …prázdný

L4= {e} L3 = Ø …neprázdný jazyk obsahující jediné slovo

Page 10: Abeceda a formální jazyk

Formální jazyky

Jazyk je množina a z toho plyne, že lze používat i běžné množinové operace:

DEF: Nechť A a B jsou abecedy, L1 a L2 jazyky takové, že L1 A* a L2 B*.

Potom platí A B = {x| xA xB} L1 L2 = {y| y L1 y L2}

A B = {x| xA xB} L1 L2 = {y| y L1 y L2}

A \ B = {x| xA xB} L1 \ L2 = {y| y L1 y L2}

Page 11: Abeceda a formální jazyk

Formální jazyky

DEF: Operace zřetězení jazyků: L =L1•L2 = {xy| x L1 y L2}

Příklad: Nechť L1 ={a,b,.., z} a L2 = {a,b,..,z,0,1,..,9}*.

Potom L= L1•L2 je množina všech řetězců nad abecedou {a,b,..,z,0,1,..,9} takových, že

x = a1a2…an, kde a1 L1 & a2…an L2

L = ?L je množina všech běžně používaných identifikátorů, jelikož každý řetězec z L začíná písmenem.

Page 12: Abeceda a formální jazyk

Formální jazyky

DEF: Nechť L je jazyk, potom n-tou moncninu jazyka definujeme takto:

L0 = {e}Ln = LLn-1 pro n1

Příklad: L = {ab, ba}Napište první čtyři mocniny jazyka L.Popište slovy n-tou mocninu jazyka L.

Page 13: Abeceda a formální jazyk

Formální jazyky

DEF: Nechť L je jazyk, potom iterací jazyka rozumíme množinu L* = L0 L1 L2 L3 L4 … a pozitivní iterací množinu L+ = L1 L2 L3 …

Platí: L* = L+ {e} , L+ = LL* = L*L

Příklad: L = {ab}L+ = {ab, abab, ababab, abababab, ….}L* = {e, ab, abab, ababab, abababab, ….}

Page 14: Abeceda a formální jazyk

Formální jazyky - úkoly

Příklad: L = {0,1,..,9}* Jazyk nezáporných celých čísel s vedoucími nulami.

Úlohy: Nadefinujte jazyk, který obsahuje nezáporná celá čísla (bez

vedoucích nul).Nadefinujte jazyk, který obsahuje všechna celá čísla. Nadefinujte jazyk, který obsahuje reálná čísla.Nadefinujte jazyk, který obsahuje množinu všech komentářů v

programovacím jazyce C.Nadefinujte jazyk nad abecedou {a,b,…,z}, který obsahuje

všechny slova obsahující podřetězec zuzana.

Page 15: Abeceda a formální jazyk

Formální jazyky - úkoly

Úlohy: Lze množinu přirozených čísel považovat za abecedu? Lze množinu přirozených čísel považovat za jazyk? Která slova jsou zároveň prefixem i sufixem slova 101?Jaká slova vzniknou zřetězením jazyků {11,00} a {11,0}?Jaký jazyk vznikne iterací jazyka {00,01,1}?

Obsahuje tento jazyk všechna slova nad abecedou {0,1}?Pro

L1 ={w{a,b}|w obsahuje sudý počet symbolů a} a

L2 ={w{a,b}|w začíná a končí stejným symbolem}

napište několik prvních slov z L1 L2, L1 L2, L1 \ L2, \L1.

Page 16: Abeceda a formální jazyk

Formální jazyky - úkoly

Úlohy: Popište slovně jazyk nad abecedou {0,1} vzniklý iterací jazyka {00,111}*?Jak lze schematicky popsat všechny posloupnosti stisků přepínačů A a B, které zajistí, že žárovka poté znovu svítí?

A B