Die sleutelverskil tussen bo-na-onder en onder-na-onder-ontleding is dat die bo-na-onder-ontleding die ontleding van die staar-simbool na die invoerstring uitvoer, terwyl die onder-na-onder-ontleding die ontleding van invoerstring na die beginsimbool uitvoer. Verder, nog 'n belangrike verskil tussen bo-na-onder- en onder-na-onder-ontleding is dat die bo-na-onder-ontleding die meeste links-afleiding gebruik en onder-na-onder-parsering gebruik die meeste regs afleiding.
Hoëvlaktale help om rekenaarprogramme te skryf. Hulle is makliker om te verstaan deur die programmeerder, maar nie deur die rekenaar nie. Daarom skakel die hoëvlakprogram om na masjienkode. Die taak van die samesteller is om die mensleesbare bronkode om te skakel na masjienleesbare masjienkode. 'n Program gaan deur verskeie stappe om na masjienkode om te skakel. Hierdie hele proses word Taalverwerkingsisteem genoem. Een daarvan is die samestelling. Die sintaksisanaliseerder of die ontleder is in die samesteller, en dit voer die ontledingstaak uit.
Wat is Top Down Parsing?
Elke programmeertaal het 'n stel reëls om die taal voor te stel. Die sintaksisanaliseerder of die ontleed neem die invoerstring en kyk of dit volgens die grammatikaproduksies is. Met ander woorde, die grammatika moet daardie string produseer deur 'n ontledingsboom te gebruik.
In bo-na-onder ontleding vind die ontleding plaas vanaf die beginsimbool en sal die gegewe invoerstring bereik. Oorweeg die volgende grammatikaproduksiereëls. Die invoerstring (w) is cad.
S -> cAd
A -> ab /a
Die ontledingsboom nadat bo-na-onder ontleding uitgevoer is, is soos volg.
Figuur 01: Ontleed boom 1 met bo-na-onder-ontleding
S produseer c A d en A produseer 'n b. Die tou is cabd. Dit is nie die vereiste string nie. Dit is dus nodig om terugsporing te doen, wat is om die ander alternatiewe te gebruik.
Net so produseer S c A d. Die toepassing van die ander opsie vir A sal 'n gee. Nou gee dit die vereiste string. Daarom aanvaar die ontleder hierdie invoerstring. Die ontledingsboom na bo-na-onder-ontleding is soos volg.
Figuur 02: Ontleed boom 2 met bo-na-onder-ontleding
Wanneer die invoerstring (w) abcde is
Oorweeg die volgende grammatikaproduksiereëls.
S -> aABe
A -> Abc/b
B -> d
In bo-na-onder ontleding, S -> aABe (Vervang A -> Abc)
S -> aAbcBe (Vervang A -> b)
S -> abbcBe (Vervang B ->d)
S -> abbcde
Vervanging begin eers met die mees veranderlike links en dan na die volgende regterposisie, ensovoorts. Daarom volg dit 'n metode wat die meeste links is. Verder is dit belangrik om te besluit watter produksiereël om te kies wanneer daar 'n veranderlike is.
Wat is Bottom Up Parsing?
Onder na bo gebeur ontleding op die ander manier. Die ontleding vind plaas vanaf die invoerstring na die beginsimbool. Oorweeg die volgende grammatikaproduksiereëls en laat die invoerstring w ɛ cad wees
S -> cAd
A -> ab /a
Die ontledingsboom na die uitvoering van onder-na-onder-ontleding is soos volg.
Figuur 03: Ontleed boom met onder na bo-ontleding
Die gegewe string is cad. Die a word gegenereer deur A. Die c, A en d kombineer om die beginsimbool S te kry.
Wanneer die invoerstring(w) abcde is
Oorweeg die volgende grammatikaproduksiereëls.
S -> aABe
A -> Abc/b
B -> d
Onder-bo-ontleed, S -> aABe (Vervang B ->d)
S -> aAde (Vervang A -> Abc)
S -> aAbcde (Vervang A -> b)
S -> abbcde
Vervanging begin met die mees regs veranderlike eerste en beweeg dan na die volgende links posisie en so aan. Daarom volg dit 'n linkermot-afleidingsmetode.
Wat is die verskil tussen Top-down en Bottom Up Parsing?
Bo-na-onder-ontleding is 'n ontledingstrategie wat eers na die hoogste vlak van die ontledingsboom kyk en in die ontledingsboom afwerk deur die reëls van 'n formele grammatika te gebruik. Onder na bo-ontleding is 'n ontledingstrategie wat eers na die laagste vlak van die ontledingsboom kyk en die ontledingsboom opwerk deur die reëls van 'n formele grammatika te gebruik. Die ontleding vind plaas vanaf die beginsimbool na die invoerstring, in top-down ontleding. Aan die ander kant vind ontleding plaas vanaf die invoerstring na die beginsimbool, in bottom-up ontleding.
Verder is die hoofbesluit in bo-na-onder-ontleding om te kies watter produksiereël om te gebruik om die string te konstrueer, terwyl die hoofbesluit in onder-na-onder ontleding is om te kies wanneer om 'n produksiereël te gebruik om die string te verminder na kry die beginsimbool. Boonop gebruik bo-na-onder ontleding die meeste links afleiding en onder-na-onder ontleding gebruik regs meeste afleiding.
Opsomming – Top-down vs Bottom Up Parsing
Die verskil tussen bo-na-onder en onder-na-onder-ontleding is dat bo-na-onder-ontleding die ontleding van die staar-simbool na die invoerstring uitvoer, terwyl onder-na-onder ontleding die ontleding van invoerstring na die beginsimbool uitvoer.