====== Zadání ======
Jazyky: Deterministické bezkontextové jazyky (DCFL). LL(k) a LR(k) gramatiky a jazyky, jejich vlastnosti. Vztahy mezi DCFL, LL a LR.
====== Vypracování ======
===== Deterministické bezkontextové jazyky =====
Deterministické bezkontextové jazyky (DCFL) jsou jazyky, ktoré jsou rozpoznávány deterministickými zásobníkovými automaty. DCFL mají striktně menší vyjadřovací sílu než nedeterministické CFL. DCFL je možné definovat pomocí deterministického zásobníkového automatu (DPDA) nebo deterministické bezkontextové gramatiky (DCFG).
Bezkontextová gramatika je frázová gramatika, která má pravidla tvaru , kde je libovolný neterminál a je libovolná větná forma.
Pro DCFL neexistuje pumping lemma nebo jiná speciální pomůcka. Je nutno se spolehnout na uzávěrové vlastnosti:
* uzavřenost na průnik s regulárním jazykem
* DCFL nejsou uzavřeny na průnik
* DCFL jsou uzavřeny na doplněk
* DCFL nejsou uzavřeny na sjednocení
===== LL(k) =====
Nechť je CFG, . Definujeme nasledovné funkce:
\\
\\
A dále pro :\\
pro \\
pro
Nechť je gramatika, celé číslo. je gramatika, právě když pro každé dvě nejlevější derivace ()
\\
podmínka implikuje .
==== Vlastnosti ====
* Každá gramatika je jednoznačná
* Je li levorekurzivní, není pro žádné
* je pokud platí: Jsou li a dvě různá pravidla v , pak pro všechny nejlevější větné formy platí:
===== LR(k) =====
Pro gramatiku definujeme přidruženou gramatiku . Přidružená gramatika umožňuje rozeznat konec vstupu.
Gramatika je pro , pokud pro všechny pravé větné formy z podmínek:
*
*
* , resp.
vyplývá, že .
Položka gramatiky je výraz typu , kde je pravidlo gramatiky . Speciálně je položkou, pokud . Pro každé nazýváme úplnou položkou.
Položka je platnou položkou pro řetěz , jestliže existuje pravá větná forma () taková, že . Množinu všech platných položek pro řetěz budeme označovat .
Speciálně pro platí, že:
* počáteční symbol se nevyskytuje na pravé straně žádného pravidla
* pro libovolný řetěz se v množině vyskytuje nejvýše jedna úplná položka
* jestliže se v vyskytuje úplná položka, potom už v není obsažena žádná položka, v níž je bezprostředně vpravo od tečky terminální symbol
LR(k) gramatik>
Gramatika je , pokud existuje deterministický zásobníkový automat, který ji rozeznává (parser). parser pracuje, narozdíl od parserů, s nejpravější derivací. Parser parsuje zespodu, narozdíl od parserů, které parsují zeshora. Při parsingu se parser může rozhodovat podle dalších znaků na vstupu a dle toho parsovat už načtené znaky.
===== Vztahy mezi DCFL, LL a LR =====
Platí: .
nemůže obsahovat rekurzi, nezvládá všechny CFG kvůli omezení .
====== Předměty ======
[[https://is.muni.cz/auth/predmety/predmet.pl?id=585030|FI:IA006]] Vybrané kapitoly z teorie automatů (podzim 2010), prof. RNDr. Mojmír Křetínský, CSc.
[[https://is.muni.cz/auth/predmety/predmet.pl?id=363716|FI:IB005]] Formální jazyky a automaty I (jaro 2007), prof. RNDr. Mojmír Křetínský, CSc.
====== Použitá literatura ======
-
====== Vypracoval ======
DevelX - Martin Jurča
stav - 95 %