logo

Kaj je slovnica brez konteksta?

Slovnica brez konteksta je formalna slovnica, sintakso ali strukturo formalnega jezika je mogoče opisati z uporabo brezkontekstne slovnice (CFG), vrste formalne slovnice. Slovnica ima štiri tuple: (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.>

Za slovnico pravimo, da je slovnica brez konteksta, če je vsaka produkcija v obliki:



G ->(V∪T)*, kjer je G ∊ V>
  • In leva stran G, tukaj v primeru je lahko samo spremenljivka, ne more biti terminal.
  • Toda tukaj na desni strani je lahko spremenljivka ali terminal ali kombinacija obeh spremenljivk in terminala.

Zgornja enačba pravi, da je vsaka produkcija, ki vsebuje katero koli kombinacijo spremenljivke 'V' ali terminala 'T', slovnica brez konteksta.

testni primeri junit

Na primer slovnica A = { S, a,b, P,S} ima proizvodnjo:

  • Tukaj je S začetni simbol.
  • {a,b} so terminali, ki jih običajno predstavljajo majhni znaki.
  • P je spremenljivka skupaj s S.
S->aS S-> bSa>

ampak



a->bSa ali a->ba ni CFG, saj je na levi strani spremenljivka, ki ne sledi pravilu CFG.>

Na področju računalništva se pogosto uporabljajo kontekstno proste slovnice, zlasti na področjih teorije formalnega jezika, razvoja prevajalnika in obdelave naravnega jezika. Uporablja se tudi za razlago sintakse programskih jezikov in drugih formalnih jezikov.

Omejitve slovnice brez konteksta

Poleg vseh uporab in pomena brezkontekstne slovnice pri oblikovanju prevajalnika in na področju računalništva obstajajo nekatere omejitve, ki jih obravnavamo, to je, da so CFG-ji manj izrazni in niti angleščine niti programskega jezika ni mogoče izraziti z uporabo kontekstno-proste Slovnica. Slovnica brez konteksta je lahko dvoumna, kar pomeni, da lahko ustvarimo več dreves za razčlenjevanje istega vnosa. Za nekatere slovnice je lahko slovnica brez konteksta manj učinkovita zaradi eksponentne časovne kompleksnosti. In manj natančno poročanje o napakah kot sistem za poročanje o napakah CFG ni tako natančen, da bi lahko dal podrobnejša sporočila o napakah in informacije.