Galvenā 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 veic parsēšanu no skatīšanās simbola uz ievades virkni, bet apakšējā parsēšana veic parsēšanu no ievades virknes uz sākuma simbolu. Turklāt vēl viena svarīga 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 izmanto atvasinājumu no kreisās puses, bet parsēšana no apakšas uz leju izmanto atvasinājumu no labās puses.
Augsta līmeņa valodas palīdz rakstīt datorprogrammas. Programmētājam tos ir vieglāk saprast, bet ne datoram. Tāpēc augsta līmeņa programma pārvēršas mašīnkodā. Kompilatora uzdevums ir pārveidot cilvēka lasāmo avota kodu mašīnlasāmā mašīnlasāmajā kodā. Programma veic vairākas darbības, lai pārveidotu par mašīnkodu. 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.
Kas ir parsēšana no augšas uz leju?
Katrai programmēšanas valodai ir noteikumu kopums, kas attēlo valodu. Sintakses analizators vai parsēšana ņem ievades virkni un pārbauda, vai tā atbilst gramatikas produkcijai. Citiem vārdiem sakot, gramatikai ir jāizveido šī virkne, izmantojot parsēšanas koku.
Parsējot no augšas uz leju, parsēšana notiek no sākuma simbola un sasniegs norādīto ievades virkni. Apsveriet šādus gramatikas veidošanas noteikumus. Ievades virkne (w) ir cad.
S -> cAd
A -> ab /a
Parsēšanas koks pēc lejupējās parsēšanas ir šāds.
01. attēls: 1. koka parsēšana ar parsēšanu no augšas uz leju
S rada c A d un A rada b. Virkne ir cabd. Tā nav vajadzīgā virkne. Tātad, ir jāveic atkāpšanās, proti, jāizmanto citas alternatīvas.
Līdzīgi S ražot c A d. Piemērojot otru opciju A, tiks iegūta a. 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.
2. attēls: 2. koka parsēšana ar parsēšanu no augšas uz leju
Kad ievades virkne (w) ir abbcde
Apsveriet šādus gramatikas veidošanas noteikumus.
S -> aABe
A -> Abc/b
B -> d
Parsējot no augšas uz leju, S -> aABe (aizstāj A -> Abc)
S -> aAbcBe (aizstāj A -> b)
S -> abbcBe (aizstāj B ->d)
S -> abbcde
Aizvietošana vispirms sākas ar kreiso vismainīgāko 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īgais.
Kas ir parsēšana no apakšas uz augšu?
No apakšas uz augšu parsēšana notiek citā veidā. Parsēšana notiek no ievades virknes līdz sākuma simbolam. Apsveriet šādus gramatikas veidošanas noteikumus un ļaujiet ievades virknei būt w ɛ cad
S -> cAd
A -> ab /a
Parsēšanas koks pēc augšupējas parsēšanas ir šāds.
03. attēls: parsēšanas koks ar parsēšanu no apakšas uz augšu
Norādītā virkne ir cad. A ģenerē A. C, A un d apvieno, 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ējot no apakšas uz augšu, S -> aABe (aizstāj B ->d)
S -> aAde (aizstāj A -> Abc)
S -> aAbcde (Aizstāj A -> b)
S -> abbcde
Aizvietošana vispirms sākas ar labo, vismainīgāko un pēc tam pāriet uz nākamo kreiso pozīciju un tā tālāk. Tāpēc tiek izmantota kreisā mot atvasināšanas metode.
Kāda ir atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu?
Parsēšana no augšas uz leju ir parsēšanas stratēģija, kas vispirms aplūko parsēšanas koka augstāko līmeni un veic parsēšanas koku, 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 izstrādā parsēšanas koku, izmantojot formālās gramatikas noteikumus. Parsēšana notiek no sākuma simbola līdz ievades virknei, parsējot no augšas uz leju. No otras puses, parsēšana notiek no ievades virknes līdz sākuma simbolam, veicot parsēšanu no apakšas uz augšu.
Turklāt galvenais lēmums parsējot no augšas uz leju ir izvēlēties, kuru ražošanas kārtulu izmantot, lai izveidotu virkni, savukārt galvenais lēmums parsējot no apakšas ir izvēlēties, kad izmantot ražošanas kārtulu, lai samazinātu virkni uz iegūt sākuma simbolu. Turklāt parsēšana no augšas uz leju izmanto atvasinājumu no kreisās puses, bet parsēšana no apakšas uz leju izmanto atvasinājumu no labās puses.
Kopsavilkums - parsēšana no augšas uz leju un no apakšas uz augšu
Atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu ir tāda, ka, veicot parsēšanu no augšas uz leju, tiek veikta parsēšana no skatīšanās simbola uz ievades virkni, bet apakšējā parsēšana tiek veikta no ievades virknes līdz sākuma simbolam.