(definice, vlastnosti, způsoby jejich reprezentace, konstrukce bezkontextové gramatiky a zásobníkového automatu, normální formy bezkontextových gramatik, použití lematu o vkládání pro bezkontextové jazyky, uzávěrové vlastnosti bezkontextových jazyků)
Jazyk je bezkontextový, pokud existuje bezkontextová gramatika taková, že .1) Bezkontextová gramatika (CFG) je čtveřice , kde:
Současně třída jazyků rozpoznávaných zásobníkovými automaty je právě třída bezkontextových jazyků. Tj. jazyk je bezkontextový, pokud je akceptován nějakým zásobníkovým automatem (existuje zásobníkový automat , takový, že ).
Definici zásobníkového automatu je možné nalézt v otázce AP11,IN11 Zásobníkové automaty
Bezkontextové jazyky lze reprezentovat:
Neformálně řečeno, rozšířený zásobníkový automat „vidí“ hlouběji do zásobníku – tj. čte 0–n vrchních symbolů.
Konstrukce zásobníkových automatů jsou popsány v otázce AP11,IN11 Zásobníkové automaty.
Každou bezkontextovou gramatiku, která reprezentuje neprázdný bezkontextový jazyk, lze dále upravit do tzv. kanonických tvarů - lépe se s nimi pracuje, jsou přehlednější, vyžadují je některé algoritmy atd. Kanonické tvary bezkontextových gramatik jsou následující:
Definice 3.7
Nepoužitelnost typu I.: Neexistuje terminální řetěz takový, že .
Nepoužitelnost typu II.: Neexistují řetězy takové, že .
Definice 3.13
Jednoduchým pravidlem nazýváme každé pravidlo tvaru , kde .
Definice 3.17 a Věta 3.18
Definice 3.28
Definice 3.19
Každý bezkontextový jazyk lze generovat bezkontextovou gramatikou v Chomského normální formě. Algoritmus transformace do CNF lze nalézt ve skriptech Automaty a gramatiky, strana 67. Ve zkratce algoritmus funguje tak, že pravé strany délky větší než 2 nahradí novými neterminály, a tak se tato pravá strana zkrátí. Například pravidlo X → ABC se změní na pravidla X → A<BC>, <BC> → BC (<BC> je nový neterminál). Pro pravé strany délky 2, které se skládají z terminálu a neterminálu nahradí terminál novým neterminálem. Např. X → aC se změní na X → <a>C, <a> → a.
Definice 3.33
Každý bezkontextový jazyk lze generovat bezkontextovou gramatikou v Greibachové normální formě. Velmi zhruba naznačený postup je následující: Pokud je prázdný, pak jej definujeme jako jediné pravidlo (). Pokud je neprázdný, odstraníme levou rekurzi a převedeme do GNF. Algoritmus transformace do GNF lze nalézt ve skriptech Automaty a gramatiky, strana 73,74.
Věta 3.24
Pokud by to někdo chtěl čistě matematicky pro „lehčí“ zapamatování:
Lemma o vkládání je vlastně ve tvaru implikace. Její kontrapositivní formu lze použít k důkazu, že nějaký jazyk není CFL. Stačí ukázat platnost následujícího tvrzení:
Pro libovolnou konstantu existuje slovo , takové, že pro všechna slova , , , , splňující: , a existuje takové , že .
Příklad
Pro libovolnou konstantu existuje slovo : Zvolíme slovo jako libovolné, pro důkaz vhodné, slovo z jazyka - . Dále pro každé libovolné rozdělení slova splňující následující podmínky: musí existovat takové, že .
Nyní musíme takové nalézt. Položme tedy a ověříme, že rozebráním jednotlivých případů:
Třída bezkontextových jazyků je uzavřena vzhledem k operacím:
Třída bezkontextových jazyků není uzavřena vzhledem k operacím:
Pro následující případy uvažujme:
je generován CFG , je generován CFG a bez újmy na obecnosti budeme předpokládat .
Definujme , kde je nový symbol a
Jazyk je generován gramatikou .
Definujme , kde je nový symbol a
Jazyk je generován gramatikou .
Definujme , kde je nový symbol a
Jazyk je generován gramatikou .
Definujme , kde je nový symbol a
Jazyk je generován gramatikou .
Kdyby byla třída bezkontextových jazyků uzavřena vzhledem k operaci průnik, pak i by musel být bezkontextový, což však není.
Neuzavřenost vůči doplňku plyne z uzavřenosti třídy bezkontextových jazyků vzhledem k operaci sjednocení, neuzavřenosti na průnik a De Morganových pravidel:
Pro třídu bezkontextových jazyků jsou rozhodnutelné následující vlastnosti:
Lingvista Noam Chomsky rozdělil gramatiky do čtyř skupin (typů) na základě různých omezení na tvar pravidel a podle jejich popisné síly.
Chomského hierarchie rozlišuje tyto čtyři (základní) typy gramatik - viz Regulární jazyky - poznámka
FI:IB005 Formální jazyky a automaty I prof. RNDr. Mojmír Křetínský, CSc.
FI:IB102 Automaty a gramatiky RNDr. Jan Strejček, Ph.D.
Honza Palas, hotovo
Je potřeba ještě zapracovat poznámky od Jitky Pospíšilové.