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
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.