Atšķirība starp augšupvērstu un augšupēju parsēšanu

galvenā atšķirība parsēšana no augšas uz leju un no apakšas uz augšu ir tāda, ka augšā uz leju parsēšana veic parsēšanu no zvaigznītes ar zvaigznīti līdz ievades virknei, bet parsēšana no apakšas veic parsēšanu no ievades virknes uz sākuma simbolu. Turklāt vēl viena būtiska atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu ir tā, ka parsēšana no augšas uz leju izmanto lielāko daļu atvasināšanas un no lejas uz leju parsēšana izmanto lielāko daļu atvasināšanas..

Augsta līmeņa valodas palīdz rakstīt datorprogrammas. Programmētājs tos saprot vieglāk, bet ne dators. Tāpēc augsta līmeņa programma pārvēršas par mašīnu kodu. Kompilatora uzdevums ir pārveidot cilvēkam lasāmu pirmkodu mašīnlasāmā mašīnas kodā. Programma veic vairākas darbības, lai pārveidotu par mašīnas kodu. Visu šo procesu sauc par valodas apstrādes sistēmu. Viens no tiem ir kompilācija. Sintakses analizators vai parsētājs atrodas kompilatorā, un tas veic parsēšanas uzdevumu.

SATURS

1. Pārskats un galvenās atšķirības
2. Kas ir parsēšana no augšas uz leju
3. Kas ir parskatīšana no apakšas uz augšu
4. Salīdzinājums blakus - parsēšana no augšas uz leju pret augšpusi augšup un augšup uz augšu tabulas veidā
5. Kopsavilkums

Kas ir parsēšana no augšas uz leju?

Katrā programmēšanas valodā ir noteikts noteikumu kopums, lai attēlotu valodu. Sintakses analizators vai parsēšana ņem ievades virkni un pārbauda, ​​vai tā atbilst gramatikas iestudējumiem. Citiem vārdiem sakot, gramatikai vajadzētu iegūt šo virkni, izmantojot pars koku.

Parsēšana no augšas uz leju, parsēšana notiek no sākuma simbola un sasniegs doto ievades virkni. Apsveriet šādus gramatikas veidošanas noteikumus. Ievades virkne (w) ir cad.

S -> cAd

A -> ab / a

Parsēšanas koks pēc parsēšanas no augšas uz leju ir šāds.

01. attēls. Parsēt 1. koku ar augšas uz leju

S rada c A d un A rada a b. Virkne ir kabatā. Tā nav nepieciešamā virkne. Tātad ir nepieciešams veikt atkāpšanos, tas ir, izmantot citas alternatīvas.

Līdzīgi S rada c A d. Piemērojot otru opciju A, tiks iegūts. Tagad tas dod nepieciešamo virkni. Tāpēc parsētājs pieņem šo ievades virkni. Parsēšanas koks pēc parsēšanas no augšas uz leju ir šāds.

02 attēls: Parsēt 2. koku ar augšas uz leju

Kad ievades virkne (w) ir abbcde

Apsveriet šādus gramatikas veidošanas noteikumus.

S -> aABe

A -> Abc / b

B -> d

Parsēšana no augšas uz leju,

S -> aABe (aizstāj A -> Abc)

S -> aAbcBe (Aizvietojot A -> b)

S -> abbcBe (Aizstājot B -> d)

S -> abbcde

Aizvietošana sākas ar vispirms mainīgo pa kreisi un tad uz nākamo labo pozīciju un tā tālāk. Tāpēc tiek izmantota kreisās puses atvasināšanas metode. Turklāt ir svarīgi izlemt, kādu ražošanas noteikumu izvēlēties, ja ir mainīgs lielums.

Kas ir parskatīšana no apakšas uz augšu?

Pārskatīšana no apakšas uz augšu notiek citādi. Parsēšana notiek no ievades virknes līdz sākuma simbolam. Apsveriet šādus gramatikas veidošanas noteikumus un ļaujiet ievades virknei būt cad

S -> cAd

A -> ab / a

Parsēšanas koks pēc parsēšanas no apakšas uz augšu ir šāds.

03. attēls: Parsēšanas koks ar parsēšanu no apakšas uz augšu

Dotā virkne ir kadija. A ģenerē A. c, A un d apvienojas, lai iegūtu sākuma simbolu S.

Kad ievades virkne (w) ir abbcde

Apsveriet šādus gramatikas veidošanas noteikumus.

S -> aABe

A -> Abc / b

B -> d

Parsēšana no apakšas uz augšu,

S -> aABe (Aizvieto B -> d)

S -> aAde (aizstājot A -> Abc)

S -> aAbcde (A apakšpozīcija A -> b)

S -> abbcde

Aizvietošana vispirms sākas ar labo mainīgo un pēc tam pārvietojas uz nākamo kreiso pozīciju un tā tālāk. Tāpēc tiek ievērota kreisās mot atvasināšanas metode.

Kāda ir atšķirība starp parsēšanu no augšas uz leju un no augšas uz augšu?

Parsēšana no augšas uz leju ir parsēšanas stratēģija, kurā vispirms tiek apskatīts parsēšanas koka augstākais līmenis un darbojas parsēšanas koks, izmantojot formālās gramatikas noteikumus. Parsēšana no apakšas uz augšu ir parsēšanas stratēģija, kas vispirms aplūko parsēšanas koka zemāko līmeni un palielina parsēšanas koku, izmantojot formālās gramatikas noteikumus. Parsēšana notiek no sākuma simbola līdz ievades virknei, no augšas uz leju. No otras puses, parsēšana notiek no ievades virknes līdz sākuma simbolam, parsēšana no apakšas.

Turklāt galvenais lēmums par parsēšanu no augšas uz leju ir izvēlēties, kādu ražošanas kārtulu izmantot, lai izveidotu virkni, savukārt galvenais lēmums, analizējot lejupejoši, ir izvēlēties, kad izmantot ražošanas kārtulu, lai samazinātu virkni, lai iegūtu sākuma simbolu. Turklāt parsēšana no augšas uz leju izmanto lielāko daļu atvasināšanas un no apakšas uz leju - pareizais atvasinājums.

Kopsavilkums - parsēšana no augšas uz leju vs augšupvērstā augšup

Atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu ir tāda, ka parsēšana no augšas uz leju no attēlota simbola uz ievades virkni tiek veikta, bet parsēšana no apakšas uz leju no ievades virknes uz sākuma simbolu..

Atsauce:

1. “Kompilatora dizaina lekcija 5. Ievads parseros un LL (1) parsēšana.” Kompilatora dizaina 5. lekcija - ievads parseros un LL (1) parsēšana, Ravindrababu Ravula vārti Lekcijas, 2014. gada 22. maijs. Pieejams šeit