Formálny jazyk
(Formálny) jazyk je zovšeobecnenie pojmu jazyk z lingvistiky.
Formálne jazyky, ich vlastnosti a modely na ich opis študuje teória formálnych jazykov v informatike. Na jazyky sa môžeme pozerať ako na problémy. Formalizácia tohto pojmu prináša možnosť s ním exaktne pracovať a tým aj dokazovať vlastnosti problémov, ktoré reprezentujú, či sa vôbec dajú riešiť a aké sú náročné na riešenie.
Obsah |
Definícia [upraviť]
Jazyk nad abecedou
je ľubovoľná množina slov s konečnou dĺžkou nad touto konečnou abecedou.
Príklady [upraviť]
Majme abecedu
. Jazyky nad touto abecedou sú napr.:
,
,
,
,
,
.
Reprezentácia [upraviť]
Keďže formálne jazyky sú množiny, môžeme využiť všetky spôsoby reprezentácie množín, napr. vymenovanie prvkov pri konečných jazykoch alebo udanie logického predikátu nad množinou všetkých slov nad abecedou. V teórii formálnych jazykov boli vyvinuté dva veľmi silné modely, ktoré popisujú jazyky. Prvým je gramatika, ktorá svojimi pravidlami generuje slová z daného jazyka. Druhým modelom je automat. Na automat sa môžeme pozerať ako na čiernu skrinku, ktorá pre ľubovoľné slovo nad abecedou povie, či toto slovo patrí do daného jazyka alebo nie.
Klasifikácia jazykov [upraviť]
V teórii formálnych jazykov delíme jazyky podľa sily modelov, ktoré ich popisujú, t. j. gramatík alebo automatov. V roku 1956 americký informatik a lingvista Noam Chomsky popísal hierarchiu jazykov, ktorú dnes poznáme ako Chomského hierarchia.
Operácie nad jazykmi [upraviť]
Nech
sú jazyky nad abecedou
:
Nad jazykmi sú definované, prirodzene, množinové operácie
- zjednotenie jazykov
, - prienik jazykov
, - rozdiel jazykov
, - komplement jazyka
(pozri nižšie definíciu Kleeneho uzáveru - jazyka
).
Ďalej sa definujú nasledovné základné operácie:
- zreťazenie jazykov
, kde
je zreťazenie slov
a
, - mocnina jazyka je definovaná rekurzívne:
. Do
-tej mociny jazyka patria teda všetky slová, ktoré vznikli zreťazením
slov z jazyka
, - Kleeneho hviezdička (Kleeneho uváver, iterácia) jazyka
. Do Kleeneho uzáveru jazyka
patria teda všetky slová, ktoré dostaneme zreťazením ľubovoľného (aj nulového) počtu slov z jazyka
, - Kleeneho plus (Kleeneho kladný uzáver, kladná iterácia) jazyka
., - homomorfizmus: Nech je dané zobrazenie
medzi Kleeneho uzávermi abecied
a
také, že
. Zobrazenia s touto vlastnosťou voláme homomorfizmus. Obrazom jazyka
v homomorfizme
nazývame jazyk
.
| Formálne jazyky, automaty a gramatiky | |||
|---|---|---|---|
| Chomského hierarchia |
Gramatiky | Jazyky | Minimálny automat |
| Typ-0 | Frázová | Rekurzívne vyčísliteľný | Turingov stroj |
| Rekurzívny | Vždy zastavujúci Turingov stroj | ||
| Typ-1 | Kontextová | Kontextový | (Nedeterministický) lineárne ohraničený |
| Typ-2 | Bezkontextová | Bezkontextový | (Nedeterministický) zásobníkový |
| Typ-3 | Regulárna | Regulárny | Konečný |
| Každá množina jazykov alebo gramatík je vlastnou nadmnožinou množiny priamo pod ňou. | |||
,
,
,
,
,
.
,
,
,
(pozri nižšie definíciu Kleeneho uzáveru - jazyka
).
, kde
je
a
,
. Do
-tej mociny jazyka patria teda všetky slová, ktoré vznikli zreťazením
,
. Do Kleeneho uzáveru jazyka
.,
medzi Kleeneho uzávermi abecied
a
také, že
. Zobrazenia s touto vlastnosťou voláme
v homomorfizme
nazývame jazyk
.