Abeceda a jazyk

Abeceda

  • libovolná konečná množina
  • prvky nazýváme znaky abecedy

Příklad abecedy

  • množina
  • množina
  • množina

Slovo

  • Slovo nad abecedou je libovolná konečná posloupnost znaků této abecedy
  • Počet členů této posloupnosti značíme a nazýváme délkou slova
  • Počet výskytů znaku ve slově značíme
  • Prázdné posloupnosti znaků odpovídá tzv. prázdné slovo
    • značíme , které má nulovou délku
  • Množina všech slov nad abecedou značíme
  • Množinu všech neprázdných slov

Příklad

  • \
  • Definitoricky dále klademe a
  • Na každé dvě slova lze aplikovat binární operaci zřetězení, která je definována

Příklad zřetězení slov

  • zřetězením slov a obdržíme slovo
  • Operace zřetězení je asociativní

    • pro libovolná slova
  • Déle se chová jako jednotkový prvek

    • pro libovolné
  • Pro snazší specifikaci jazyků je výhodné zavést unární operaci -té mocniny slova, která je definovaná induktivně pro každé takto:

    • Nechť je libovolná abeceda, libovolní slovo. Pak

Příklad i-té mocniny slova

  • Pro slova platí:

    • , právě když a zároveň pro všechna
  • Slovo je podslovem slova , jestliže existují slova taková, že

    • Pokud navíc , říkáme že slovo je předponou (prefixem) slova
  • Je-li nazveme příponou (sufix) slova

Jazyk

  • Jazyk nad abecedou je libovolná množina slov nad (Jazyk nad je tedy právě podmnožina )

Příklady

  • je jazyk nad abecedou
  • prázdná množina je jazyk nad libovolnou abecedou
  • Jazyky mohou ovšem být i nekonečné

Příklad nekonečných jazyků

  • je jazyk nad abecedou obsahující všechna slova, ve kterých se i vyskytují ve stejném počtu

Operace nad jazyky

  • Nechť je libovolný jazyk nad abecedou a libovolný jazyk nad abecedou .
  • Jelikož i jsou množiny, můžeme aplikovat standarní množinové operace sjednocení, průnik a rozdíl. Výsledkem je vždy jazyk nad abecedou .
  • Dále definujeme:
    • Zřetězení jazyků a je jazyk nad abecedou .
      • Podle definice zejména platí a pro libovolný jazyk . Operace zřetězení jazyků je také zřejmě asociativní
    • -tá mocnina jazyka je definována induktivně pro každé :
      • Zejména tedy pro libovolné a pro libovolné
    • Iterace jazyka je jazyk
    • Pozitivní iterace jazyka je taky . Obecně není pravda, že
      • tato rovnost platí právě tehdy, když neobsahuje
    • Doplněk jazyka je jazyk co-L =
    • Zrcadlovým obrazem (též reverzí) slova nazýváme slovo . Zrcadlový obraz jazyka definujeme jako
    • Substituce je zobrazení abecedy do podmnožiny
      • tj. přiřazuje každému jazyk .
      • Zobrazení je rozšířeno na slova takto:
        • rozšíříme na jazyk tak, že pro každé klademe .
    • Speciálním případem substituce je homomorfismus , který definujeme jako substituci, u níž obsahuje jediné slovo pro každé .
    • Je-li homomorfismus, pak definujeme inverzní homomorfní obraz jazyka jako a pro slova definujeme inverzní homomorfismus jako .

Konečná reprezentace jazyka

  • Konečná reprezentace by měla být opět řetězcem symbolů (nad jistou abecedou), který budeme vhodně interpretovat tak, aby danému jazyku odpovídala nějaká, ne nutně jediná, konkrétní konečná reprezentace. Obráceně pak, aby každé konkrétní konečné reprezentaci odpovídal jediný konkrétní jazyk.
  • Takovými reprezentacemi pro nás budou zejména tzv. gramatiky a automaty

Gramatika

  • Gramatika je uspořádaná čtveřice , kde:

    1. je neprázdná konečná množina neterminálních symbolů
    2. je konečná množina terminálních symbolů
      • platí
      • Sjednocení a obdržíme množinu všech symbolů gramatiky, kterou obvykle označujeme symbolem
    3. je konečná množina pravidel ve tvaru .
      • Pravidlo obvykle zapisujeme ve tvaru
    4. je počáteční neterminál
  • Podmínka kladená na tvar pravidel pouze požaduje, aby (levá strana pravidla) obsahovala alespoň jeden neterminál, na (pravou stranu pravidla) nejsou obecně kladeny žádné požadavky - speciálně, může být i prázdným slovem

  • Relaci přímého obvození chápeme jako aplikaci konkrétního pravidla na řetězec , jehož výsledkem je řetězec , neboli: , kde a je právě aplikované pravidlo gramatiky

    • (pokud je gramatika zřejmá z kontextu, pak můžeme označení u šipky vynechat)
  • umožňuje při odvození aplikovat libovolný počet libovolných pravidel

  • Derivace = proces, kdy na řetězec aplikujeme konečný počet kroků odvození

  • značí nejlevější derivaci - přepisujeme vždy podle nejlevějšího neterminálu

    • analogicky je nejpravější derivace
  • Jazyk, který gramatika generuje, definujeme jako

    • (řetězce v jazyce už neobsahují neterminály)

Příklad

  • Nechť , kde
  • Pak např. je větná forma , zatímco nikoliv.
  • Jazyk vypadá takto:

Chromského hierarchie gramatik a jazyků

  • Lingvista Noam Chomsky rozdělil gramatiky do čtyř skupin (typů) na základě různých omezení na tvar pravidel
  • Jeho práce byla původně motivována úvahami o struktuře přirozeného jazyka, z dnešního pohledu má však především význam jako základní rozdělení gramatik podle jejich popisné síly.
  • Chomského hierarchie rozlišuje tyto čtyři (základní) typy gramatik:

Typ 0

  • Libovolná gramatika je gramatikou typu
  • Na tvar pravidel se nekladou žádné omezující požadavky
  • Někdy se též taková gramatiky označují jako gramatiky bez omezení či frázové gramatiky

Typ 1

  • Též kontextová gramatika, Context-Sensitive, CSG, méně často též monoténní
  • Gramatika je typu , jestliže pro každé její pravidlo platí s eventuelní výjimkou pravidla , pokud se nevyskytuje na pravé straně žádného pravidla

Typ 2

  • Též bezkontextová gramatika, Context-Free, CFG
  • Gramatika je typu , jestliže každé její pravidlo je tvaru , kde s eventuelní výjimkou pravidla , pokud se nevyskytuje na pravé straně žádného pravidla

Typ 3

  • Též regulární gramatika, pravolineární
  • Gramatika je typu , jestliže každé její pravidlo je tvaru nebo s eventuelní výjimkou pravidla , pokud se nevyskytuje na pravé straně žádného pravidla

  • Hierarchie gramatik také určuje příslušnou hierarchii jazyků
  • Z definice je patrné, že každý nový typ gramatiky v Chomského hierarchii je specifikován zavedením dalších omezujících podmínek na typ předchozí

Příklad

  • Každá regulární gramatika je také gramatikou bezkontextovou, kontextovou i typu
  • Naopak to ovšem neplatí

Tvrzení

  • Nak abecedou existuje jazyk, který není typu .
  • (Existuje nespočetně mnoho jazyků nad abecedou , tedy je nelze vyjádřit konečnou reprezentací)

Předchozí: Geometrická interpretace určitého integrálu Následující: Regulární jazyky (definice, uzávěrové vlastnosti) Celý okruh: 1. Teoretické základy informatiky