ključna razlika raščlanjivanje između vrha prema dolje i odozdo prema gore jest odozdo prema dolje raščlanjivanje vrši raščlanjivanje od zbranog simbola do ulaznog niza, dok analiziranje odozdo prema dolje vrši raščlanjivanje iz ulaznog niza u početni simbol. Nadalje, još jedna važna razlika između raščlanjivanja od vrha prema dolje i odozdo prema gore jest ta što se za raščlanjivanje od vrha prema dolje koristi većina izvedbe, a raščlanjivanje odozdo prema dolje koristi najviše izvedbe.
Jezici na visokoj razini pomažu u pisanju računalnih programa. Lakše ih je razumjeti programer, ali ne i računalo. Stoga se program visoke razine pretvara u strojni kod. Zadatak prevoditelja je pretvoriti ljudsko čitljiv izvorni kod u strojno čitljiv strojni kod. Program prolazi kroz nekoliko koraka za pretvorbu u strojni kod. Cijeli ovaj postupak naziva se Sustav obrade jezika. Jedna od njih je i kompilacija. Analizator sintakse ili parser je u prevoditelju i on obavlja zadatak raščlanjivanja.
1. Pregled i ključne razlike
2. Što je odozdo prema gore
3. Što je praćenje odozdo
4. Usporedba - Usporedba - odozdo prema dolje razvrstavanje u tabelarnom obliku
5. Sažetak
Svaki programski jezik ima skup pravila koja predstavljaju jezik. Analizator sintakse ili raščlamba uzima ulazni niz i provjerava je li u skladu s gramatičkim produkcijama. Drugim riječima, gramatika bi trebala proizvesti taj niz koristeći stablo raščlanjivanja.
Pri raščlanjivanju od vrha prema dolje, raščlanjivanje se događa od početnog znaka i doći će do zadanog ulaza. Razmotrite sljedeća pravila za proizvodnju gramatike. Ulazni niz (w) je cad.
S -> cAd
A -> ab / a
Stablo raščlanjivanja nakon vršenja raščlanjivanja od vrha prema dolje je kako slijedi.
Slika 01: Stablo raščlanjivanja 1 s probijanjem odozgo prema dolje
S proizvode c A d, a A proizvodi b. Niska kabina. To nije potrebni niz. Dakle, potrebno je napraviti retrotrakant, a to je koristiti ostale alternative.
Slično tome, S proizvode c A d. Primjena druge opcije za A dat će odgovor. Sada daje potreban niz. Stoga parser prihvaća ovaj ulazni niz. Stablo raščlanjivanja nakon vršenja raščlanjivanja od vrha prema dolje je kako slijedi.
Slika 02: Stablo 2 raščlanjivanja razvrstavanjem odozdo
Razmotrite sljedeća pravila za proizvodnju gramatike.
S -> aABe
A -> Abc / b
B -> d
Analiza odozgo prema dolje,
S -> aABe (Zamjena A -> Abc)
S -> aAbcBe (Zamjena A -> b)
S -> abbcBe (Zamjena B -> d)
S -> abbcde
Zamjena započinje prvo s najviše varijable na lijevoj strani, a zatim na sljedeću desnu poziciju i tako dalje. Stoga se slijedi metoda lijeve većine. Nadalje, važno je odlučiti koje proizvodno pravilo odabrati kad postoji varijabla.
Analiza odozdo prema gore događa se na drugi način. Analiza se događa od ulaznog niza do početnog simbola. Razmotrite sljedeća pravila izrade gramatike i dopustite da ulazni niz bude w
S -> cAd
A -> ab / a
Stablo raščlanjivanja nakon vršenja raščlanjivanja odozdo prema gore, glasi kako slijedi.
Slika 03: Stablo raščlanjivanja s raščlanjivanjem dna
Dati niz je cad. A a generira A. Kombinacija c, A i d dobiva početni simbol S.
Razmotrite sljedeća pravila za proizvodnju gramatike.
S -> aABe
A -> Abc / b
B -> d
Analiza odozdo prema gore,
S -> aABe (Zamjena B -> d)
S -> aAde (Zamjena A -> Abc)
S -> aAbcde (Substituiranje A -> b)
S -> abbcde
Zamjena započinje najprije promjenjivom desnom, a zatim prelazi na sljedeći lijevi položaj i tako dalje. Stoga slijedi metodu derivacije s lijeve motke.
Analiza odozgo prema dolje je strategija za raščlanjivanje koja prvo promatra najvišu razinu stabla raščlanjivanja i djeluje niz stablo raščlanjivanja koristeći pravila formalne gramatike. Dno raščlamba odozdo je strategija analize koja prvo razmatra najnižu razinu stabla analize i obrađuje stablo raščlanjivanja koristeći pravila formalne gramatike. Analiza se događa od početnog simbola do ulaznog niza, u raščlanjivanju od vrha prema dolje. S druge strane, raščlanjivanje se odvija od ulaznog niza do početnog simbola, a to je raščlanjivanje odozdo prema gore.
Nadalje, glavna odluka pri raščlanjivanju odozdo prema dolje jest odabrati koje proizvodno pravilo treba koristiti za konstrukciju niza, dok je glavna odluka u raščlanjivanju odozdo prema dolje odabrati kada će se koristiti produkcijsko pravilo za smanjenje niza kako bi se dobio početni simbol. Nadalje, raščlanjivanje od vrha prema dolje koristi najviše izvedbe, a raščlanjivanje odozdo prema dolje koristi najviše izvedbe.
Razlika između raščlanjivanja odozdo prema dolje i odozdo prema gore je ta što raščlanjivanje od vrha prema dolje izvodi raščlanjivanje od staring simbola do ulaznog niza, dok raščlanjivanje odozdo dolje vrši raščlanjivanje od ulaznog niza do početnog simbola.
1. „Predavanje dizajna prevoditelja 5 - Uvod u parserere i LL (1) razgledavanje.“ Predavanje o dizajnu sastavljača 5 - Uvod u parserere i LL (1) Razvrstavanje, Vrata predavanja Ravindrababu Ravula, 22. svibnja 2014. Dostupno ovdje