Ero säännöllisen lausekkeen ja asiayhteydettömän kieliopin välillä

Sisällysluettelo:

Anonim

The tärkein ero säännöllisen lausekkeen ja kontekstivapaan kieliopin välillä on, että säännölliset lausekkeet auttavat kuvaamaan kaikkia tavallisen kielen merkkijonoja, kun taas kontekstivapaa kielioppi auttaa määrittelemään kaikki kontekstivapaan kielen kaikki mahdolliset merkkijonot.

Kielioppi tarkoittaa syntaktisia sääntöjä keskustelulle luonnollisilla kielillä. Tietotekniikka käyttää muodollisten kielten teoriaa suurelta osin. Vuonna 1956 Noam Chomsky antoi matemaattisen mallin kieliopista tietokoneiden kielten kirjoittamista varten. Kun on mahdollista johtaa joukko kaikkia merkkijonoja kieliopista, sanotaan, että kieli syntyy tästä kieliopista. Kaksi kielioppia ovat säännöllinen kielioppi ja kontekstiton kielioppi. Mikä tahansa kieli, jota voidaan kuvata säännöllisellä lausekkeella, on tavallinen kieli. Kontekstiton kielioppi on säännöllisen lausekkeen yleistys. On mahdollista käyttää säännöllisiä lausekkeita säännöllisten kielten kirjoittamiseen ja kontekstivapaa kielioppi kontekstivapaan kieliopin kirjoittamiseen.

Säännöllinen lauseke, kontekstiton kielioppi

Mikä on säännöllinen lauseke

Säännöllinen kielioppi tuottaa säännöllisiä kieliä. Tällä kieliopilla on yksi ei-pääte vasemmalla puolella ja oikea puoli, joka koostuu yhdestä terminaalista tai yhdestä terminaalista ja jota seuraa yksi ei-pääte. Sillä voi olla tuotantosääntö seuraavasti.

X -> a tai X -> a Y

Missä X, Y ϵ N (ei-pääte) ja ϵ T (pääte)

Säännölliset lausekkeet auttavat kirjoittamaan säännöllistä kielioppia kuvaamaan tavallisia kieliä.

Säännöllinen lauseke edustaa tiettyä merkkijonoa algebrallisella tavalla. Seuraavassa on joitain tärkeitä sääntöjä, joita on noudatettava säännöllisen lausekkeen kirjoittamisessa.

  1. Pääte-, tyhjä- ja tyhjä symboli ovat säännöllisiä lausekkeita.
  2. Kahden säännöllisen lausekkeen liitto on säännöllinen lauseke.
  3. Kahden säännöllisen lausekkeen yhdistäminen on säännöllinen lauseke.
  4. Iteraatio tai sulkeminen on säännöllinen lauseke.

Joukon {0, 1, 2} säännöllinen lauseke on seuraava.

R = 0 + 1 + 2

Joukko {abb, a, b, bba} voidaan esittää seuraavalla säännöllisellä lausekkeella.

R = abb + a + b + bba

Harkitse joukkoa, {ϵ, 0, 00, 000,…}

Ε on tyhjä merkkijono. Säännöllinen lauseke on R = 0*. Tämä edustaa symbolin sulkemista, mukaan lukien tyhjä symboli.

Sarjassa {1, 11, 111, 1111,…..}

Säännöllinen lauseke on R = 1 +. Tämä + tarkoittaa symbolin sulkemista tyhjää symbolia lukuun ottamatta.

Mikä on kontekstivapaa kielioppi

Muodollisessa kieliteoriassa Context Free Language (CFL) on Context Free Grammarin luoma kieli. Neljä parametria määrittävät asiayhteydettömän kieliopin (G).

G = {V, ∑, S, P}

V: Muuttuvien tai ei -terminaalisten symbolien sarja.

∑: Liittimen symbolien sarja

S: Aloitussymboli

P: Tuotantosääntö

Kontekstivapaalla kieliopilla on seuraava tuotantosäännön muoto.

A -> a jossa a = {V, ∑}* ja A ϵ V

Yksi esimerkki kontekstivapaasta kieliopista on seuraava. Jokainen tuotanto koostuu terminaalittomasta symbolista ja säännöllisestä lausekkeesta.

Kielen luominen, joka tuottaa yhtä monta a: ta ja b: tä, on muodossa a b . Kontekstivapaa kielioppi on seuraava.

G = {(S, A), (a, b), (S -> aAb, A -> aAb | ϵ)}

Ottaen huomioon aloitussymbolin,

S -> a A b

Soveltamalla A -> aAb

→ a a A b b

Käyttämällä uudelleen A -> aAb,

→ a a a A b b b

Käyttämällä A -> ϵ (Tämä symboli tarkoittaa tyhjää merkkijonoa)

→ a a a b b b

→ a 3 b 3

Tuotosta tarkasteltaessa a: n lukumäärä on yhtä suuri kuin b: n lukumäärä. Siinä on a b muodossa.

Säännöllisen lausekkeen ja asiayhteydettömän kieliopin suhde

Ero säännöllisen lausekkeen ja asiayhteydettömän kieliopin välillä

Määritelmä

Säännöllinen lauseke on muodollisen kieliteorian käsite, joka on merkkijono, joka määrittelee hakumallin. Kontekstivapaa kielioppi on muodollinen kielioppi muodollisessa kieliteoriassa, joka on joukko tuotantosääntöjä, jotka kuvaavat kaikkia mahdollisia merkkijonoja tietyllä virallisella kielellä.

Käyttö

Säännölliset lausekkeet auttavat edustamaan tiettyjä merkkijonoja algebrallisella tavalla. Se auttaa edustamaan tavallisia kieliä. Kontekstiton kielioppi auttaa määrittelemään kaikki kontekstittoman kielen mahdolliset merkkijonot.

Johtopäätös

Säännöllinen lauseke on menetelmä kuvioiden sovittamiseksi. Se on joustava tapa tarjota joustava ja ytimekäs keino tekstin merkkijonojen vastaamiseksi. Se määrittelee kaikki merkkijonot tavallisella kielellä. Toisaalta kontekstivapaa kielioppi mahdollistaa kaikkien kontekstivapaaseen kieleen kuuluvien merkkijonojen määrittelyn. Ero säännöllisen lausekkeen ja asiayhteydettömän kieliopin välillä on se, että säännölliset lausekkeet auttavat kuvaamaan kaikki tavallisen kielen merkkijonot, kun taas kontekstivapaa kielioppi auttaa määrittelemään kaikki kontekstivapaan kielen kaikki mahdolliset merkkijonot.

Viite:

1. "Säännölliset lausekkeet". Www.tutorialspoint.com, Tutorials Point, 8. tammikuuta 2018, saatavana täältä. "Johdatus kontekstiton kielioppi." Www.tutorialspoint.com, Tutorials Point, 8. tammikuuta 2018, saatavana täältä.

Kuva:

1. ”Toolbaricon RegEx” M0tty-Oma työ (CC BY-SA 4.0) Commons Wikimedian kautta

Ero säännöllisen lausekkeen ja asiayhteydettömän kieliopin välillä