logo

Mikä on kontekstiton kielioppi?

Kontekstivapaa kielioppi on muodollista kielioppia, jonka syntaksi tai rakenne voidaan kuvata käyttämällä yhteydetöntä kielioppia (CFG), eräänlaista muodollista kielioppia. Kielioppi sisältää neljä monikkoa: (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.>

Kieliopin sanotaan olevan kontekstiton kielioppi, jos jokainen tuotanto on muodossa:



G ->(V∪T)*, missä G ∊ V>
  • Ja G:n vasen puoli, tässä esimerkissä, voi olla vain muuttuja, se ei voi olla pääte.
  • Mutta tässä oikealla puolella se voi olla muuttuja tai pääte tai molemmat muuttujan ja päätteen yhdistelmä.

Yllä oleva yhtälö sanoo, että jokaisen tuotannon, joka sisältää minkä tahansa 'V'-muuttujan tai 'T'-päätteen yhdistelmän, sanotaan olevan yhteydetön kielioppi.

Esimerkiksi kielioppi A = { S, a,b, P,S}, jolla on tuotanto:

  • Tässä S on aloitussymboli.
  • {a,b} ovat päätteitä, joita yleensä edustavat pienet merkit.
  • P on muuttuva S:n kanssa.
S->aS S-> bSa>

mutta



Tietojenkäsittelytieteen alalla kontekstittomia kielioppeja käytetään usein, erityisesti muodollisen kieliteorian, kääntäjien kehittämisen ja luonnollisen kielen käsittelyn aloilla. Sitä käytetään myös ohjelmointikielten ja muiden muodollisten kielten syntaksin selittämiseen.

luokka vs objekti java

Kontekstittoman kieliopin rajoitukset

Lukuun ottamatta kaikkia kontekstittoman kieliopin käyttötarkoituksia ja tärkeyttä kääntäjän suunnittelussa ja tietojenkäsittelytieteen alalla, on olemassa joitakin rajoituksia, joihin on puututtu, toisin sanoen CFG:t ovat vähemmän ilmeisiä, eikä englantia tai ohjelmointikieltä voida ilmaista kontekstivapaalla. Kielioppi. Kontekstiton kielioppi voi olla moniselitteinen, mikä tarkoittaa, että voimme luoda useita saman syötteen jäsennyspuita. Joidenkin kielioppien kohdalla kontekstiton kielioppi voi olla vähemmän tehokas eksponentiaalisen aikamonimutkaisuuden vuoksi. Ja vähemmän tarkka virheraportointi kuin CFG:n virheilmoitusjärjestelmä ei ole niin tarkka, että se voisi antaa yksityiskohtaisempia virheilmoituksia ja tietoja.