logo

Kas yra bekontekstinė gramatika?

Kontekstinė laisvoji gramatika yra formali gramatika, kurios sintaksę arba struktūrą galima apibūdinti naudojant be konteksto gramatiką (CFG), formaliosios gramatikos tipą. Gramatika turi keturias eilutes: (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.>

Sakoma, kad gramatika yra gramatika be konteksto, jei kiekviena produkcija yra tokia:



G ->(V∪T)*, kur G ∊ V>
  • Ir kairėje G pusėje, čia pavyzdyje gali būti tik kintamasis, tai negali būti terminalas.
  • Bet dešinėje pusėje tai gali būti kintamasis arba terminalas arba kintamojo ir terminalo derinys.

Aukščiau pateikta lygtis teigia, kad kiekviena produkcija, kurioje yra bet koks „V“ kintamojo arba „T“ terminalo derinys, yra laikoma gramatika be konteksto.

Pavyzdžiui, gramatika A = { S, a,b, P,S}, turinti produkciją:

  • Čia S yra pradžios simbolis.
  • {a,b} yra terminalai, paprastai vaizduojami mažais simboliais.
  • P yra kintamas kartu su S.
S->aS S-> bSa>

bet



Informatikos srityje dažnai naudojamos bekontekstinės gramatikos, ypač formaliosios kalbos teorijos, kompiliatorių kūrimo ir natūralios kalbos apdorojimo srityse. Jis taip pat naudojamas paaiškinti programavimo kalbų ir kitų formalių kalbų sintaksę.

Gramatikos be konteksto apribojimai

Be visų bekontekstinės gramatikos naudojimo būdų ir svarbos kompiliatoriaus kūrime ir informatikos srityje, yra keletas apribojimų, į kuriuos reikia atsižvelgti, ty CFG yra mažiau išraiškingi ir nei anglų, nei programavimo kalbos negalima išreikšti naudojant be konteksto. Gramatika. Gramatika be konteksto gali būti dviprasmiška, tai reiškia, kad galime sugeneruoti kelis tos pačios įvesties analizavimo medžius. Kai kurioms gramatikoms be konteksto gramatika gali būti mažiau efektyvi dėl eksponentinio laiko sudėtingumo. Ir ne toks tikslus klaidų ataskaitų teikimas kaip CFG klaidų ataskaitų sistema nėra tokia tiksli, kad galėtų pateikti išsamesnius klaidų pranešimus ir informaciją.