Formální jazyk

Formální jazyk je v matematice, logice a informatice libovolná množina konečných řetězců (tj. řetězců konečné délky) nad určitou abecedou. Místo výrazu „řetězec“ se často používá výraz „slovo“ (zejména při lexikální analýze) nebo „věta“ (zejména při syntaktické analýze a analýze vět přirozeného jazyka). Přesná definice pojmu formální jazyk se může lišit podle toho, v jakém kontextu a v jakém vědním oboru jej používáme.

Příkladem abecedy může být { a , b } {\displaystyle \left\{a,b\right\}} , řetězcem nad touto abecedou je například a b a b b a {\displaystyle ababba} . Příkladem jazyka může být množina všech řetězců nad touto abecedou, které obsahují stejný počet symbolů a {\displaystyle a} jako b {\displaystyle b} .

Přestože abeceda je konečná množina a řetězce mají konečnou délku, jazyk konečný být nemusí, jelikož délka (stále konečných) řetězců nemusí být shora omezena.

Značení

Prázdný řetězec (tj. řetězec, který se skládá z nulového počtu znaků) se značí e {\displaystyle e} , ϵ {\displaystyle \epsilon } (epsilon) nebo λ.

Pokud označíme abecedu symbolem Σ {\displaystyle \Sigma } , pak zápis Σ {\displaystyle \Sigma ^{*}} označuje množinu všech řetězců nad touto abecedou, včetně prázdného řetězce. Jazyk L {\displaystyle L} nad danou abecedou Σ {\displaystyle \Sigma } je pak nějaká podmnožina Σ {\displaystyle \Sigma ^{*}} . Hvězdičkou zapisovaná na místě horního indexu je operátor nazývaný Kleeneho hvězdička, který označuje zřetězení libovolného konečného počtu (včetně 0) prvků z množiny, na níž je aplikován.

Příklady formálních jazyků

Příklady formálních jazyků:

  • množina všech řetězců nad abecedou a , b {\displaystyle {a,b}}
  • množina { a n } {\displaystyle \left\{a^{n}\right\}} , n je přirozené číslo a a n {\displaystyle a^{n}} znamená, že a {\displaystyle a} se vyskytuje n {\displaystyle n} -krát za sebou.
  • konečné jazyky jako například a,aa,bba
  • množina všech programů v daném programovacím jazyce
  • množina všech řetězců, nad kterými daný Turingův stroj zastaví.

Formální jazyk může být definován různými způsoby, například:

Odkazy

Literatura

  • CHYTIL, Michal. Gramatiky a automaty. Praha: SNTL, 1983. 
  • MOLNÁR, Ľudovít; ČEŠKA, Milan; MELICHAR, Bořivoj. Gramatiky a jazyky. 3. vyd. Bratislava: Alfa, 1987. 
  • ČERNÁ, Ivana; KŘETÍNSKÝ, Mojmír; KUČERA, Antonín. Automaty a formální jazyky I. Brno: FI MUNI, 2014. Dostupné online. 

Související články

Externí odkazy

Teorie automatů: formální jazyky a formální gramatiky

Chomského hierarchie
typ 0
typ 1
typ 2
typ 3

gramatika
bez zvláštního názvu
indexovaná
stromová apod.
bez zvláštního názvu

jazyk
indexovaný
částečně kontextový
viditelný zásobník, vkládané slovo
bezhvězdičkový, neiterativní

nejjednodušší možný automat
rozhodovač, zaručeně skončí pro libovolný vstup
vnořený zásobník
vložený zásobník
zásobníkový automat, nedeterministický
viditelný zásobník, pro vkládané slovo
neperiodický konečný automat
Každá úroveň jazyků je podmnožinou své nadřazené úrovně.Každý automat a každá gramatika má svůj ekvivalent v nadřazené úrovni.
Autoritní data Editovat na Wikidatech
  • NKC: ph208851
  • BNF: cb11967270h (data)
  • GND: 4017848-1
  • LCCN: sh85050802
  • NDL: 00576869
  • NLI: 987007545721205171
  • SNK: 179914