Bezkontextová gramatika je formálna gramatika, syntax alebo štruktúru formálneho jazyka možno opísať pomocou bezkontextovej gramatiky (CFG), typu formálnej gramatiky. Gramatika má štyri 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.>
Gramatika sa považuje za bezkontextovú gramatiku, ak je každá produkcia vo forme:
G ->(V∪T)*, kde G ∊ V>
- A ľavá strana G, tu v príklade môže byť len premenná, nemôže to byť terminál.
- Ale na pravej strane to môže byť premenná alebo terminál alebo obe kombinácie premennej a terminálu.
Vyššie uvedená rovnica uvádza, že každá produkcia, ktorá obsahuje akúkoľvek kombináciu premennej „V“ alebo „T“ terminálu, sa považuje za bezkontextovú gramatiku.
Napríklad gramatika A = { S, a,b, P,S} s produkciou:
- Tu S je štartovací symbol.
- {a,b} sú terminály vo všeobecnosti reprezentované malými znakmi.
- P je variabilné spolu so S.
S->ako S-> bSa>
ale
a->bSa alebo a->ba nie je CFG, pretože na ľavej strane je premenná, ktorá nespĺňa pravidlo CFGs.>
V oblasti informatiky sa často používajú bezkontextové gramatiky, najmä v oblastiach teórie formálneho jazyka, vývoja kompilátora a spracovania prirodzeného jazyka. Používa sa tiež na vysvetlenie syntaxe programovacích jazykov a iných formálnych jazykov.
Obmedzenia bezkontextovej gramatiky
Okrem všetkých použití a dôležitosti bezkontextovej gramatiky v dizajne kompilátorov a v oblasti informatiky existujú určité obmedzenia, ktoré sa riešia, to znamená, že CFG sú menej výrazné a ani angličtinu, ani programovací jazyk nemožno vyjadriť pomocou bez kontextu. Gramatika. Bezkontextová gramatika môže byť nejednoznačná, čo znamená, že môžeme vygenerovať viacero stromov analýzy rovnakého vstupu. Pre niektoré gramatiky môže byť bezkontextová gramatika menej efektívna z dôvodu exponenciálnej časovej zložitosti. A menej presné hlásenie chýb ako systém hlásenia chýb CFG nie je také presné, aby mohlo poskytnúť podrobnejšie chybové hlásenia a informácie.