Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor

Kazalo:

Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor

Video: Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor

Video: Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor
Video: СМЕЩЕННЫЙ РЕГЛАН. РЕГЛАН ,,ЧАЙКА,,. ТЕОРИЯ И ПРАКТИКА. 1-ЧАСТЬ. KNITTED SWEATER / SUÉTER TEJIDO 2024, November
Anonim

Ključna razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor je v tem, da razčlenjevanje od zgoraj navzdol izvede razčlenjevanje od simbola strmenja do vhodnega niza, medtem ko razčlenjevanje od spodaj navzdol izvede razčlenjevanje od vhodnega niza do začetnega simbola. Poleg tega je druga pomembna razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor ta, da razčlenjevanje od zgoraj navzdol uporablja izpeljavo skrajno levo, razčlenjevanje od spodaj navzdol pa izpeljavo skrajno desno.

Jeziki na visoki ravni pomagajo pri pisanju računalniških programov. Lažje jih razume programer, ne pa računalnik. Zato program na visoki ravni pretvori v strojno kodo. Naloga prevajalnika je pretvoriti človeku berljivo izvorno kodo v strojno berljivo strojno kodo. Program gre skozi več korakov za pretvorbo v strojno kodo. Ta celoten proces se imenuje Sistem za obdelavo jezika. Eden od njih je kompilacija. Analizator sintakse ali razčlenjevalnik je v prevajalniku in izvaja nalogo razčlenjevanja.

Kaj je razčlenjevanje od zgoraj navzdol?

Vsak programski jezik ima niz pravil, ki predstavljajo jezik. Analizator sintakse ali razčlenjevanje vzame vhodni niz in preveri, ali je v skladu s slovničnimi produkcijami. Z drugimi besedami, slovnica bi morala ustvariti ta niz z uporabo drevesa za razčlenjevanje.

Pri razčlenjevanju od zgoraj navzdol se razčlenjevanje izvede od začetnega simbola in doseže dani vhodni niz. Upoštevajte naslednja slovnična produkcijska pravila. Vnosni niz (w) je cad.

S -> cOglas

A -> ab /a

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

Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor

Slika 01: Razčlenjevanje drevesa 1 z razčlenjevanjem od zgoraj navzdol

S ustvari c A d in A proizvede b. Niz je cabd. To ni zahtevani niz. Torej je treba narediti sledenje nazaj, to je uporaba drugih alternativ.

Podobno S proizvede c A d. Uporaba druge možnosti za A bo dala a. Zdaj daje zahtevani niz. Zato razčlenjevalnik sprejme ta vhodni niz. Drevo razčlenjevanja po izvedbi razčlenjevanja od zgoraj navzdol je naslednje.

Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor_Slika 2
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor_Slika 2
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor_Slika 2
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor_Slika 2

Slika 02: Razčlenjevanje drevesa 2 z razčlenjevanjem od zgoraj navzdol

Ko je vhodni niz (w) abbcde

Upoštevajte naslednja slovnična pravila.

S -> aABe

A -> Abc/b

B -> d

Pri razčlenjevanju od zgoraj navzdol, S -> aABe (Zamenjava A -> Abc)

S -> aAbcBe (Zamenjava A -> b)

S -> abbcBe (Zamenjava B ->d)

S -> abbcde

Substitucija se začne najprej s skrajno levo spremenljivko in nato na naslednjo desno pozicijo in tako naprej. Zato sledi metodi izpeljave skrajno levo. Poleg tega se je pomembno odločiti, katero proizvodno pravilo izbrati, ko obstaja spremenljivka.

Kaj je razčlenjevanje od spodaj navzgor?

Pri spodaj navzgor se razčlenjevanje zgodi na drugačen način. Razčlenjevanje poteka od vhodnega niza do začetnega simbola. Upoštevajte naslednja slovnična produkcijska pravila in naj bo vhodni niz w ɛ cad

S -> cOglas

A -> ab /a

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

Ključna razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor_Slika 03
Ključna razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor_Slika 03
Ključna razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor_Slika 03
Ključna razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor_Slika 03

Slika 03: Razčlenjevanje drevesa z razčlenjevanjem od spodaj navzgor

Dani niz je cad. A ustvari A. C, A in d se združijo v začetni simbol S.

Ko je vhodni niz(w) abbcde

Upoštevajte naslednja slovnična pravila.

S -> aABe

A -> Abc/b

B -> d

Pri razčlenjevanju od spodaj navzgor, S -> aABe (Zamenjava B ->d)

S -> aAde (Zamenjava A -> Abc)

S -> aAbcde (Zamenjava A -> b)

S -> abbcde

Substitucija se najprej začne s skrajno desno spremenljivko in se nato premakne na naslednjo levo pozicijo in tako naprej. Zato sledi levi metodi izpeljave.

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 najvišjo raven drevesa razčlenjevanja in deluje navzdol po drevesu razčlenjevanja z uporabo pravil formalne slovnice. Razčlenjevanje od spodaj navzgor je strategija razčlenjevanja, ki najprej pogleda najnižjo raven drevesa za razčlenjevanje in obdela drevo za razčlenjevanje z uporabo pravil formalne slovnice. Razčlenjevanje poteka od začetnega simbola do vhodnega niza pri razčlenjevanju od zgoraj navzdol. Po drugi strani se razčlenjevanje izvede 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 izbrati, katero produkcijsko pravilo uporabiti za sestavo niza, medtem ko je glavna odločitev pri razčlenjevanju od spodaj navzdol izbrati, kdaj uporabiti produkcijsko pravilo za zmanjšanje niza na dobite začetni simbol. Poleg tega razčlenjevanje od zgoraj navzdol uporablja izpeljavo skrajno levo, razčlenjevanje od spodaj navzdol pa skrajno desno izpeljavo.

Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor v obliki tabele
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor v obliki tabele
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor v obliki tabele
Razlika med razčlenjevanjem od zgoraj navzdol in od spodaj navzgor v obliki tabele

Povzetek – Razčlenjevanje od zgoraj navzdol proti spodaj navzgor

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

Priporočena: