logo

Co je bezkontextová gramatika?

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.