Context Free Grammar je formální gramatika, syntaxi nebo strukturu formálního jazyka lze popsat pomocí bezkontextové gramatiky (CFG), což je typ formální gramatiky. Gramatika má čtyři n-tice: (V,T,P,S).
V - It is the collection of variables or nonterminal symbols. T - It is a set of terminals. P - It is the production rules that consist of both terminals and nonterminals. S - It is the Starting symbol.>
O gramatice se říká, že je to bezkontextová gramatika, pokud je každá produkce ve tvaru:
G ->(V∪T)*, kde G ∊ V>
- A levá strana G, zde v příkladu může být pouze proměnná, nemůže to být terminál.
- Ale na pravé straně to může být proměnná nebo terminál nebo obě kombinace proměnné a terminálu.
Výše uvedená rovnice říká, že každá produkce, která obsahuje jakoukoli kombinaci proměnné ‚V‘ nebo terminálu ‚T‘, je považována za bezkontextovou gramatiku.
Například gramatika A = { S, a,b, P,S} mající produkci:
- Zde S je počáteční symbol.
- {a,b} jsou terminály obecně reprezentované malými znaky.
- P je variabilní spolu s S.
S->aS S-> bSa>
ale
a->bSa nebo a->ba není CFG, protože na levé straně je proměnná, která se neřídí pravidlem CFGs.>
V oblasti informatiky se bezkontextové gramatiky často používají, zejména v oblastech teorie formálních jazyků, vývoje kompilátorů a zpracování přirozeného jazyka. Používá se také pro vysvětlení syntaxe programovacích jazyků a dalších formálních jazyků.
Omezení bezkontextové gramatiky
Kromě všech použití a důležitosti bezkontextové gramatiky v designu kompilátorů a v oblasti informatiky existují určitá omezení, která jsou řešena, to znamená, že CFG jsou méně expresivní a ani angličtinu ani programovací jazyk nelze vyjádřit pomocí Context-Free. Gramatika. Bezkontextová gramatika může být nejednoznačná, což znamená, že můžeme generovat více stromů analýzy stejného vstupu. Pro některé gramatiky může být bezkontextová gramatika méně efektivní kvůli exponenciální časové složitosti. A méně přesné hlášení chyb jako systém hlášení chyb CFG není tak přesné, aby mohlo poskytnout podrobnější chybová hlášení a informace.