Atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu

Satura rādītājs:

Atšķirība starp parsēšanu 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

Video: Atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu

Video: Atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu
Video: ЯРКИЕ ТАПОЧКИ-СЛЕДКИ СПИЦАМИ. Без швов на подошве. МК для начинающих. 2024, Jūlijs
Anonim

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.

Atšķirība starp parsēšanu 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
Atšķirība starp parsēšanu 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

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.

Atšķirība starp no augšas uz leju un no apakšas uz augšu parsēšana_2. attēls
Atšķirība starp no augšas uz leju un no apakšas uz augšu parsēšana_2. attēls
Atšķirība starp no augšas uz leju un no apakšas uz augšu parsēšana_2. attēls
Atšķirība starp no augšas uz leju un no apakšas uz augšu parsēšana_2. attēls

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.

Galvenā atšķirība starp no augšas uz leju un no apakšas uz augšu parsēšana_attēls 03
Galvenā atšķirība starp no augšas uz leju un no apakšas uz augšu parsēšana_attēls 03
Galvenā atšķirība starp no augšas uz leju un no apakšas uz augšu parsēšana_attēls 03
Galvenā atšķirība starp no augšas uz leju un no apakšas uz augšu parsēšana_attēls 03

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.

Atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu tabulas formā
Atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu tabulas formā
Atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu tabulas formā
Atšķirība starp parsēšanu no augšas uz leju un no apakšas uz augšu tabulas formā

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.

Ieteicams: