Razlika med razvrstitvijo od zgoraj navzdol in od spodaj navzgor

The ključna razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor je od zgoraj navzdol razčlenjenje izvede razčlenjevanje od strmečega simbola do vhodnega niza, razčlenitev od spodaj navzdol pa razčlenjevanje od vhodnega niza do začetnega simbola. Poleg tega je pomembna razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor ta, da razčlenjevanje od zgoraj navzdol uporablja večino izpeljave levo, razčlenjevanje od spodaj navzdol pa večino desno.

Jeziki na visoki ravni pomagajo pri pisanju računalniških programov. Programer jih lažje razume, ne pa računalnik. Zato se program na visoki ravni pretvori v strojno kodo. Naloga prevajalnika je pretvoriti človeško berljivo izvorno kodo v strojno berljivo strojno kodo. Program se skozi več korakov pretvori v strojno kodo. Ta celoten postopek se imenuje sistem za obdelavo jezikov. Ena izmed njih je kompilacija. Analizator sintakse ali razčlenjevalec je v prevajalniku in opravi nalogo razčlenjevanja.

VSEBINA

1. Pregled in ključne razlike
2. Kaj je "Top Down Parsing"
3. Kaj je razčlenitev od spodaj
4. Primerjava drug ob drugem - razčlenitev od vrha navzdol proti dnu navzgor v tabeli
5. Povzetek

Kaj je Top Down Parsing?

Vsak programski jezik ima nabor pravil za predstavljanje jezika. Analizator sintakse ali razčlenitev prevzame vhodni niz in preveri, ali je skladen s slovničnimi produkcijami. Z drugimi besedami, slovnica naj ustvari ta niz s pomočjo razčlenjenega drevesa.

Pri razčlenjevanju od zgoraj navzdol se razčlenjevanje zgodi od začetnega simbola in doseže dani vhodni niz. Upoštevajte naslednja pravila izdelave slovnic. Vhodni niz (w) je cad.

S -> cAd

A -> ab / a

Drevo razčlenjevanja po izvedbi razčlenjevanja od zgoraj navzdol je naslednje.

Slika 01: Razčleni drevo 1 z razčlenjevanjem navzdol

S proizvajajo c A d in A proizvajajo b. Vrvica je kabina. To ni zahtevani niz. Torej, treba je narediti nazaj, kar pomeni, da uporabite druge alternative.

Podobno S proizvajajo c A d. Če uporabite drugo možnost za A, boste dobili Zdaj daje zahtevani niz. Zato razčlenjevalec sprejme ta vhodni niz. Drevo razčlenjevanja po izvedbi razčlenjevanja od zgoraj navzdol je naslednje.

Slika 02: Razčleni drevo 2 z razčlenjevanjem navzdol

Ko je vhodni niz (w) abbcde

Upoštevajte naslednja pravila izdelave slovnic.

S -> aABe

A -> Abc / b

B -> d

Razčlenjevanje od zgoraj navzdol,

S -> aABe (Namestitev A -> Abc)

S -> aAbcBe (nadomestitev A -> b)

S -> abbcBe (Namestitev B -> d)

S -> abbcde

Namestitev se začne najprej z najbolj spremenljivo levo in nato na naslednji desni položaj in tako naprej. Zato sledi najbolj levi metodi izpeljave. Poleg tega se je pomembno odločiti, katero proizvodno pravilo izbrati, če obstaja spremenljivka.

Kaj je spodnji del razčlenitve?

Razčlenjevanje od spodaj navzgor se zgodi na drugi način. Razčlenitev se zgodi od vhodnega niza do začetnega simbola. Upoštevajte naslednja pravila izdelave slovnic in naj bo vhodni niz w-cad

S -> cAd

A -> ab / a

Drevo razčlenjevanja po izvedbi razčlenitve od spodaj navzgor je naslednje.

Slika 03: Razčleni drevo z razčlenjevanjem od spodaj

Podani niz je cad. A je ustvarjen z A. C, A in d združujejo, da dobijo začetni simbol S.

Ko je vhodni niz (w) abbcde

Upoštevajte naslednja pravila izdelave slovnic.

S -> aABe

A -> Abc / b

B -> d

Razčlenjevanje od spodaj navzgor,

S -> aABe (Namestitev B -> d)

S -> aAde (Namestitev A -> Abc)

S -> aAbcde (podnaslov A -> b)

S -> abbcde

Namestitev se najprej začne z desno najbolj spremenljivo desno, nato pa se premakne na naslednji levi položaj in tako naprej. Zato sledi metodi izpeljave leve mot.

Kakšna je razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor?

Razčlenjevanje od zgoraj navzdol je strategija razčlenjevanja, ki najprej pogleda na najvišjo raven razčlenjenega drevesa in deluje navzdol po razčlenjenem drevesu z uporabo pravil formalne slovnice. Razčlenjevanje od spodaj navzgor je strategija razčlenjevanja, ki najprej pogleda na najnižjo stopnjo drevesa razčlenjevanja in obdela drevo razčlenitve z uporabo pravil formalne slovnice. Razčlenjevanje poteka od začetnega simbola do vhodnega niza, v razčlenjevanju od zgoraj navzdol. Po drugi strani pa razčlenitev poteka od vhodnega niza do začetnega simbola, pri razčlenjevanju od spodaj navzgor.

Poleg tega je glavna odločitev pri razčlenjevanju od zgoraj navzdol ta, da izberemo, kakšno produkcijsko pravilo naj uporabimo za konstruiranje niza, medtem ko je glavna odločitev v razčlenjevanju od spodaj navzdol, da izberemo, kdaj uporabimo produkcijsko pravilo za zmanjšanje niza, da dobimo začetni simbol. Poleg tega razčlenjevanje od zgoraj navzdol uporablja večino izpeljav levo, razčlenjevanje od spodaj navzdol pa večino izpeljave.

Povzetek - Na vrh navzdol proti spodnjemu razvrstitvi

Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor je v tem, da razčlenjevanje od zgoraj navzdol izvede razčlenjevanje od strmečega simbola do vhodnega niza, medtem ko razčlenjevanje od spodaj navzdol izvede razčlenjevanje od vhodnega niza do začetnega simbola.

Referenca:

1. "Predavanje za oblikovalca prevajalnika 5 - Uvod v razčlenjevalnike in LL (1) Razkrivanje." Predavanje o oblikovalcu prevajalnika 5 - Uvod v razčlenjevalnike in LL (1) Razkrivanje, Predavanja na vratih avtorja Ravindrababu Ravula, 22. maja 2014. Na voljo tukaj