Kontekstiton kielioppi ( CS-grammar , kontekstiton kielioppi ) on formaalisen kieliopin ( Chomsky-hierarkian tyyppi 2 ) erikoistapaus, jossa kaikkien tuotantojen vasemmat osat ovat yksittäisiä ei -päätteitä (objekteja, jotka ilmaisevat mitä tahansa olemusta kieli (esimerkiksi: kaava, aritmeettinen lauseke, komento) ja jolla ei ole erityistä symbolista merkitystä). Käsitteen "kontekstiton" merkitys on, että tuotantoa voidaan soveltaa ei-päätteeseen, ja lisäksi riippumatta tämän ei-terminaalin kontekstista (toisin kuin yleisesti, rajoittamaton Chomsky-kielioppi).
Kieltä , joka voidaan määrittää CFG:llä, kutsutaan kontekstivapaaksi kieleksi tai CFL:ksi.
Itse asiassa KS-kielioppi on toinen BNF :n muoto .
COP-kieliopilla on paljon käyttöä tietojenkäsittelytieteessä . Ne asettavat useimpien ohjelmointikielten kieliopin rakenteen , strukturoidun datan jne. (katso kielioppianalyysi )
COP-kieliopin jäsentämiseen riittää push-down- automaatti , ei-COP-kieliopin jäsentämiseen voidaan tarvita Turingin täydellinen kone .
CF-kielillä on kaksi erilaista tunnistusluokkaa (tunnistusautomaatit). Niiden nimet liittyvät järjestykseen, jossa tulospuu rakennetaan. Pääsääntöisesti kaikki tunnistimet lukevat syötetyn merkkijonon vasemmalta oikealle, koska tällaista merkintää odotetaan ohjelmien lähdekoodia kirjoitettaessa.
Ylhäältä alas -selvittimet, jotka luovat vasemmanpuoleisia tulosketjuja ja rakentavat tulospuun ylhäältä alas.
He käyttävät algoritmin muunnelmia vaihtoehtojen valinnassa. Niitä luotaessa käytetään menetelmää, jolla voit valita yksilöllisesti yhden ja vain yhden vaihtoehdon jokaisessa MP-automaatin vaiheessa (poistovaihe tässä automaatissa suoritetaan aina yksilöllisesti).
Alhaalta ylös -selvittimet, jotka luovat oikeakätisten tulosteiden ketjuja ja rakentavat tulospuun alhaalta ylös.
Ylävirran tunnistimet käyttävät muunnoksia shift-fold (tai shift-fold, joka on sama) algoritmiin. Niitä luotaessa käytetään menetelmiä, joiden avulla voit yksiselitteisesti valita, suoritetaanko "siirto" ("siirto") tai "konvoluutio" jokaisessa laajennetun MP-automaatin vaiheessa, ja kun konvoluutio suoritetaan, voit yksiselitteisesti valita säännön. jolla konvoluutio suoritetaan. Algoritmi "siirto-konvoluutio".
Esimerkkejä SF-kieliopista ja niitä vastaavista SF-kielistä:
Annettu kaavalla
Tämä kielioppi määrittää sisäkkäisten hakasulkeiden kielen .
Tämä kielioppi määrittelee aritmeettisen lausekkeen, joka sisältää yksinkertaisimmat aritmeettiset operaatiot muuttujalle x. Jos korvaamme terminaalin 'x' ei-päätteellä <numero>, saadaan kielioppi, joka määrittää aritmeettisen lausekkeen, joka koostuu kokonaislukujen yhteen-, vähennys-, kerto- ja jakolaskuoperaatioista.
Kaikkia kieliä ei voida määritellä CF-kieliopin avulla. Helpoin tapa todistaa tämä on seuraava: COP-kieliopit muodostavat laskettavan joukon, kun taas kaikkien kielten joukon kardinaalisuus on jatkumo . Rakentava todiste samasta tosiasiasta voidaan saada esimerkiksi sillä perusteella, että kieli { a n b n c n | n ≥1} ei ole kontekstivapaa; Kuitenkaan jälkimmäiselle väitteelle ei näytä olevan lyhyttä todistetta: julkaistut todistukset perustuvat yhteydettömien kielten kasvulauseeseen.
Puunlisäyskielioppi yleistää yhteydettömän kieliopin siten, että päättelysääntöjen perusyksikkö on puut, ei yksittäiset merkit.
Muodolliset kielet ja viralliset kieliopit | |
---|---|
Yleiset käsitteet | |
Tyyppi 0 | |
Tyyppi 1 |
|
Tyyppi 2 | |
Tyyppi 3 |
|
jäsentäminen |