1 / 16

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}

nikkos
Download Presentation

Abeceda a formální jazyk

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Ř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.3je ř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

  3. Řetězce nad danou abecedou • DEF: Řetězecs 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 x • Příklad: • x = abcde xR= edcba • Tvrzení: (xR) R= x

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

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

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

  7. 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}, potom A*= {e, 0, 1, 00, 01, 10, 11, 000, 001, 010, …} A+= {0, 1, 00, 01, 10, 11, 000, 001, 010, …}

  8. 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, ….

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

  10. 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| xA  xB} L1L2 = {y| y L1  y L2} • A  B = {x| xA xB} L1L2 = {y| y L1 y L2} • A \ B = {x| xA xB} L1\L2 = {y| y L1 y  L2}

  11. 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}*. PotomL= L1•L2je 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.

  12. Formální jazyky • DEF: Nechť L je jazyk, potom n-tou moncninu jazyka definujeme takto: L0 = {e} Ln = LLn-1 pro n1 • Příklad: L = {ab, ba} Napište první čtyři mocniny jazyka L. Popište slovy n-tou mocninu jazyka L.

  13. 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+= LL*= L*L • Příklad: L = {ab} L+ = {ab, abab, ababab, abababab, ….} L* = {e, ab, abab, ababab, abababab, ….}

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

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

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

More Related